"Mark" SVN export avec révision

je cherche une solution pour la situation suivante.

nous utilisons Subversion, et en plus de l'environnement de développement, où nous utilisons des checkouts, nous avons un environnement de test, qui est censé ressembler le plus possible à l'environnement de production.

par conséquent, nous l'avons maintenant configuré pour que L'environnement soit mis à jour en utilisant SVN export. Cependant, puisque nous voulons seulement la dernière révision, nous ne savons pas ce qu'a été la révision exporter.

Est-il possible de "marquer" cette exportation, par exemple en ajoutant un fichier généré, qui indique la révision a été exporté? (Nous ne voulons pas exporter de balises, car nous mettrons à jour plusieurs fois au cours d'un même cycle de publication.)

4
demandé sur Peter Mortensen 2009-06-10 15:40:24

3 réponses

une chose que vous pouvez faire est de vous assurer que vous exportez à partir d'une révision connue, et d'écrire ce numéro de révision dans un fichier texte dans l'exportation. La commande svnversion vous indiquera le numéro de révision d'un répertoire actif. Faites donc un svn update pour obtenir la dernière version, puis svn export à votre emplacement de déploiement, puis svnversion redirigeant la sortie vers un fichier texte au même endroit que l'exportation. La révision numéro de la révision de la mise à jour, même si quelqu'un l' a commis nouveau code depuis.

vous voudrez bien sûr automatiser le processus ci-dessus dans un script shell ou quelque chose comme ça.

3
répondu Greg Hewgill 2009-06-10 11:54:40

vous pouvez faire svn info /path/to/repository juste avant (ou après) l'exportation, mais vous devez verrouiller pour vous assurer qu'aucun changement n'a été fait.

alternativement, en utilisant la technique décrite dans votre commentaire et en passant par un script shell, comme:

svn export /path/to/repository | grep ^Exported > revision.txt

ou

svn export /path/to/repository | tail -l > revision.txt
1
répondu fijiaaron 2017-11-12 13:47:45

alternativement, vous pouvez faire un svn update et puis svn export à partir de cette copie locale. L'avantage de ceci est que Subversion utilisera "rsync" (ou n'importe quel algorithme qu'il utilise) pour mettre à jour uniquement les fichiers modifiés. Ensuite, vous exportez à partir de votre copie locale, économisant de la bande passante et conservant toutes les informations du dépôt avec votre checkout local.

créer deux répertoires, un pour la caisse, et un pour l'exportation, puis déployer avec un processus en deux étapes:

svn update /path/to/repository checkout/project
svn export checkout/project export/project
0
répondu fijiaaron 2017-11-12 13:48:33