2010-07-06 5 views
5

Ich habe ein SVN-Repository (ohne TLB-Struktur, wenn es darauf ankommt), die ich zusammen mit Git verwenden möchte. Ich kann einen git-svn-Klon machen, meine Änderungen im Git-Repo bearbeiten und mich wieder an das SVN-Repo binden, wenn ich fertig bin. Bis zu diesem Punkt ist es klar.Verwenden von Git und Svn mit mehreren Entwicklern

Ich bin mir nicht sicher, wie dieses Workflowmodell auf mehrere Entwickler erweitert werden kann. Ich brauche mein Entwickler-Team, um an einem einzigen Git-Repo (dem vom SVN-Repo geklonten) arbeiten zu können, der sich wie ein normaler Git-Repo für uns alle verhalten sollte. Irgendwann muss jeder Entwickler in der Lage sein, sich an den SVN-Repo zu binden. Ist das möglich? Vielen Dank.

Antwort

1

Wir hatten das gleiche Problem und wir haben keinen Weg gefunden, es zu tun, also wechseln wir zum vollen Git. Dinge funktionieren gut, wenn nur ein Repo mit Svn kommunizieren, aber sonst wird das wirklich chaotisch. Was passiert, ist die git-svn Branche hat sein eigenes Leben

Sie könnten einfach versuchen, diese
- Erstellen von Repo Git1 und Git2 von Svn.
- 1 eine Änderung in git machen und dcommit svn
- ziehen es GIT2 int, ein git svn rebase tun und sehen, was los ist ...

wenn Sie versuchen, es in GIT2 zu ziehen, müssen Sie Art von erstellen Sie einen neuen Zweig, der von der Svn starten, aber es wird nicht verfolgt. Also git2 hat im Grunde 2 Zweig der Svn One und der Git1. Bevor man also etwas von git2 in svn schieben kann, muss man den git1-Zweig mit dem svn-Zweig verbinden (auch wenn sie identisch sind). (Ich könnte mich irren, weil ich das vor einer Weile getan habe und vielleicht gibt es eine Lösung)

Wie auch immer, ich musste es ein paar Mal tun, als wir von 'git-svn' zu 'git' wechselten , haben wir das zentrale git-repository erstellt, bevor alle fertig sind, ihr eigenes Ding an svn zu übergeben. Ich musste dann neue Sachen aus dem SVN holen, um sie in den neuen Git Repo zu bringen und das war wirklich ein großes Durcheinander.

Also entweder nur git verwenden oder nur einen Repo mit svn verbinden.

+0

Dies ist die meisten problemlosen Ansatz meiner Erfahrung nach. –

1

ich auch bei dieser Suche, meine Art und Weise empfehlen

ist
  • Verwendung Master für die Synchronisation mit SVN-Repository und speziellen Zweig Namen anderer svn Zweige zu verfolgen, wie Walko Zweig in Svn, dann in git, es ist walko-svn
  • Verwenden Sie andere Namen, um mit Git-Repository zu synchronisieren.

alt text http://larrycai.files.wordpress.com/2013/02/image2.png

Dann wird die Art und Weise der Funktionsweise sind

  • alle Designer aus dem SVN-Repository von git-svn Klon synchronisieren ..., mit Master und Zweig-svn Name
  • alle Designer hat auch synchron zu Git Repository, aber für SVN
  • alle Designer meist git-Repository über Zweignamen halten verwenden Entwicklung zusammenarbeiten, wie Thema Zweig
  • wenn Thema Zweig scheint gut, können alle Designer zurück zu Master-Zweig, dieser Designer sollte an SVN-Repository Command und danach (erhalten git-svn-id), sie sind auch zurück zu git-Repository. (Dieser Job kann automatisch erfolgen, wenn svn Trigger gesetzt) ​​
  • dann git-Repository immer mit SVN-Repo ist synchronisiert auf Master-Zweig

Zusammenfassung

  • Verwendung git-Repository auf Nicht-SVN-Zweig zusammenarbeiten (wie master)
  • rebase zurück zu SVN-Repository aus nicht-Svn Zweig
  • immer git repo halten (Master) synchron mit Svn repo

siehe mein Blog mit Bildern http://larrycaiyu.com/blog/2010/07/10/svn-git-integration-1/