Zatwierdź zmiany w innej gałęzi niż aktualnie wyewidencjonowana gałąź z subversion

115

Pracowałem nad kodem pobranym z linii deweloperskiej i odkryłem, że wprowadzone zmiany mogą powodować błędy i należy je przenieść do gałęzi eksperymentalnej przed przejściem do głównego drzewa deweloperów. Nie mam jednak wyewidencjonowanej gałęzi eksperymentalnej i nie chcę utracić wprowadzonych już zmian.

Czy istnieje sposób na zatwierdzenie zmian w folderze roboczym do innej gałęzi niż pierwotnie wyewidencjonowana?

Paul Alexander
źródło

Odpowiedzi:

129

Powinieneś sourceURLnajpierw utworzyć gałąź ze znanej (byłaby to twoja `` linia rozwoju '', o której wspomniałeś w pytaniu):

svn copy sourceURL branchURL

Następnie przejdź do tej gałęzi:

svn switch branchURL

I zatwierdź zmiany:

svn commit
ryanprayogo
źródło
56

Możesz to zrobić w TortoiseSVN w ten sposób:

  • Kliknij prawym przyciskiem myszy katalog, w którym znajdują się zmiany, które chcesz rozgałęzić. Nie może to być katalog główny repozytorium, a tym bardziej powielać w ten sposób;
  • Wybierz TortoiseSVN -> " Gałąź / znacznik ... ";
  • Ustaw na adres URL : "svn: // host / repository / FooBar / branches / FooBarBranchName";
  • Upewnij się, że wybrana jest kopia robocza [*] . Zapewni to zatwierdzenie zmian;
  • Komunikat dziennika : „Eksperymentowanie z muchami :)”;
  • Opcjonalnie: Zaznacz [*] Przełącz kopię roboczą na nową gałąź / tag . Jest to przydatne, jeśli planujesz kontynuować pracę nad nowym oddziałem. Chociaż możesz przejść na to później.
  • Spróbuj znaleźć przycisk OK . Podpowiedź: znajduje się w dolnej części okna na środku.

Cieszyć się!

J Pollack
źródło
Co masz na myśli, mówiąc „Nie może to być katalog główny repozytorium, a już nie powielać w ten sposób”?
thekozak
Zalecam, aby nie wybierać folderu głównego ze wszystkimi nieistotnymi podfolderami, które nie podlegają modyfikacji w oddziale. Później łatwiej będzie scalić (mniejszą) gałąź z powrotem do pnia.
J Pollack
W moim przypadku wysłanie tylko tego folderu spowodowało problemy, ponieważ oprogramowanie zależy również od superfolderów. Myślę, że tak jest najczęściej. Myślę, że w większości przypadków lepiej jest po prostu zatwierdzić całość, więc zatwierdzenie z katalogu głównego, o którym mówię, jest zalecane.
ikku100
@ ikku100, jeśli nie ma zmian w tych superfolderach, jakie to ma znaczenie?
simpleuser
Może to być spowodowane tym, że później ludzie mogą tam wprowadzić zmiany, ale myślę, że możesz sprawdzić poprawną wersję superfolderu, a następnie pobrać gałąź dla podfolderu. Myślę, że to więcej pracy niż tylko zaangażowanie się w superdir.
ikku100
8

Możesz utworzyć nową gałąź bezpośrednio z katalogu roboczego i przełączyć katalog roboczy do tej gałęzi.

Polecenia to svn copyisvn switch

Dima
źródło