SVN: Créer un diff pour beaucoup de révisions
J'ai eu une succursale privée que j'ai fait une tonne de s'engage, alors j'ai fusionné dans le tronc, et a fait quelques petites modifications, là.
Maintenant le tronc responsable souhaite un diff de mes modifications au cas où nous avons besoin d'une restauration.
Comment puis-je créer ce? Si vous avez besoin de chiffres pour votre exemple, supposons que
224446
a été ma principale de révision où j'ai fusionné dans le tronc,
224453
et 224462
étaient mes corrections mineures, et j'ai d'innombrables changements lorsque, dans ma branche privé.
Solution (via Martin)
svn diff -r 224452:224453 > ~/tmp/diff.1
svn diff -r 224462:224463 > ~/tmp/diff.2
svn up -r224446
patch < ~/tmp/diff.1 -p0
patch < ~/tmp/diff.2 -p0
svn diff -r 224445 > ~/tmp/changes.patch
Ensuite par la poste, ~/tmp/modifications.patch pour notre tronc responsable pour la garde.
- Ne pas le deuxième ligne
svn diff -r 224461:224462 > ~/tmp/diff.2
?
Vous devez vous connecter pour publier un commentaire.
Une procédure pour ce faire:
svn diff -r 224452:224453 > diff1.patch
).svn up -r224446
)patch -p0 -i diff1.patch
)svn diff -r 224445 > diff2.patch
)Une option serait de créer une branche à 224446, puis les fusionner dans 224453 et 224462. Ensuite, prendre une diff entre qui et 224445 sur le tronc. Qui devraient être toutes les modifications en une seule, et vous pouvez créer un fichier de correctif si vous avez besoin de:
C'est en grande partie le même que Martin réponse, juste avec les différentes façons d'appliquer les changements et obtenir les diff. Notez que, bien que dans ce cas, j'ai validé les modifications, vous n'avez pas vraiment à vous pourriez faire
svn diff svn://xyz/trunk@224445 tmp
au lieu des deux dernières commandes. La bonne chose à propos de l'avoir dans le référentiel est alors personne pouvez appliquer la diff dans le sens inverse pour rouler de nouveau, si cela est nécessaire.svn co svn://xyz/trunk@224446 tmp
. Cela fonctionne même si vous n'avez pas la permission de modifier le référentiel directement.