2010-06-09 6 views
3

les joueurs:Récupérer l'histoire de git-svn stupide fusion

maître: la branche svn (réelle, non trackign locale) mybranch: une branche locale

Mon erreur:

[master] git svn rebase 
[master] git merge mybranch 
[master] git svn dcommit 

Je l'ai fait deux fois.

Y at-il un moyen de remédier à tout cela? Je pensais quelque chose comme:

  1. git checkout --hard [engager avant la fusion]
  2. git dcommit # que le svn?
  3. git rebase mybranch
  4. git dcommit

Mais cela ne semble pas fonctionner.

(je sais que je devrais un. Travailler à partir d'une branche de suivi local et b. Ai rebasées plutôt que la fusion)

Je suis dans la frénétique/prêt à envoyer la bière aux répondants étape :)

Répondre

1

Puisque la réécriture de l'historique du côté SVN est difficile, pourquoi ne pas essayer un nouveau commit qui annule effectivement deux fois ce que vous avez déjà fait?

git log # grab the commit hash you want to revert 
git revert <commit hash> 
git svn dcommit 

git revert

Étant donné un commits, annuler la modification des patch introduit, et enregistrer une nouvelle livraison qu'elle enregistre.

+0

Pas vraiment ce que je cherche, mais j'ai mon problème résolu. Je ne m'inquiète pas de réécrire l'histoire svn ... essayant juste de * additionner * l'histoire que j'ai perdue dans svn. Finalement, je n'ai pas réussi à le faire, malgré l'utilisation de retour, et un tas d'autres outils. –

+0

@Gregg, désolé de lire cela. Vous pourriez documenter ce que vous avez finalement fait dans une réponse de votre choix dans cette page. – VonC