2010-02-10 14 views
13

Ich möchte eine Diff zwischen einer lokal festgeschriebenen Änderung und zwischen der SVN Commit letzten Änderung machen. HEAD und was ist auf SVN Master trunk.Git Diff zwischen HEAD und SVN Master

Was wäre der geeignete Befehl?

Prost

Antwort

2

Der einfachste Weg, ein Diff zwischen HEAD und dem Import von trunk in eine Git-Repo tun würde es machen.

Aber wenn Sie kein git svn rebase auf Ihrem aktuellen Repo tun können, weil Sie nichts importieren möchten (aber nur den Unterschied mit dem SVN Repo sehen), könnten Sie Ihren Repo in ein zweites Repo klonen, wo Sie jederzeit können Aktualisieren Sie den Inhalt mit dem SVN trunk.

Dann erklären Sie eine Tracking-Zweig und holen dass repo2 in Ihrem aktuellen Repo:

master/HEAD 
svn_trunk # tracks repo2/trunk/HEAD, refreshed by a git svn rebase 

und Sie können diff:

git diff svn_trunk..HEAD 
1

Ich versuchte dies:

git diff HEAD ~ 3 HEAD

und es funktionierte, als ich die diff zwischen 3 lokal begangen ändert eine sehen wollte d der KOPF am Kofferraum.

Aber war es der richtige Weg? Es hat funktioniert! :)

+0

Wenn Sie wissen, dass der letzte svn rebase war 'HEAD ~ 3', dann ja. Es sollte die gleiche als 'git diff HEAD ~ sein 3..' – VonC

6

Ich nehme an, Sie sprechen über git-svn:

$ git-svn fetch    # get the latest from svn, without merging yet 
$ git diff ..remotes/git-svn # or <treeish>..remotes/git-svn 

Ich weiß nicht, ob remotes/git-svn irgendwo anders sein kann. Überprüfen Sie mit git branch -a.

6

git diff trunk arbeitete für mich!

Verwandte Themen