Vincent Danen fa parlare the -A option when using git svn:
Quindi, utilizzando ~/git come una directory di livello superiore per Git repository [...]
creare un file authors.txt.
Questo file mapperà i nomi dei committer Subversion agli autori Git, risultando in una cronologia corretta del repository Subversion importato.
Per i progetti con un piccolo numero di committer, questo è abbastanza facile. Per progetti più grandi con molti committer, questo potrebbe richiedere del tempo. La sintassi del file sarebbe:
user = Joe User <[email protected]>
vdanen = Vincent Danen <[email protected]>
Il nome breve è il nome committer per Subversion mentre la forma lunga è nome e indirizzo e-mail completo dell'utente, ed usati per Git.
Il passaggio finale consiste nel clonare il repository Subversion, che crea un repository Git locale basato su di esso. Assumendo che il repository utilizza gli standard di/tronco,/tag e/rami, uso:
# git svn clone --no-metadata -A authors.txt -t tags -b branches -T trunk https://svn.example.com/svn/repo
-A<filename>
--authors-file=<filename>
sintassi è compatibile con il file utilizzato da git-cvsimport:
loginname = Joe User <[email protected]>
Se questa opzione è specificata e git-svn
rileva un nome di commit SVN che non esiste negli autori -file, git-svn interromperà l'operazione.
L'utente dovrà quindi aggiungere la voce appropriata.
Il riesecuzione del precedente comando git-svn
dopo la modifica del file degli autori deve continuare l'operazione.
config key: svn.authorsfile
Questo dovrebbe funzionare per tutti git-svn
comandi, tra cui git-svn dcommit
(quando si preme - SVN) (Nota: non ho ancora testato direttamente però).
Mohammed Gamal segnala (nei commenti) funziona, ma senza l'opzione --no-metadata
.
Questo funziona anche nella direzione git-> svn, come richiesto da OP? –
@Christoph: a proposito, * si * ha un mirror SVN di un repository Git (http://stackoverflow.com/questions/570945/git-clone-of-git-svn-tree/571084#571084). Hai mai dovuto usare l'opzione --authors-file? – VonC
La soluzione funziona, ma senza l'opzione --no-metadata –