Ecco la situazione: abbiamo un enorme repository svn, che è il "master" (non è possibile cambiarlo perché è effettivamente "di proprietà" di un'altra azienda). Preferiremmo lavorare localmente in git per ottenere la flessibilità e la velocità di ramificazione offerte da git. Ma non vogliamo clonare l'intero repository.Come creare un clone git con rami di un "sottoprogetto"?
La struttura repository sembra grosso modo così:
/trunk/project1/*
/project2/*
/branches/branch/project1/*
/project2/*
/tags/tag1/tag1a/project1/*
/tag1b/project1/*
/tag2/tag2a/project2/*
Mi interessa solo in project1, ma mi piacerebbe avere sia tronco e rami (i tag non sono così importanti, ma sarebbe bello prendili anche tu).
Sono in grado di ottenere un unico ramo clonato con queste impostazioni svn-remote:
[svn-remote "svn"]
url = https://svn.company.com/svn/branches/branch1/project1
ma voglio davvero ottenere la struttura ramificata, anche. Ho pensato di usare ignorare-percorsi:
[svn-remote "svn"]
ignore-paths=^project2|^project3|...
ma avrei dovuto aggiornare i ignorare-percorsi ogni volta che viene aggiunta una nuova directory di primo livello "progetto", che non è davvero sostenibile.
In secondo luogo, abbiamo davvero bisogno solo dei tag in/tag/tag1 (se abbiamo bisogno di tag). Qualsiasi idea su come farlo sarebbe apprezzata.
Sì, che ha fatto il lavoro. Una stranezza è che il percorso di esclusione che ha funzionato quando stavo controllando un singolo ramo sembra non funzionare qui. Avevo url = https://svn.company.com/svn/branches/branch1/project1 ignore-paths =^baddir/ e "baddir" non è stato prelevato da svn. Con gli stessi percorsi ignorati ma i precedenti svn-remote def, viene recuperato "baddir". – Spencer