Frage

Ich habe einige Shell Zeug eingerichtet, dass Aliase dynamisch definiert je nachdem, welche Art von VC Repo die CWD enthält - so zum Beispiel ‚d‘ läuft ‚svn diff‘ oder ‚git diff‘, je nachdem. (Basierend auf diesem Blog-Eintrag wenn jemand interessiert ...)

Ich mag einige Aliase anders definieren, je nachdem, ob ich in einer Git-Repo im Vergleich zu einem git-svn Repo. Gibt es eine einfache Möglichkeit, den Unterschied zwischen den beiden zu sagen?

War es hilfreich?

Lösung

Sie sollten ein bisschen vorsichtig sein, wenn die Entscheidung, welche genau Repositories sind git-svn-Repositories. Ein Repository kann mehr als eine SVN-Repository enthalten.

Kafkas Lösung funktioniert nur, wenn die SVN-Repository mit dem es oder --std-Layout-Option geklont wurde, in dem es eigentlich ein Zweig trunk.

Codelogic Antwort wird nur funktionieren, wenn es eine SVN-Repository svn genannt ist -. Es gibt keine Anforderung, dass das wahr ist

Der einfachste Weg, um zu überprüfen, ob es ist ein SVN-Remote in der Config ist:

$ git config --get-regexp ^svn-remote

Das wird jede konfigurierte git-SVN-Repository finden, was auch immer sie genannt werden. Es wird verlassen mit Status 0, wenn eine Übereinstimmung vorhanden ist, und 1, wenn es keine Übereinstimmung gibt.

Aber das bedeutet nicht, dass das SVN-Repository wirklich verwendet wird. Es könnte auch sein, dass jemand eine SVN-Repository importiert hat, verwendet jedoch als Submodul ist oder als Unterbaum verschmelzen, oder sogar gar nicht. Wenn Metadaten in der git-SVN-Repository eingeschaltet worden ist, können Sie sehen, ob SVN-Revision in der aktuellen HEAD verwendet wurde, um so etwas wie dies mit:

$ git rev-list -1 --grep='git-svn-id' HEAD

Aber das ist vielleicht ein bisschen zu verworren. Sie entscheiden.

Andere Tipps

Sie können sich wahrscheinlich die Ausgabe des git config Befehls zwischen einem git und git-svn-Repo zu unterscheiden.

git config --get svn-remote.svn.url

sollte die SVN URL zurückkehren synchronisiert werden, wenn es einen gibt.

Es gibt auch einen Zweig genannt Stamm und und ein Zweig genannt Stamm @ [REV]. Aber ich denke, codelogics Ansatz ist einfacher und sauberer.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top