2010-02-10 15 views
13

Desidero eseguire una differenza tra una modifica effettuata localmente e tra l'ultima modifica effettuata da SVN. Ad esempio HEAD e cosa c'è sul trunk SVN Master.Git Diff tra HEAD e SVN Master

quale sarebbe il comando adatto?

Acclamazioni

risposta

2

Il modo più semplice per farlo sarebbe fare un diff tra HEAD e l'importazione di trunk in un repo git.

Ma se non si può fare un git svn rebase sul repository corrente perché non si vuole importare nulla (ma si vede solo la differenza con il repository SVN), è possibile clonare il repository in un secondo repository in cui è possibile in qualsiasi momento aggiornare il suo contenuto con SVN trunk.

Poi si dichiara un ramo di tracking e del recupero repo2 nella repo corrente:

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

e si può diff:

git diff svn_trunk..HEAD 
1

ho provato questo:

git diff HEAD ~ 3 HEAD

e ha funzionato come volevo vedere il diff tra 3 modifiche localmente commesse e d la TESTA sul bagagliaio.

Ma era nel modo giusto? Ha funzionato però! :)

+0

Se si sa che l'ultimo svn rebase era 'HEAD ~ 3', quindi si. Dovrebbe essere la stessa di 'git diff HEAD ~ 3.' – VonC

6

Presumo tu stia parlando git-svn:

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

non so se remotes/git-svn può essere da qualche altra parte. Verificare con git branch -a.

6

git diff trunk ha funzionato per me!

Problemi correlati