2012-06-22 13 views
22

Sto provando a convertire il mio repository svn in git, ma non sto avendo molto successo. Il repository in questione non ha nulla come un "tronco". La disposizione è la seguente:Impossibile convertire il repository svn (senza trunk) per git

 
/home/svn/ 
     |--- /project1/ 
     |--- /project2/ 
     |--- /repos/project3/ 

E sotto quelle cartelle di progetto sono i file. Nessun tronco, niente rami, niente di speciale. All'epoca era tutto ciò di cui avevo bisogno, e ora mi sta mordendo il culo.

Sto seguendo questa guida: http://john.albin.net/git/convert-subversion-to-git

Quando eseguo questo comando:

git svn clone svn+ssh://[email protected]/home/svn/repos/kiflea --no-metadata -A authors-transform.txt --stdlayout ~/kiflea 

Si dice che ha creato un repository git vuoto ... Ma non mi voglio che essere vuoto

Non ho nemmeno idea di come dovrebbero apparire i seguenti comandi, poiché il mio repository ha un layout diverso.

Comandi come git symbolic-ref HEAD refs/heads/trunk o git config remote.bare.push 'refs/remotes/*:refs/heads/*'

+3

Rimuovi --stdlayout Vuoi dividerlo in 3 repository Git? –

+0

Questo l'ha fatto. Ho provato così tante varianti, tanti comandi, ma la rimozione di --stdlayout da questo non mi è venuta in mente. Rispondi alla domanda in modo che possa darti la taglia;) – skerit

+0

Dovresti aver appena guardato la pagina di manuale ('git svn --help'). Esiste anche una sezione "ESEMPI DI BASE" che, in modo non sorprendente, contiene il tuo caso esatto. – user1338062

risposta

40

Basta rimuovere l'opzione --stdlayout. Significa struttura tronco/rami/tag.

3

Se si dispone di accesso locale al repository SVN, ti consiglierei di utilizzare SubGit per la conversione. Ci sono alcuni semplici passaggi:

$ subgit configure path/to/svn/repository 
$ #edit path/to/svn/repository/conf/subgit.conf to specify "core.authorsFile" option to point to your authors-transform.txt 
$ subgit install path/to/svn/repository 

Dopo che un repository Git verrà creato e repository sarà in sincronia costante. Opzionalmente è possibile eseguire

$ subgit uninstall path/to/svn/repository 

per disattivare la sincronizzazione.

Se non si dispone di accesso locale al proprio repository, si clona il repository con SmartGit. L'effetto sarà simile a "git svn clone" ma tali concetti SVN come ignora, opzioni di elaborazione EOL, tag saranno anche tradotti in Git (lo stesso posso dire anche su SubGit).

Nessuna di queste soluzioni è basata su "git-svn".

+0

Grazie per l'alternativa, ma dopo aver installato il sottotit nel repository non riesce a tradurre alcun commit svn. (Anche se dice "INSTALLATION SUCCESSFUL") – skerit

+1

Mi spiace di aver letto male il tuo messaggio, attualmente il sottotit funziona con il layout trunk/branches/tags. Ma SmartGit dovrebbe sicuramente aiutare. –

Problemi correlati