A git svn fetch
ajoute une nouvelle branche distante appelée remotes/git-svn (comme on peut le voir avec git branch -a
).
Si vous apportez des modifications au svn amont, puis exécutez à nouveau git fetch
, les modifications sont tirées (en fait, extraites) dans cette branche, pas sur maître. Donc, pour que git log (et tout le reste) fonctionne bien sur la branche master, vous avez juste besoin d'une fusion, comme vous le feriez normalement après un fetch (c'est ce que fait git pull, une fetch puis une fusion)).
Puisque git svn pull ne fonctionne pas, vous devrez le fusionner manuellement. Alors que sur la branche principale, exécutez:
git merge remotes/git-svn
Cette fusionnera branche master avec la branche git-svn, ce qui rend tout va bien à nouveau.
à l'avenir, exécutez
git svn fetch
git merge remotes/git-svn
et vous serez à jour avec le dépôt en amont une fois de plus.
La définition de l'adresse de la tête du maître sur la tête git-svn comme suggéré par vjangus rendra également ce travail, mais vous ne devriez jamais effectuer de changements dans une branche distante.
Vous avez raison. 'git log' recherche la référence principale, c'est pourquoi cela a fonctionné sur le 'git symbolic-ref refs/têtes/master refs/remotes/git-svn'. Merci. – vjangus
Cela ne fonctionne pas non plus dans git 1.7.5.4 – MDCore