Pracuję nad gałęzią funkcji i wprowadzam pewne zmiany w mojej gałęzi funkcji, które będą miały wpływ na innych programistów. Chciałbym zatwierdzić te nowe zmiany w bagażniku, aby nikt nie został zmuszony do naprawienia przerwy; jednak nie chcę przypisywać reszty gałęzi funkcji, ponieważ nie jest ona jeszcze w pełni funkcjonalna.Najlepsze praktyki scalania SVN
Odgałęziłem bagażnik w r109. W moim oddziale wszystkie zmiany w łączniku zostały połączone do r145. Zobowiązałem się, że moja zmiana "wpłynie na innych programistów" na mój oddział w r152 i r153.
mój proces myślowy tutaj było svn przełączyć moją kopię roboczą do bagażnika, a następnie wykonaj:
svn merge svn: // projekt/oddział/myBranch -r 146: 153 ./project
SVN narzeka na konflikty, ponieważ bagażnik zawiera oryginalną wersję jednego z plików, które zmieniłem, a ja tylko łączę się z ostatnimi zmianami (wprowadziłem kilka zmian do tego pliku we wcześniejszym zatwierdzeniu do mojego oddziału), a także narzeka na konflikty z plikiem innego dewelopera zmienionego w r149. Ponieważ mój oddział zawierał tylko scalenia z bagażnika do r145, zanim został zatwierdzony, mój oddział nie odzwierciedla tej zmiany.
To jest w porządku - konflikty są łatwe do rozwiązania, ale martwię się, że będę miał kłopot wiele dni, kiedy chcę ponownie zintegrować moją gałąź z bagażnikiem.
Ewentualnie mogę wprowadzić niezbędne zmiany w bagażniku, a następnie połączyć je w swoją gałąź, ale nie podoba mi się to podejście, ponieważ zmiany są już wykonywane w oddziale. Nie ma sensu robić ich dwa razy.
Czy ktoś ma pewne doświadczenie z częściowym łączeniem gałęzi obiektów w bagażnik, po którym następuje pełna reintegracja? Jaka jest najlepsza strategia tutaj?
Dzięki! Uświadomiłem sobie, po zobowiązaniu go do mojej branży, że to jest coś, co powinno być zrobione na bagażniku zamiast tego. W przeciwnym razie zrobiłbym to tak, jak zasugerowałeś. –