2010-12-14 93 views
8
git version 1.7.1 
svn, version 1.6.12 
Ubuntu 10.10 

Je viens de git et j'ai utilisé svn. Mais je n'ai pas utilisé alors ensemble. J'avais un dépôt git, et je devais plus mon dépôt vers un dépôt de subversion. J'ai donc utilisé git-svn. Ce qui fonctionne bien, la plupart du temps. Cependant, je trouve que l'on tourne en rond.git-svn rebase et dcommit problème

Je suis le seul à travailler sur ce projet.

Je fais quelques changements dans ma branche. Je les en scène alors:

git stage gateway.c 

commettras alors qu'ils git localement:

git commit m"Made some changes" 

Alors je veux les engager à la subversion. Obtenir les dernières mises à jour:

git svn rebase 

Je reçois le message suivant:

It seems that I cannot create a rebase-apply directory, and 
I wonder if you are in the middle of patch application or another 
rebase. If that is not the case, please 
     rm -fr /home/joe/projects/gateway/.git/rebase-apply 
and run me again. I am stopping in case you still have something 
valuable there. 
rebase refs/remotes/trunk: command returned error: 1 

I then doing the following: 
rm -fr /home/joe/projects/gateway/.git/rebase-apply 

Alors je fais un rebasage nouveau:

git svn rebase 

Le message est le suivant:

First, rewinding head to replay your work on top of it... 
Applying: Issue with getting the port from the user context. 
Using index info to reconstruct a base tree... 
Falling back to patching base and 3-way merge... 
Auto-merging driver.c 
Auto-merging gateway.c 
CONFLICT (content): Merge conflict in gateway.c 
Failed to merge in the changes. 
Patch failed at 0001 Issue with getting the port from the user context. 

When you have resolved this problem run "git rebase --continue". 
If you would prefer to skip this patch, instead run "git rebase --skip". 
To restore the original branch and stop rebasing run "git rebase --abort". 

rebase refs/remotes/trunk: command returned error: 1 

Ce qui me met sur une branche appelée, et w Quelle est cette branche et à quoi sert-elle ?:

*(no branch) 

Ensuite, je résous les conflits à cette branche. Je vérifie ensuite ma branche play_video. J'essaie de faire un autre:

svn git dcommit 

Et je finis par tourner de nouveau en rond.

Avant de commencer en me tirant les cheveux, certains peuvent me donner quelques conseils,

Un grand merci pour toutes les suggestions,

+0

le même problème ici ... presque 3 ans et aucune suggestion ... – Quartz

Répondre

3

Pas une réponse complète, mais ce qui semble certain est que:

*(no branch) 

signifie que vous finissez dans un mode DETACHED HEAD que vous voyez dans un contexte git svn dans "Can I recover lost commits in a SVN repository using a local tracking git-svn branch?". Voir également "Why did git detach my head?".

Alors assurez-vous:

  • à chaque étape, vous n'êtes pas dans une tête détachée (pas de branche)
  • que vous dcommit une branche qui existe dans votre repo SVN (et non un pur branche Git locale
+0

Merci pour votre aide. Je vérifie ça. – ant2009

+0

Je me suis retrouvé coincé ici et j'ai essayé de faire un tas de commandes git différentes, mais dans la fin de lancer git svn dcommit avant que je ne pouvais faire une autre svn fusion. – hellatan

+0

@dtan: Y at-il un problème ou un message d'erreur pour lequel vous auriez besoin d'aide? – VonC

1

Avez-vous utilisé les instructions de Google here pour importer votre repo git à svn? J'ai eu une erreur similaire après avoir utilisé ces instructions: l'importation initiale s'est bien passée, mais quelque chose s'est mal passé quelque part sur la ligne et je n'ai pas pu pousser les commits suivants.

Je l'ai résolu par git svn init -ing un nouveau repo git pour suivre mon repo svn.

1

Après avoir résolu vos conflits vous devez exécuter git rebase --continue avant d'exécuter git svn dcommit

+0

git rebase --continue dit juste qu'il n'y a rien à commettre. – Quartz