2010-03-11 15 views
20

Sto cercando un comando in git-svn che mi mostrerà le modifiche che ho commesso nel mio repository git ma che non sono ancora impegnate nello svn centrale repository. Sto cercando qualcosa che funzioni come lo stato di svn, ma sto usando git-svn e sfortunatamente, git svn status non è un comando valido.git svn status - mostra le modifiche che non sono state commesse in svn

Ho provato git status ma non risolve questo problema, in quanto mostra le modifiche che non sono state commesse al mio repository git locale.

Ho anche provato git svn dcommit --dry-run, ma non mi dice quali file sono pronti per essere scomunicati - mostra solo l'URL del repository.

risposta

22

Assumendo il ramo per il repository remoto è a telecomandi/git-svn, eseguire il seguente:

git svn fetch 

Il recuperano assicurerà che telecomandi/git-svn è up-to-data. (Grazie a Mark per la precisazione in un commento.)

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

Questo dovrebbe mostrare il nome e lo stato di tutti i file che sono stati commessi a git, ma non a Subversion, proprio come il comando svn status.

Nel caso in cui non siete sicuri di dove si trova il ramo che contiene il repository remoto Subversion, è possibile eseguire:

git branch -a 

che dovrebbe produrre un output simile al seguente:

* master 
    remotes/git-svn 

È posso probabilmente supporre che il repository Subversion remoto sia in remotes/git-svn.

+3

Potrebbe valere la pena di aggiungere una nota all'inizio della risposta secondo la quale si tratta di una buona idea lanciare 'git svn fetch' per assicurarsi che' remotes/git-svn' sia aggiornato. –

0

È inoltre possibile utilizzare

git diff git-svn HEAD -d 

o se si dispone difftool specificato:

git difftool git-svn HEAD -d 
Problemi correlati