svn checkout e atualização sem o diretório .svn
-
20-08-2019 - |
Pergunta
Eu tenho um site sob SVN e eu quero corrigir o website ao vivo com o que está atualmente no repositório (ou seja, chamando efetivamente svn update no site ao vivo), mas eu não quero diretórios .svn em cada pasta sobre a produção website.
Existe uma maneira de configurar o SVN para que a pasta .svn com informações sobre a versão não está no mesmo diretório que os arquivos sob controle de versão?
Em git você pode criar e detatch uma árvore de trabalho e enviar atualizações para um projeto dessa maneira (de acordo com http://toroid.org/ams/git-website-howto ), basicamente, eu quero ser capaz de fazer algo semelhante no SVN.
Solução
svn export
funciona de forma semelhante a um checkout
mas sem os diretórios .svn
. No entanto, você não pode update
uma estrutura deste tipo, uma vez que não é uma cópia de trabalho svn.
Você também pode configurar o servidor web para acesso disallow para os diretórios .svn
e apenas ir com o método de checkout + atualização.
Outras dicas
Como cerca de rsync configurado para não copiar ".svn" diretórios?
rsync --exclude=.svn local_svn_copy webserver:site/
Isso pode ser re-run para atualizar a cópia do servidor.
httpd.conf:
<Directory ~ "\.svn">
Order allow,deny
Deny from all
</Directory>
Como laalto mencionou svn export
marcas para um método fácil, mas não muito eficiente para atualizar uma "cópia de trabalho" quando usado repetidamente:
milen@dev:~$ svn export --non-interactive --force "<URL>" <directory>
Você também pode usar git-svn
para criar um espelho git do site e, em seguida, publicar o caminho descrito no artigo é ligada. Obviamente, isso não é uma solução para a frente apesar de tudo.