2010-05-25 15 views
13

Si une copie de travail (copie locale) a été créée à partir d'une branche, appelons-la A. Le codage a été fait dans la branche A, mais la branche A était "Fermée" commits, et la branche b a été ouverte. Comment fusionner mes modifications de copie de travail dans la branche B et valider dans la branche B, sans d'abord valider mes modifications dans la branche A?SVN Copie de travail à Fusion de branche différente sans engagement de copie de travail Direction

Tronc -> Direction A.

I checked out branch A and made changes. 
    Branch A was closed to commits. 

nouvelle succursale créée à partir de la branche A. branche A -> branche B.

I would like to commit my working copy changes (currently pointing at Branch A into branch B without commiting to Branch A) 

Répondre

16
  1. Sauvegardez les fichiers de votre copie de travail.
  2. svn switch à la branche B
  3. changements d'examen (révision de base peut varier, et svn ne aveugle, texte muet se confond seulement), résoudre les conflits, le cas échéant
  4. commettras

Faire des choses comme ça avec copie de travail avec des modifications non validées est périlleuse. Si quelque chose ne va pas ou s'il y a trop de changements contradictoires, retournez à votre version sauvegardée, créez une branche temporaire à partir de la révision de base de votre copie de travail A, passez à celle-ci et validez vos modifications. Puis fusionnez cette branche en B de la manière que vous voulez et supprimez-la ensuite.

Rappelez-vous le svn mantra: Commit tôt, commettre souvent. Si j'ai des changements non validés qui traînent pendant plus d'une journée de travail, je deviens nerveux. Habituellement, je crée une branche caractéristique pour tout développement qui dure plus de quelques heures. et régulièrement s'engager à cela. Quand j'ai fini, je le fusionne d'où qu'il provienne et le supprime ensuite.

+0

Cela a fonctionné. Je n'avais pas besoin de la sauvegarde, mais c'était bien d'avoir comme vous ne voulez pas perdre plusieurs jours de travail. J'aime le svn mantra! –

2

être très prudent, je commets mes changements à une branche privée (appelons-le C), puis fusionner la branche C à la nouvelle branche ouverte pour commits-B.

  1. cd répertoire de travail avec les modifications que vous souhaitez engager
  2. svn copy . C
  3. cd .. dans votre dossier de l'espace de travail avec checkouts
  4. svn co B
  5. cd dans le répertoire B
  6. svn merge la révision de l'étape 2
  7. Révisez les modifications.
  8. Validez!