2009-09-29 18 views
5

Modyfikuję projekt open-source, który jest przechowywany w repozytorium SVN. Ponieważ moje zmiany będą prawdopodobnie wymagały trochę czasu, sprawdziłem projekt jako repozytorium Git za pomocą mostka git-svn. Nie mam dostępu do repozytorium Subversion, więc nie mogę przesłać zmian, ale chciałbym opublikować moje repozytorium Git (na GitHub), aby inni mogli śledzić rozwój moich modyfikacji.Publikowanie repozytorium "git svn"

Aby zaktualizować „git svn” repo, należy użyć git svn rebase, która, jak sama nazwa wskazuje, rebases żadnych zmian na szczycie nowych zmian od Subversion repo. Oczywiście, to nie jest dobry pomysł, aby naciskać żadnych oddziałów masz rebased do publicznej Git repo, tak w odniesieniu do repo sklonowanego z repozytorium SVN, mam kilka powiązanych pytań:

  1. Czy to bezpiecznie opublikować odrodzoną gałąź (przy użyciu git-svn rebase) do publicznego repozytorium?
  2. Rozumiem, że zakładając, że twój oddział główny w Git jest tym, na który przenosisz zmiany z repozytorium SVN, nie powinieneś robić prawdziwego rozwoju w tym repo; to znaczy, jeśli scalisz zmiany w master, powinieneś przekazać je do repozytorium SVN (używając git svn dcommit). Jeśli przestrzegasz tych zasad, czy można opublikować rebased master branch na publicznym repo?

Odpowiedz

1
  1. Jest bezpieczny do publikowania oddziału SVN, ale tylko wtedy, gdy wszystkie rewizje są wypychane do repo SVN przy użyciu git-svn dcommit. Jeśli nie masz żadnych zmian w oddziale, to po prostu wykonasz szybkie przewijanie do przodu.
    Jeśli ktoś prowadzi oddział z opublikowanego oddziału, ważne jest, aby wiedział, że pochodzi z repozytorium SVN. Dzieje się tak dlatego, że jeśli kiedykolwiek spróbujesz zaakceptować ich zmiany, jedynym sposobem na przeniesienie ich do repozytorium SVN jest zasadniczo ponowne przesłanie ich zmian. Po ponownym opublikowaniu zatwierdzonych zmian będą musieli radzić sobie z konfliktowymi zatwierdzeniami, ponieważ skrót nie będzie zgodny.

  2. Bezpiecznie jest pracować w master, ale prawdopodobnie nie jest to praktyczne. Z powyższego nie możesz publikować swoich zatwierdzeń, dopóki nie uruchomisz git-svn dcommit. Jeśli więc masz jakąś pracę, której nie chcesz zatwierdzić, musisz przenieść ją do oddzielnego oddziału przed próbą opublikowania najnowszych zatwierdzeń SVN (tj. git-svn rebase; git push)

Powiązane problemy