web-dev-qa-db-fra.com

Créer un "patch" entre les révisions?

Il semble que la fonctionnalité "patch" de SVN ne soit pas exactement ce que je veux. Ce que je veux vraiment, c'est créer un diff de fichiers entre les révisions. Donc, je choisirais rev1 et rev2 et me retrouverais avec un dossier contenant tous les fichiers qui ont été modifiés ou ajoutés entre ces révisions.

Cela peut-il être fait avec Tortoise SVN ou SVN ancien?

23
Josh M.

Cela peut être réalisé dans la tortue SVN elle-même. Faites un clic droit sur la branche (dossier) à partir de laquelle vous souhaitez créer le patch >> Show Log >> Sélectionnez toutes les révisions pour lesquelles vous devez créer le patch >> Cliquez avec le bouton droit et sélectionnez Compare revisions >> Ceci montrera les fichiers modifiés >> Sélectionnez tous les fichiers >> Faites un clic droit et sélectionnez Export Revision To >> Donnez n'importe quel chemin dans votre machine >> Les fichiers seront exportés dans la structure de dossiers respective.

Alternativement, vous pouvez y parvenir via des scripts. Reportez-vous au lien suivant pour cela:

http://www.electrictoolbox.com/Subversion-export-changed-files-cli

26
Dipu H

À partir de la ligne de commande, vous pouvez procéder comme suit.

Tous les fichiers d'un dossier

Créez un patch dans votre dossier Home qui contient toutes les modifications entre la révision 123 et 124 à partir de tous les fichiers modifiés dans le dossier "my_project":

svn diff -r123:124 path/to/my_project > ~/my_project_changes_123_124.patch

Un fichier particulier

Créez un patch dans votre dossier d'accueil qui contient toutes les modifications entre la révision 123 et 124 à partir d'un seul fichier, nom "my_project.php":

svn diff -r123:124 path/to/my_project/my_project.php > ~/my_project_changes_123_124.patch
29
batigolix

Euh ... que diriez-vous svn diff? Passez-lui simplement les révisions souhaitées.

http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.diff.html

Dans TortoiseSVN, si vous mettez en surbrillance les révisions que vous souhaitez dans la boîte de dialogue "afficher le journal", il y a même un élément de menu contextuel pour afficher les modifications sous forme de différences que vous pouvez ensuite enregistrer quelque part.

3
Ben