Mam szczególny problem z SVN merge
. Chcę połączyć się z gałęzi deweloperskiej do głównej. Mamy kilka gałęzi deweloperskich odciętych jednocześnie.
Scalam jedną z tych gałęzi do linii głównej za pomocą tego polecenia:
svn merge trunk branch_1
Widzę zmiany, które nie są częścią tej gałęzi, są scalane w trunk. Co ja robię źle ?
Wersja SVN:
Klient wiersza polecenia Subversion, wersja 1.6.16-SlikSvn-tag-1.6.16@1076804-WIN32.
svn
version-control
merge
Vanchinathan Chandrasekaran
źródło
źródło
Odpowiedzi:
Twoja
svn merge
składnia jest nieprawidłowa.Chcesz wyewidencjonować kopię roboczą,
trunk
a następnie skorzystać zsvn merge --reintegrate
opcji:Więcej informacji można znaleźć w rozdziale książki SVN o scalaniu .
Zwróć uwagę, że w momencie pisania była to właściwa odpowiedź (i została zaakceptowana), ale sprawy potoczyły się dalej. Zobacz odpowiedź topek i http://subversion.apache.org/docs/release-notes/1.8.html#auto-reintegrate
źródło
--reintegrate
nie jest rzeczywiście obowiązkowe, ale w tym przypadku naprawdę zalecane. Próbowałem to zrobić bez--reintegrate
i zakończyłem setkami konfliktów. Bez--reintegrate
konfliktów i wszystko było dobrze!--reintegrate
opcja jest prosta i skuteczna, ALE należy zauważyć, że „Po wykonaniu--reintegrate
scalenia z gałęzi do pnia gałąź nie nadaje się już do dalszej pracy. Nie jest w stanie poprawnie wchłonąć nowych zmian pnia ani nie można jej poprawnie ponownie zintegrować do bagażnika ”. jak wyjaśniono w książce, do której masz link.Jeśli twój katalog roboczy wskazuje na linię główną, powinieneś być w stanie połączyć swoją gałąź z:
pamiętaj, aby wydać to polecenie w katalogu głównym swojego łącza
źródło
Wykonaj aktualizację svn w bagażniku, zanotuj numer wersji.
Z bagażnika:
Możesz sprawdzić, gdzie gałąź została wycięta z pnia, wykonując dziennik svn
źródło
svn
(takimi jak ta, której używa OP).svn://path/to/branch/branchName
powinno to pobierać tylko zmiany z tej gałęzi, a nie z innych gałęzi. Jeśli tak, to grozi nam niebezpieczeństwo!Składnia jest nieprawidłowa, a powinna być
źródło