Haken für git-svn
Kann ich einstellen, Haken bei "pull"/"push" - ing aus/ein git-svn
verwaltetes repository?
Die situation ist, dass ich ein Projekt-host auf Google Code, und verwenden Sie git für die Verwaltung der lokalen Arbeitskopie. Ich möchte einige Haken so, dass Sie beim Check-in/out-Daten aus/in das SVN-repository mit git svn fetch
und git svn dcommit
, ich kann das einige änderungen zum commit. Da ich nicht hosten des SVN repository kann ich nicht, die Haken auf der server-Seite.
Gibt es irgendwelche Haken, die ich verwenden könnte? Oder gibt es eine Möglichkeit, zu "markieren" ein gewöhnlicher Zweig, so dass git pull
und git push
auf, dass der Zweig check-in/out-aus/auf ein SVN-repository statt, daher der normalen git-hooks verwendet werden könnte?
Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dargestellt durch dieser thread haben, können Sie die Haken auf der Subversion-Seite, die können eigentlich ablehnen, Ihre
git svn dcommit
basierend auf einigen Kriterien.Aber wenn Sie benötigen, git hooks Git-Seite, ich würde empfehlen die Einrichtung einer intermediate - bare Git-repository (bare-für einfache push/pull).
Auf das bare-repo, können Sie alle Haken, die Sie benötigen, wie gezeigt, in "wie richte ich mehrere Zweige auf verschiedene Verzeichnisse mit git push?" (nicht über svn aber nur hier, um Details einer ähnlichen Einrichtung von einem extra-repo)
git svn dcommit
.git fetch
Wunsch auslösengit svn fetch
, und validieren Sie ihn, bevor Sie Ihre eigenengit fetch
vorwärts zu bewegen.(2 Jahre später)
David Souther schlägt eine Lösung vor, in in seinem blog (April 2012)
Check-out seine Kernaussage.
svn fetch
(Sie können die Kapseln sowohl für die Operationen über ein alias). Aber auf der push-Seite, werden Sie nicht haben, um Anruf nichts direkt ein post-receive hook, der auf der bare-repo kümmern uns um diesvn dcommit
. In jedem Fall, die intermmediate bare-repo können Sie entkoppeln die Reine versionning Aspekt (Ihr lokales Git-repo) aus dem SVN-Synchronisation (der Google-SVN-repo).git svn dcommit
von einem bare-repository, aber ich bin immerfatal: This operation must be run in a work tree
. Was mache ich falsch?cd
) das zweite Zwischenprodukt (nicht nackten) repo-und löst einegit pull
, und dann würde (noch aus dem zweiten nicht-bare-repo) diegit svn dcommmit
.https://github.com/hkjels/.dotfiles/blob/master/zsh/git-svn.zsh
Wenn du zsh, ich glaube, dies ist ein guter Begleiter für git-svn. Nur legen Sie Ihre Haken in .git/hooks-und prefix-Befehl mit svn-.
Eg ".git/hooks/post-svn-rebase"
Das Skript ermöglicht auch die Verwendung von Aliasen
Gibt es ein git-remote-cvs - remote helper in den Werken; vermutlich wird jemand das gleiche tun für den svn. Normale Haken für remote-Operationen aufgerufen werden soll, vor und nach dem Aufruf dieser Helfer.