2010-03-11 22 views
20

Estoy buscando un comando en git-svn que me muestre los cambios que he comprometido en mi repositorio de git pero que aún no están comprometidos con el svn central repositorio. Estoy buscando algo que funcione como svn status, pero estoy usando git-svn, y desafortunadamente, git svn status no es un comando válido.git svn status: muestra los cambios que no están confirmados en svn

Intenté git status pero no resuelve este problema, ya que muestra cambios que no se han confirmado en mi repositorio de git local.

También probé git svn dcommit --dry-run, pero no me dice qué archivos están listos para ser confirmados, solo muestra la URL del repositorio.

Respuesta

22

Suponiendo que la rama para el depósito de la subversión a distancia está en mandos a distancia/git-svn, ejecute el siguiente:

git svn fetch 

la zona de alcance se asegurará de que los mandos a distancia/git-svn-es actualizada. (Gracias a Mark por señalar esto en un comentario.)

git diff --name-status remotes/git-svn 

Esto debería mostrar el nombre y el estado de todos los archivos que se han cometido a git, pero no a la subversión, al igual que el comando svn status.

En caso de que no está seguro de dónde se encuentra la rama que contiene el repositorio remoto de Subversion, puede ejecutar:

git branch -a 

que debe producir una salida similar a la siguiente:

* master 
    remotes/git-svn 

Usted probablemente pueda adivinar a partir de esto que el repositorio remoto de Subversion está en remotos/git-svn.

+3

Podría valer la pena añadir una nota al comienzo de la respuesta en el sentido de que es una buena idea ejecutar 'git svn fetch' primero para asegurarse de que' remotes/git-svn' esté actualizado. –

0

También puede utilizar

git diff git-svn HEAD -d 

o si tiene difftool especificada:

git difftool git-svn HEAD -d 
Cuestiones relacionadas