ProblemVerwenden von Git als Brücke zwischen Git und SVN Repos?
Mein Team nutzt git für die Quellcodeverwaltung auf bitbucket, unser Client verwendet Subversion im Hause. Wie kann unser Team weiterhin git verwenden, während Code in Subversion eingecheckt wird? Und nein, ich glaube nicht, dass Git-Svn funktionieren wird.
Anforderungen
Mein Team will eine reine git-Lösung verwenden, nicht git-svn. Der Grund dafür ist, dass unser Kunde uns Zugang zu seiner svn-Umgebung nur innerhalb unseres Büro-LAN gewährt hat; Wir können keine Zusagen machen, wenn wir außerhalb des Büros arbeiten.
Mein Ansatz
Ich dachte, dass ich die Subversion-Repository mit git-svn Kasse könnte, dann ist unsere bitbucket git Instanz als Fernbedienung auf die gleiche git-wrapped SVN-Repository hinzuzufügen. Ein Cron-Job könnte dann die git pull
aus unserem Bitbucket Repo machen, dann tun Sie eine git svn dcommit
, um die Änderungen in Bitbucket bis zum Subversion-Repository unseres Kunden zu pushen.
Dies war problematisch aus dem Grund, dass Git würde immer zeigen, dass ich 'x' Anzahl der Revisionen vor dem Git bitbucket Repository nach dem Pull, svn dcommit Prozess beendet wurde.
Während noch nichts äußerlich Seltsames vor sich geht, bin ich irgendwann zuversichtlich, dass unser Client Eincheck-Vorgänge in ihr Subversion-Repository starten wird, die ich irgendwann an unsere bitbucket-Instanz weitergeben muss.
Technische Daten
Hier ist eine grobe Reihe von Schritten, die ich diese Arbeit zu versuchen, habe mit zu bekommen:
git svn clone -s http://svn.my-client.us/my-proj/
cd my-proj
git remote add origin path-to-bitbucket-repo
git fetch origin
git checkout -b develop remotes/develop
git branch --set-upstream develop origin/develop
git pull
#add merge comment here
git svn rebase
git svn dcommit #takes a while to transfer all the individual commits
Nach all den oben, Ausführung git status
:
[[email protected] myDir]$ git st
# On branch develop
# Your branch is ahead of 'origin/develop' by 59 commits.
#
nothing to commit (working directory clean)
Gegeben, ich muss in der Lage sein, Check-Ins von jedem Ort zu tun, nicht nur, während ich im Büro bin, gibt es s trategie, sie als Brücke dafür zu nutzen?
Danke!