2011-04-12 2 views
10

J'ai résolu ce problème depuis. Mais je ne sais toujours pas pourquoi ce que j'ai fait a fonctionné.comportement git mystérieux

Nous avons un référentiel svn pour notre code au travail. J'ai un dépôt git-svn local parce que j'ai < 3 Git. :) Nous utilisons Windows, donc j'utilise Cygwin. Je pense que la dernière version de Cygwin est Git 1.7.0.4. Vendredi, j'ai déconnecté mon code sans problème, je suis rentré chez moi. Lundi matin je suis revenu, et j'ai essayé de 'git svn rebase' parce que quelqu'un avait commis du code pendant le week-end (overachievers).

Il a commencé normalement, puis a soudainement décidé qu'il ne pouvait pas trouver le coffre. Malheureusement, j'ai perdu le message d'erreur exact, mais il hurlait de ne pas être sur le point de trouver/refs/remotes/trunk ... et j'avais très peur. Heureusement, je n'avais pas de code non engagé. Rien à perdre. Cependant, chaque fois que j'essayé de git svn rebase 'après cela, il accrochait FOREVER, puis je l'erreur suivante:

Unable to determine upstream SVN information from working tree history

Je fait des recherches pendant toute une journée. J'ai essayé de changer l'URL de svn-remote de https://xxx.xxx.xxx/xxx/xxx à https://xxx.xxx.xxx/xxx/xxx/ aussi ridicule que cela semble. J'ai ensuite fait un 'git svn fetch' ... et il a récupéré le tronc entier (tous les 1682 commits). Mais le rebase ne fonctionnerait toujours pas. J'ai donc abandonné pour la journée, et j'ai décidé que le jour suivant, je créerais simplement un nouveau dépôt et recommencerais (ce qui prendrait une journée entière). Ce matin, je suis allé poser la question ici avant que je ne supprime sans vergogne mon dépôt. Je suis tombé sur ceci:

git-svn rebase gone horribly wrong

qui n'a pas été exactement mon problème, mais j'ai décidé d'essayer git reset tronc --hard 'parce que ce que je voulais. Et ça a marché. Tout va bien maintenant.

Cependant.

Pourquoi a-t-il fait cela en premier lieu? Je n'ai pas changé pour autant que je sache, car je n'étais pas au travail pendant le week-end. Quel genre de choses aurait causé cette erreur? Je suppose que j'ai distraitement fait quelque chose d'horrible, mais j'ai besoin de savoir quoi, alors je ne le refais pas. :)

Merci d'avance.

Répondre

2

Cette erreur:

Unable to determine upstream SVN information from working tree history 

Sons comme votre histoire git actuelle n'a pas été basée sur l'histoire svn du tout, et rebase ainsi n'a pas pu trouver un ancêtre commun. En changeant l'URL, je pense que tous les commits ont des messages de validation LÉGÈREMENT différents, et donc des hachages sha1 différents, et donc vos anciens ancêtres ne correspondent pas aux nouveaux, entraînant l'échec du rebase.

En ce qui concerne la raison pour laquelle la ligne de réseau a disparu/a échoué, il serait assez difficile de comprendre ce qui s'est passé sans le message d'erreur.