2010-06-29 3 views
6

abrufen Ich habe ein ganzes Repository von SVN bis Revision 15000 geholt. Ich erkannte, dass ich einen zusätzlichen Zweig an einem anderen Ort gespeichert hatte. Gibt es eine Möglichkeit, die .git/config-Datei mit dem Speicherort dieser neuen Verzweigung zu aktualisieren und nur die Revisionen abzurufen, die zu dieser Verzweigung gehören?Wie kann ich die Revisionen eines neu spezifizierten Zweigs mit git-svn

Antwort

0

Angenommen, dies ist nur ein weiterer Ort im selben Repository, können Sie einfach über den Parameter --branch angeben. Es ignoriert alles, was bereits abgerufen wurde.

Wenn es ein anderes SVN-Repository ist, können Sie einen anderen SVN-Remote einrichten und von dort abrufen.

+0

Richtig, aber berücksichtigt es frühere Revisionen (* vor * 15000) beim Aufruf von git svn fetch? Dies ist ein älterer Zweig. – Bradley

+1

'--branches' wird nur für den initialen Befehl clone/init verwendet. – jamessan

11

Sie können einen weiteren branches Eintrag zum svn-remote Abschnitt Ihrer .git/config Datei hinzufügen. Danach sollte die Ausführung git svn fetch die zusätzlichen Revisionen herunterziehen.


Wenn ich richtig verstehe, können Sie git-svn zwingen ältere Versionen der Zweige erneut zu scannen durch Entfernen (oder Ändern), um die max-branchesRev Linie von .git/svn/.metadata und git svn fetch wieder zum Laufen. Wenn Sie die Zeile ändern, anstatt sie zu entfernen, sollten Sie sie vor dem Erstellen Ihrer Zweigstelle auf eine Revision setzen. Danach werden die Zweige erneut nach allen Revisionen gescannt.


ich wahrscheinlich mit git svn reset ersten statt Messing mit .git/svn/.metadata gegangen sollte. Wenn das Folgende nicht funktioniert, habe ich keine Ideen mehr. :)

# Find the svn revision git knows about that's just previous (or close to) 
# the revision which created the branch 
$ git svn reset -r $foundSvnRev 
$ git svn fetch 
$ git reset --hard $remoteBranch 

Dann sollten Sie in der Lage sein git svn wie pro normal zu verwenden.

+0

Das funktionierte, aber zog nur die Revisionen * nach * der 15000, die ich schon geholt hatte. Die zuvor abgerufenen Revisionen für Commits zu diesem Zweig wurden nicht gecrawlt. – Bradley

+0

Ich habe versucht, die Zeile max-branchesRev in der Datei .git/svn/.metadata auf die Revision zurückzusetzen, unmittelbar bevor die Verzweigung erstellt wurde. Dann habe ich mit git svn fetch re-geholt. Leider, wenn ich den Zweig auschecke, ist die einzige Reivision, die ich sehe, dass ich * nach * dem 15000, das ich anfänglich geholt habe und den ich nach dem Ändern der .git/config-Datei abgerufen habe. Muss ich Git Svn Rebase in der Branche oder etwas? Kann ich einfach den Remote-Zweig löschen, die Eigenschaft erneut festlegen und erneut abrufen? – Bradley

+0

Sie könnten versuchen, eine "git svn rebase", aber ich glaube nicht, dass das funktioniert. – jamessan