2010-10-05 4 views
14

C'è un progetto open source SVN a cui ho accesso in sola lettura, e mi piacerebbe creare un mirror GIT di quel progetto aggiornato su GitHub.Esistono servizi di sincronizzazione automatica SVN-> GIT?

So come impostare il mirror iniziale e quindi mantenerlo aggiornato con git svn rebase, ma ciò richiede comunque di avere un server configurato da qualche parte con un cron job in esecuzione per gestire la sincronizzazione, impostando il monitoraggio per assicurarsi che il server è attivo e il lavoro cron è in esecuzione, periodicamente l'aggiornamento alla versione più recente git, ecc

Prima di reinventare la stessa ruota che ogni altra SVN-> specchio GIT ha dovuto, mi chiedevo se ci sono dei servizi (gratuito oa pagamento) che automatizzerà il mirroring SVN-> GIT per me. Conosci qualcuno?

Ovviamente un servizio automatizzato non può unire le mie modifiche - tutte le mie modifiche avvengono in un repository separato (o forse un ramo separato nello stesso repository). Sto solo cercando un modo per automatizzare l'interazione SVN e creare uno specchio esatto che altri possano clonare.

+1

Sarei anche interessato a tale servizio perché voglio usare un open-source progetto ospitato in SVN come sottostruttura git. La risposta accettata non risponde alla domanda posta. Ci può essere una nicchia qui per una piccola impresa. In alternativa, qualcuno come Github potrebbe voler offrire un servizio simile se non esiste già. – paperjam

risposta

6

Penso che la responsabilità per questo dovrebbe cadere nelle mani delle persone che mantengono il progetto. Vedere ad esempio come Apache support their projects with Git mirrors.

D'altra parte, non c'è molta "invenzione" da fare qui, penso. Se si dispone di un server che può eseguire il polling continuo al repository SVN per le modifiche, eseguire un rebase git-svn e passare a github è abbastanza semplice. Dubito che alcune aziende siano specializzate nella creazione di questo (almeno, non ne ho visto nessuno).

In una nota a margine, quando si desidera condividere le modifiche, non è necessario passare a Git-mirror. È meglio fare di nuovo git-svn dcommit su SVN, o inviare una patch agli sviluppatori. Se si preme il repository di recupero SVN, si creerà un problema con git-svn, credo. Come dici tu, la sincronizzazione bidirezionale di Git-SVN non può essere automatizzata.

5

È possibile utilizzare post-commit hooks nel server svn per comunicare a git-svn che è ora di rebase.

+3

Potresti ampliarlo? –

2

Si dovrebbe usare solo tailor. È in grado di convertire ripetutamente qualsiasi VCS in qualsiasi altro VCS. E lo fa in modo incrementale, nel senso che se prima converti il ​​repository SVN in Git, i commit vengono fatti in SVN e tu converti nuovamente, convertirà solo le nuove revisioni, aggiungendole correttamente come cronologia alla cronologia Git esistente.

Si potrebbe automatizzare il processo in due modi: o si basta eseguire su misura a tempo, con qualcosa come cron o anacron, o utilizzare, come suggerito in precedenza, post-commit hooks in SVN, innescando così la conversione immediatamente dopo nulla è impegnata a SVN.

0

svn2github.com sembra essere esattamente quello che vuoi. Riflette qualsiasi repository svn su github e si aggiorna automaticamente purché il repository abbia meno di 2000 file (sopra il quale è necessario aggiornare manualmente)