"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.)
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.
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
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