2010-06-09 2 views
28

Ich versuche, mein Repository von Svn zu Git mit Svn2git zu importieren, aber es scheint, wie es versagt, wenn es einen Zweig trifft. Was ist das Problem?Was bedeutet dieser svn2git Fehler?

Found possible branch point: https://s.aaa.com/repo/trunk/project => https://s.aaa.com/repo/branches/project-beta1.0, 128 
Use of uninitialized value in substitution (s///) at /opt/local/libexec/git-core/git-svn line 1728. 
Use of uninitialized value in concatenation (.) or string at /opt/local/libexec/git-core/git-svn line 1728. 
refs/remotes/trunk: 'https://s.aaa.com/repo' not found in '' 

Running command: git branch -l --no-color 
* master 
Running command: git branch -r --no-color 
    trunk 
Running command: git checkout trunk 
Note: checking out 'trunk'. 

You are in 'detached HEAD' state. You can look around, make experimental 
changes and commit them, and you can discard any commits you make in this 
state without impacting any branches by performing another checkout. 

If you want to create a new branch to retain commits you create, you may 
do so (now or later) by using -b with the checkout command again. Example: 

    git checkout -b new_branch_name 

HEAD is now at f4e6268... Changing svn repository in cap files 
Running command: git branch -D master 
Deleted branch master (was f4e6268). 
Running command: git checkout -f -b master 
Switched to a new branch 'master' 
Running command: git gc 
Counting objects: 450, done. 
Delta compression using up to 2 threads. 
Compressing objects: 100% (368/368), done. 
Writing objects: 100% (450/450), done. 
Total 450 (delta 63), reused 450 (delta 63) 
+0

Ich hatte meinen Anteil von Problemen mit SVN und Git .. Ich habe keine Idee, was Ihr Problem sein könnte, aber vielleicht können Sie versuchen, ein anderes Repository-Konvertierungstool, wie Schneider zum Beispiel: http://progetti.arstecnic.it /Schneider/ ? – Unknown

+0

Sehr ähnlich/gleichen Fehler zu diesem Post: http://StackOverflow.com/Questions/15387812/Git-SVN-found-Possible-Branch-point/ –

Antwort

4

Ihr Subversion-Repository verfügt nicht über eine standardmäßige Stamm-/Verzweigungs/Tags-Struktur. Geben Sie die alternativen Orte für die Verzweigung an, indem Sie die Optionen --branch, --tag, --trunk verwenden.

+0

Ich hatte das gleiche Problem und lösen Sie es, indem Sie dies tun. – Pacu

58

Ich musste öffnen die .git/config-Datei und löschen Sie alle Zweige und Tags Einträge unter der svn-remote-Abschnitt und führen Sie den 'git svn Klon' Befehl für diesen Fehler wegzugehen. Anscheinend, wenn ich diesen Befehl mehrmals ausführe (in der Regel stoppen und neu starten von einer Revision), werden die Zweig/Tag-Einträge der Konfigurationsdatei hinzugefügt, anstatt wiederverwendet werden, was den Fehler verursacht.

+1

Danke, ich habe alles im Abschnitt [svn-remote "svn"] gelöscht. Das hat für mich funktioniert. – kpasgma

+0

yay! das hat funktioniert! –

+9

Ich musste nicht alles löschen, sondern nur Zeilen duplizieren: 'branches = branches/*: refs/remotes/svn/*' und 'tags = tags/*: refs/remotes/svn/tags/*' (behaltend one) –

4

Um Ihre Probleme zu beheben, müssen Sie die importierten Remote-Zweige und -Tags in lokale konvertieren.

Abschnitt von Scott Chacone (PRO GIT): Original-Link: http://progit.org/book/ch8-2.html:

To move the tags to be proper Git tags, run 

$ cp -Rf .git/refs/remotes/tags/* .git/refs/tags/ 
$ rm -Rf .git/refs/remotes/tags 

This takes the references that were remote branches that started with tag/ and makes them real (lightweight) tags. 

Next, move the rest of the references under refs/remotes to be local branches: 

$ cp -Rf .git/refs/remotes/* .git/refs/heads/ 
$ rm -Rf .git/refs/remotes 

Die perfekt für mich gearbeitet.

+0

Arbeitete auch für mich ... !!!! Aber in meinem Fall musste ich die Änderung nur für "Fernbedienungen" vornehmen, da die Tags gar nicht existierten, als es fehlschlug. –

+0

Nachdem es wieder kaputt gegangen ist, habe ich einfach alle Einträge aus dem "remote svn" Block in der .git/config Datei gelöscht und es hat funktioniert! –

5

Ich folgte einige Svn zu Git instructions, als ich in die gleiche Fehlermeldung lief. Der Fehler trat auf, wenn ich diesen Befehl lautete:

git svn clone file:///pathto/repo /pathto/new-git-repo –-no-metadata -A authors.txt -t tags -b branches -T trunk 

Nachdem der Fehler aufgetreten ist, ich die .git/config-Datei bearbeitet wie folgt:

tags = tags/*:refs/remotes/svn/tags/* 
branches = branches/*:refs/remotes/svn/* 

->

tags = tags/*:refs/remotes/svn/tags/* 
branches = branches/*:refs/remotes/svn/branches/* 

Ie Ich habe gerade die Zeile "braches" so formatiert, dass sie der Zeile "Tags" ähnelt. Dann habe ich den Befehl erneut ausgeführt. Der Prozess erzeugte ein gültiges Git-Repo mit entfernten Zweigen.

+0

Ist das eine Frage? Eine Antwort? Oder einfach "zu unserer Information"? – Manuel

+0

Es ist eine Möglichkeit, um den Fehler zu bekommen (was in meinem Fall den Prozess abgestürzt ist) und das Klonen von Svn zu Git getan. – jaolho

2

Es scheint, dass svn2git die Verzweigungskonfiguration nicht korrekt übergibt. Ich hatte das Standardlayout, aber der Fehler ist aufgetreten. Ich reparierte es, indem ich die Voreinstellungen für das Layout wieder übergab:

$ svn2git http://repos --branches branches --tags tags --trunk trunk 

Dann arbeitete es wie erwartet.