2012-07-19 13 views
23

Mam pewne zatwierdzenie na moich oddziałach. Chcę połączyć gałęzie do pnia, ale mam pewne zatwierdzenie, że nie łączę się z pnia na moich gałęziach. Jak mam zrobić?Subversion: Jak połączyć konkretny commit

+1

Czy masz na myśli, że masz jakieś zatwierdzenia, których nie chcesz scalić w swoim bagażniku lub że masz jakieś konflikty podczas próby scalenia zmian? –

+0

przykład, mam siedem zatwierdzeń na moich oddziałach, ale chcę tylko połączyć trzy zatwierdzenia. – Clown

+0

Więc musisz scalić tylko określić wersję. http://stackoverflow.com/questions/326937/subversion-how-to-merge-only-specific-revisions-into-trunk-when-multiple-consec – tostao

Odpowiedz

25

Co chcesz osiągnąć, zwykle nazywa się cherrypicking w systemach kontroli wersji.

Powiedzmy, że chcesz połączyć historię zmian 345, 364 i 377, można wykonać następujące czynności w głównym katalogu z czystej kopii roboczej swojego oddziału:

svn merge -c345,364,377 ^/trunk 

można znaleźć więcej informacji w odpowiadające section of the SVN Book.

+0

Działa jak wdzięk, dzięki – PierreF

-7

Możesz połączyć wymagane poprawki z numerem wersji.

22

Po prostu, aby przedłużyć odpowiedź Yannick.
Kiedy można połączyć jedno/kilka konkretnych popełnia od jednego do innego oddziału trzeba (na przykład potrzeba scalenia, popełnia R13 i r666 z oddziału „z” w branży „do”):

  1. Sprawdź zobowiązuje dostępność (tylko w celu zapewnienia):

    svn diff -c 13,666 https://fullpathtoyourproject/branches/_from_ 
    
  2. swith na oddział do:

    svn sw https://fullpathtoyourproject/branches/_to_ 
    
  3. Merge zobowiązuje

    svn merge -c 13,666 https://fullpathtoyourproject/branches/_from_ 
    

Jeśli potrzebujesz dostać 'fullpathtoyourproject' wpisz:

svn info 

W sekcji URL widać tę ścieżkę.

Wolę używać PEŁNEGO adresu/ścieżki, ponieważ w niektórych projektach nie działa dla mnie osobista ścieżka względna.

+0

To jest dobra odpowiedź, ponieważ wyjaśnia źródło i przeznaczenie scalenia. – natersoz