2011-02-09 13 views
15

Sono un po 'confuso su come eseguire il commit su diversi rami svn da diversi rami git locali. In particolare, anche se ho letto molte delle domande correlate su questo argomento, c'è una cosa specifica che nessuno sembra aver spiegato finora:Come sapere quale ramo svn remoto è un local git branch tracking?

se ho già alcune filiali locali, come posso sapere quale ramo svn remoto che stanno seguendo (se ce ne sono)?

Da this answer sembra che si può cambiare il ramo che si desidera essere il monitoraggio, ma come interrogazione esso?

git branch -v non sembra essere particolarmente utile in questo (vale a dire non vengono fornite ulteriori informazioni). Ho anche esaminato tutti i file di testo in .git/ ma non ho trovato nulla anche lì.

risposta

15

git svn info ti dà l'URL completo repository, in modo che il ramo SVN dovrebbe comparire lì.

+0

Sì, questo sembra essere un passo importante nella giusta direzione; questo è il primo comando che stabilisce esplicitamente quale ramo si influenzi fondamentalmente con 'dcommit '. Se nessuno trova un comando che mostri queste informazioni tutte insieme per tutte le filiali locali, probabilmente accetterò questa risposta. – UncleZeiv

1

Non è esattamente quello che hai chiesto, ma puoi ottenere le informazioni di base usando git remote show $REMOTE_NAME dove REMOTE_NAME è il nome del telecomando per il tuo repository SVN. Questo dovrebbe mostrare un TON di informazioni su ciò che sta andando dove.

+1

Non sono sicuro di dove dovrei ottenere $ REMOTE_NAME da ... è il nome della sezione '[svn-remote]' di .git/config'? – UncleZeiv

+0

@UncleZeiv Immagino (non sono in 'git-svn' al momento). Cosa vedi quando esegui 'git remote'? –

2

Non sicuro, ma può essere smth come questo in. Git/config ti aiuta?

[svn-remote "some-project"] 
     url = http://example.org/svn 
     fetch = trunk:refs/remotes/trunk 
     branches = branches/{branch1,branch2}:refs/remotes/branches/* 
     branches = branches/branch3:refs/remotes/branches/otherbranch3 
     .... 
+0

Grazie ma no, non è così. Ho un ramo generico 'branches = branches/*: refs/remotes/branches/*', e non viene menzionato alcun ramo git locale, per non parlare di quale sia la relazione tra rami locali e rami svn remoti. – UncleZeiv

-4

Si potrebbe provare con:

git remote -v 
+0

hm, questo ritorna silenziosamente. – UncleZeiv

+0

non è utile quando il server remoto è svn invece di git. – apadana

0

Per ora sto usando

git svn dcommit -n 

Mi piacerebbe anche vedere con comandi come "-av ramo git" o "remote git - v "più potenzialmente qualche bandiera extra.