2009-09-29 17 views
5

sto modificando un progetto open-source che è memorizzato in un repo SVN. Dato che probabilmente i miei cambiamenti richiederanno un po 'di tempo, ho controllato il progetto come un repo Git usando il ponte git-svn. Non ho accesso a Subversion repository del progetto, quindi non posso spingere di nuovo le modifiche ad esso, ma mi piacerebbe pubblicare il mio repo Git (su GitHub), in modo che altri possano monitorare lo sviluppo delle mie modifiche.Pubblicazione di un pronti contro termine "git svn"

Per aggiornare un repo "git svn", si utilizza git svn rebase, che, come suggerisce il nome, rebases eventuali modifiche sulla parte superiore delle nuove modifiche dal repository Subversion. Naturalmente, non è una buona idea per spingere i rami che hai calcolato su base in un repo pubblica Git, quindi per quanto riguarda un repo clonato da un repository SVN, ho un paio di domande relative:

  1. E ' sicuro di pubblicare un ramo ribaltabile (usando git-svn rebase) su un repo pubblico?
  2. Sono del fermo restando che, supponendo che il branch master in Git è quello su cui si sta rebasing modifiche dal repository SVN, non si dovrebbe fare un reale sviluppo in questo repo; Ad esempio, se si uniscono le modifiche in master, è necessario inserirle nel repository SVN (utilizzando git svn dcommit). Se si aderisce a questa politica, è corretto pubblicare il ramo master ribaltabile su un repo pubblico?

risposta

1
  1. E 'sicuro di pubblicare un ramo SVN, ma solo se tutti i commit sono spinti al repo SVN usando git-svn dcommit. Se non ci sono cambiamenti nel ramo, allora git-svn rebase effettuerà solo un avanzamento veloce.

    Se rami qualcuno dalla vostra filiale pubblicato, è importante che sappiano che si tratta da un repo SVN. Questo perché se mai provi ad accettare le loro modifiche, l'unico modo per inserirle nel repository SVN consiste essenzialmente nel ridefinire le loro modifiche. Dopo aver pubblicato di nuovo le modifiche confermate, dovranno gestire i commit in conflitto, poiché l'hash non corrisponderà.

  2. E 'sicuro per lavorare in master, ma probabilmente non pratico. Dall'alto, non puoi pubblicare i tuoi commit finché non esegui git-svn dcommit. Quindi, se hai qualche lavoro che non vuoi impegnare, dovrai spostarlo in un ramo separato prima di provare a pubblicare gli ultimi commit SVN (ad esempio git-svn rebase; git push)

Problemi correlati