2010-02-10 27 views
13

Quiero hacer una diferencia entre un cambio comprometido localmente y entre el SVN cometido el último cambio. es decir, HEAD y lo que está en el trunk de SVN Master.Git Diff entre HEAD y SVN Master

¿cuál sería el comando adecuado?

Saludos

Respuesta

2

La forma más sencilla de hacerlo sería hacer una diferenciación entre HEAD y la importación de trunk en un repositorio git.

Pero si no puede hacer un git svn rebase en su repo actual porque no quiere importar nada (pero solo ve la diferencia con el repositorio SVN), puede clonar su repositorio en un segundo repositorio donde pueda en cualquier momento actualice su contenido con el SVN trunk.

A continuación, declarar una rama de seguimiento a buscar que repo2 en tu repositorio actual:

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

y se puede diff:

git diff svn_trunk..HEAD 
1

He intentado esto:

git diff CABEZA ~ 3 HEAD

y funcionó ya que quería ver la diferencia entre 3 cambios localmente comprometidos y d la CABEZA en el tronco.

¿Pero era la manera correcta? ¡Funcionó sin embargo! :)

+0

Si sabe que la última svd rebase fue 'HEAD ~ 3', entonces sí. Debería ser lo mismo que 'git diff HEAD ~ 3.' – VonC

6

Asumo que estás hablando git-svn:

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

no sé si remotes/git-svn puede estar en otro lugar. Consulte con git branch -a.

6

git diff trunk trabajado para mí!

Cuestiones relacionadas