2010-07-20 4 views
5

vor ein paar Monaten konfigurierte ich einen Git mit einem SVN-Repository. Bis jetzt habe ich nur das Svn-Repository verwendet, um mit der gelieferten Anwendung auf dem neuesten Stand zu bleiben. Aber jetzt möchte ich auch Sachen zurückgeben. Um dies zu tun, muss jedes Feature, das ich festschreiben möchte, in einem separaten Zweig sein. Ich lese darüber, wie man einen neuen Zweig erstellen soll usw. Aber ich denke, ich habe meinen Git konfiguriert, ich habe keine Filialinformationen usw. Ich denke, ich habe nur die Kofferrauminformationen. Dies ist, wie meine SVN-Repository hat in meinem git Config eingerichtet:git-svn-Verzweigung: Wie konfiguriert man git config

[remote "origin"] 
    url = url-of-git-repository 
    fetch = +refs/heads/*:refs/remotes/origin/* 
[svn-remote "svn"] 
    url = url-of-svn-repository/trunk 
    fetch = :refs/remotes/git-svn 
[branch "master"] 
    merge = refs/heads/master 
    remote = origin 
... other branch information below (these are git branches) 

Nun, wie Sie meine SVN-Remote-URL geht direkt an Stamm sehen. Ich las diese über das Hinzufügen von:

branches = branches/*:refs/remotes/* 

, aber wenn ich einen neuen Zweig erstellen, dann wird es werden, indem es mit dem Stamm/branches /. Wenn ich die Zeile nicht hinzufüge, weiß sie nicht, welches Ziel der Zweig hat.

Irgendeine Idee, wie man das löst, ohne die vorhandenen Zweige, Code, etc. zu brechen?

Greets, Daan

Antwort

6

Ich glaube, die Zweige Konfiguration an die SVN-Remote-URL ist relativ.

Hier ist unsere Konfiguration so, wie es indem

git svn -s url-of-svn-repository/foo

gemacht wurde (in den Ordner foo, haben wir die normale trunk/branches/tags Struktur)

[svn-remote "svn"] 
     url = url-of-svn-repository 
     fetch = foo/trunk:refs/remotes/trunk 
     branches = foo/branches/*:refs/remotes/* 
     tags = foo/tags/*:refs/remotes/tags/* 

Sie könnten versuchen, Anpassung an diese Struktur, oder tun Sie Ihre Git Svn Clone wieder mit dem Parameter -s. Es wird alles für Sie konfigurieren (- Standard-Layout).

0

Dies war ein Beitrag, der mir half, Git mit svn mit einem Projekt, das eine sehr unorthodoxe Zweigstruktur hatte (was für den Kurs für Unternehmen SVN aus irgendeinem Grund, den ich fürchten, Par).

http://www.dmo.ca/blog/20070608113513/

+0

Es wäre in mehrfacher Hinsicht besser sein, mehr SVN-Zweig unter dem gleichen '[SVN-Remote-xxx]' Abschnitt behandelt werden. Sie müssen dann 'git svn fetch' nicht für jeden der Zweige separat ausführen. Außerdem denke ich, dass die allgemeinen svn-Revisionen dann als einzelne gemeinsame Commits im Spiegelungs-Git-Repository dargestellt werden. Sie können das '*' in der Verzweigungsdefinition in jeder Unterverzeichniskomponente des Pfades haben, obwohl Sie '.git/config' manuell bearbeiten müssen, um dies zu erreichen. – FooF