2009-06-27 17 views
17

J'ai un site Web sous svn et je veux patcher le site en direct avec ce qui est actuellement dans le dépôt (c'est-à-dire appeler svn mise à jour sur le site web en direct), mais je ne veux pas répertoires .svn dans chaque dossier sur le site de production.svn checkout et mise à jour sans le répertoire .svn

Existe-t-il un moyen de configurer svn afin que le dossier .svn avec les informations de version ne se trouve pas dans le même répertoire que les fichiers sous le contrôle de version?

Dans git, vous pouvez créer et dissocier un arbre de travail et envoyer des mises à jour à un projet de cette manière (selon http://toroid.org/ams/git-website-howto), je veux essentiellement pouvoir faire quelque chose de similaire dans svn.

+0

En réalité, je pensais à rsync pour un site Web suivi git, donc merci pour la pointe. P.S. svn était juste une étape évolutionnaire, maintenant d'intérêt historique seulement. Merci encore! –

Répondre

37

svn export fonctionne de manière similaire à checkout mais sans les répertoires .svn. Cependant, vous ne pouvez pas update une telle structure car ce n'est pas une copie de travail svn.

Vous pouvez également configurer le serveur Web pour interdire l'accès aux répertoires .svn et simplement utiliser la méthode checkout + update.

+1

Voir cette question pour savoir comment faire la deuxième option: http://stackoverflow.com/questions/214886/how-do-i-hide-directories-in-apache-specifically-source-control –

7

Que diriez-vous que rsync est configuré pour ne pas copier les répertoires ".svn"?

rsync --exclude=.svn local_svn_copy webserver:site/

Cela peut être recommencée pour rafraîchir la copie du serveur web.

1

Comme laalto a mentionné svn export fait un outil facile mais pas très méthode efficace pour mettre à jour une « copie de travail » lorsqu'il est utilisé à plusieurs reprises:

[email protected]:~$ svn export --non-interactive --force "<URL>" <directory> 
1

Vous pouvez également utiliser git-svn pour créer un miroir git du site et puis publiez la manière décrite dans l'article que vous avez lié. Évidemment, ce n'est pas une solution simple cependant.

2

httpd.conf:

<Directory ~ "\.svn"> 
    Order allow,deny 
    Deny from all 
</Directory> 
Questions connexes