2012-06-04 4 views
28

EDIT: Umgehung. Jetzt verstehen wir das Problem, hier ist die Lösung: doWarum scheint der Befehl "git svn fetch" hängen zu bleiben und tut nichts?

git svn fetch -r REVISION:HEAD 

wo REVISION ist die Zahl der svn der Branche Schöpfung begehen.


Ich habe schon eine Weile auf dem Stamm von meinem Projekt zu arbeiten, glücklich mit git svn aber jetzt brauche ich auch Zweige zu verfolgen.

Ich habe versucht, ein neues Repository zu initialisieren, das zu tun mit

git init 
git svn init https://svnserver/svn/repository 

Dann bearbeite ich die lokale Konfigurationsdatei, die die Struktur meiner SVN-Repository zu reflektieren:

[svn-remote "svn"] 
    url = https://svnserver/svn/repository 
    fetch = path/to/trunk:refs/remotes/trunk 
    branches = path/to/branches/*:refs/remotes/branches/* 

Dann laufe ich

git svn fetch 

Und dieser Befehl nur tut nichts:

  • Es endet nicht
  • Es
  • nichts in der Ausgabekonsole schreiben Sie keine CPU verwenden, noch erstellen Dateien

Ich gab nach 10 Minuten

Ich habe überprüft, dass das SVN-Repository funktioniert, denn git svn fetch funktioniert perfekt auf meinem Git-Repository, wo ich nur den Stamm verfolgen.

Ist das ein Fehler oder fehlt mir hier etwas?

+0

große Zeitersparnis, danke! mit -r war es fast sofort, sogar mit unserer svn repo, die Dutzende von aktiven Zweigen und eine lange Geschichte (über 20k commits) hat. – djKianoosh

Antwort

22

Es wird nach dem Abrufen des ersten relevanten Commits ausführlich.

Aber bis das Commit abgerufen wird, können Sie sicherstellen, dass der Befehl ordnungsgemäß funktioniert, indem Sie die Datei .git\svn\.metadata überprüfen.

+1

Und es kann ewig dauern, das "erste relevante Commit" zu sehen, also musst du geduldig sein und weggehen und es einfach lassen, bis du etwas siehst ... Langweile dich nicht und CTRL + C wie ich es getan habe! : D –

+0

Überprüfen Sie die Bearbeitung durch das OP: Wenn Sie die Revisionsnummer des "ersten relevanten Commits" kennen, können Sie den Prozess beschleunigen. –

+0

Es scheint mir, als würde der Prozess nichts tun. Ich habe das auf der Maschine ausgeführt, auf der sich der SVN Repo befindet, aber die CPU geht nicht einmal um 5%. Es ist, als gäbe es eine Schlafanweisung, die zu Beginn des Prozesses nur 1 Stunde dauert. –

2

Versuchen Sie, den Parameter --log-window-size=5000 hinzuzufügen.

Wenn der Repo eine große Anzahl von Commits hat, wird git-svn sie standardmäßig 100 gleichzeitig durchlaufen. Das zu erhöhen, kann seine Geschwindigkeit enorm steigern.

0

ich habe die Eigenschaft holen ändern: refs/remotes/git-svn und es funktioniert für mich