Come conservare la paternità Git e la data di commettere quando si utilizza GIT-SVN per spingere a un repo Subversion?
-
11-12-2019 - |
Domanda
Iniziamo con un nuovo repository di sovversione vuoto e un repository Git esistente che vorrei "spingere" e mantenere tutta la storia e la paternità (anche solo il nome utente se possibile).
Usando "git svn dcommit" Sono in grado di vedere i commenti di revisione nella storia del repo della sovversione, ma il dettaglio dell'autore è predefinito sul mio nome utente in Subversion e la data di commit diventa oggi , la data delspingere piuttosto che il commit iniziale in git.
C'è il metodo per ignorare queste proprietà di interesse molto simile a BZR-> SVN, con il bazar.conf override e la modifica al gancio di cambiamento pre-revprop, ma questa volta per git?
Grazie.
Soluzione
Non è possibile mantenere l'autore e le date con Git-SVN (così come non puoi conservare Ignores, rami anonimi e cronologia complessa usando IT).
Al fine di convertire il repository Git a SVN che ritiene tutto ciò che utilizza Subgit Progetto:
$ svnadmin create svn.repo
$ subgit configure svn.repo
$ #edit svn.repo/conf/subgit.conf ('git.default.repository' option)
to set path to your bare Git repository (the repository you on the server
or you can prepare new bare repository
with "git clone --bare <Git URL> path/to/bare/git/repo")
$ #optionally prepare svn.repo/conf/authors.txt file
to configure custom authors mapping
$ subgit install
.
Dopo la sincronizzazione del subgit di installazione e si manterrà in sincronizzazione SVN repository SVN.Repo e il percorso del repository Git / A / A / Bare / Git / REPO, in modo tale che qualsiasi impegno per SVN comporterà commit GIT e viceversa (la sincronizzazione è guidata daGanci e contemporaneamente sicuro, quindi potresti continuare a usare Git).
Per interrompere il funzionamento continuo della sincronizzazione
$ subgit uninstall svn.repo
.