web-dev-qa-db-fra.com

Subversion: comment fusionner un commit spécifique

J'ai des engagements sur mes succursales. Je veux fusionner les branches au tronc, mais il y a un certain commit que je ne fusionne pas au tronc sur mes branches. Comment fais-je?

36
Clown

Ce que vous voulez accomplir est généralement appelé cherrypicking dans les systèmes de contrôle de version.

Supposons que vous souhaitiez fusionner les révisions 345, 364 et 377 de votre branche vers le tronc, vous effectuerez les opérations suivantes dans le répertoire de niveau supérieur d'une copie de travail propre de trunk:

svn merge -c345,364,377 ^/_your_branch_

Vous pouvez trouver plus d'informations dans la section correspondante du livre SVN .

37
Yannick Blondeau

Juste pour étendre la réponse de Yannick.
Lorsque vous pouvez fusionner une/quelques validations spécifiques d'une branche à une autre dont vous avez besoin (par exemple, vous devez fusionner les validations r13 et r666 de la branche 'from' dans la branche 'to '):

  1. Vérifiez la disponibilité des engagements (juste pour vous assurer):

    svn diff -c 13,666 https://fullpathtoyourproject/branches/_from_
    
  2. Swith sur branche à:

    svn sw https://fullpathtoyourproject/branches/_to_
    
  3. La fusion est validée

    svn merge -c 13,666 https://fullpathtoyourproject/branches/_from_
    

Si vous avez besoin d'obtenir 'fullpathtoyourproject', tapez simplement:

svn info

Dans la section URL, vous verrez ce chemin.

Je préfère utiliser FULL url/path, car personnellement le chemin relatif n'a pas fonctionné pour moi sur certains projets.

34
iMysak