2010-09-20 13 views
10

Sto provando a git-svn per lavorare su un server SVN shadowcat privato.Perché git-svn sta cambiando casualmente la mia directory principale in quella principale?

git svn clone -s http://dev.catalystframework.org/repos/Catalyst/Catalyst-Plugin-ConfigLoader/ 
Initialized empty Git repository in /home/ecarroll/code/perl/foo/Catalyst-Plugin-ConfigLoader/.git/ 
Using higher level of URL: http://dev.catalystframework.org/repos/Catalyst/Catalyst-Plugin-ConfigLoader => http://dev.catalystframework.org/repos/Catalyst 

Che cosa non funziona? Sembra che http://dev.catalystframework.org/repos/Catalyst/Catalyst-Plugin-ConfigLoader/ abbia il layout standard.

C'è un modo semplice per ottenere git da estrarre da un repository SVN?

+0

Funziona bene per me (Git 1.7). Hai fornito l'output completo del comando? –

risposta

13

Sono un po 'in ritardo nel rispondere ora che il progetto Catalyst-Plugin-ConfigLoader è migrato a Git, ma risponderò nel caso qualcuno si imbatta in un problema simile con un progetto svn diverso.

git svn cerca di essere utile cercando la radice del repository svn e usando quello al posto dell'URL che gli dai. Trovo fastidioso, ma per fortuna c'è una soluzione: utilizzare l'opzione --no-minimize-url.

Dalla documentazione git svn (git help svn):

--no-minimize-url

Durante l'inseguimento più directory (usando --stdlayout, --branches, o --tags opzioni), git svn tenterà di collegarsi alla radice (o più alto consentito livello) del repository Subversion. Questa impostazione predefinita consente un miglior monitoraggio della cronologia se interi progetti vengono spostati all'interno di un repository, ma potrebbe causare problemi nei repository in cui sono in vigore restrizioni di accesso in lettura. Il passaggio da --no-minimize-url consentirà a git svn di accettare gli URL così com'è senza tentare di connettersi a una directory di livello superiore. Questa opzione è disattivata per impostazione predefinita quando viene tracciato solo un URL/ramo (farebbe ben poco).

0

Ho riscontrato un problema simile e ho utilizzato l'opzione --no-minimizza-url. Ciò ha permesso al clone di avere successo, ma mancava qualcosa come metà dei tag. Risulta che vietare al clone di salire di livello significava che non poteva vedere un precedente repo rinominare quello che era successo. Una volta rimossa l'opzione --no-minimizza-url, sono comparsi i tag mancanti.

Problemi correlati