SVN-nie można połączyć gałęzi z powrotem do pnia-liczne drzewa-konflikty

Mam taki prosty scenariusz-używając TortoiseSVN:

1) zrobiłem gałąź (B2) aplikacji (do pracy nad implementacją image sprites & JAWR).

2) Testy i rozwój przebiegały normalnie na bagażniku.

3) przerobiłem gałąź kilka razy w ciągu ostatnich kilku dni przez:

3.1) scalony trunk (według zakresu wersji) do mojej gałęzi-kopia robocza b2, rozwiązująca konflikty podczas scalania.

3.2) (po przetestowaniu branch-b2), zatwierdzam oddział re-based-b2.

To wszystko działało tak jak oczekiwałem. Ale połączenie gałęzi z powrotem do pnia ma ze mną swoją drogę:

4) Po wszystkich aktualizacjach popełnionych w branch-b2; upewniam się, że robię aktualizację SVN na trunk i branch-b2.

5) następnie staram się scalić (zakres zmian) z gałęzi-b2 do pnia. Jednakże, dla każdego nowego pliku, który został dodany do pnia, a następnie dodany do gałęzi-b2, gdy go zmieniłem, dostaję tree-conflict. Nie jestem pewien co do właściwym sposobem jest rozwiązanie tych konfliktów.

Najbardziej typową radą, jaką widziałem, jest usunięcie plików konfliktujących drzewo z pnia, a następnie scalenie gałęzi nad; lub usunięcie całego pnia, skopiowanie plików gałęzi nad, a następnie zatwierdzenie ich jako nowej wersji w pniu. Żadna z tych opcji nie wydaje się dobrym pomysłem - pierwsza z nich to ból, a obie wydają się stracić historię rewizji plików.

Co zrobiłem źle i jak to naprawić?

Author: mitch_moop, 2009-06-17

6 answers

Wygląda na to, że używasz stylu scalania pre-1.5 i próbujesz reintegrować gałąź do pnia. W takim przypadku należy najpierw upewnić się, że wszystkie zmiany tułowia zostały scalone w gałąź, a następnie zamiast zakresu-scalania gałęzi do kopii roboczej, która wskazuje na tułów, należy połączyć "FROM trunk@HEAD TO branch@HEAD" z kopią roboczą wskazującą na tułów. W istocie:

"Daj mi wszystkie zmiany, których potrzebuję, aby bagażnik był identyczny z oddział".

To działa, jeśli już połączyłeś wszystkie zmiany trunku z gałęzią, ponieważ wtedy jedyną różnicą między trunkiem a gałęzią są zmiany wprowadzone w gałęzi.

Ma sens? :)

 71
Author: Rytmis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-17 18:32:47

Badałem ten sam problem. Jest to" funkcja " w Tortoise SVN 1.6.5. TortoiseSVN 1.5 działa dobrze z naszym repozytorium (SVN 1.5). TortoiseSVN 1.6.5 podczas rebasingu dodaje pliki z linii głównej jako nowe (bez zapisywania historii scalania).
A reintegracja Brancha skutkuje traktowaniem tych plików jako sprzecznych z mainline.

Problem rozwiązałem używając funkcji TortoiseSVN 1.6 "reintegrate branch". Jest specjalnie przeznaczony do gałęzi Fabularnych.

-- Aleksiej Korsun

 3
Author: user185717,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-07 15:59:33

Naprawdę nie mogłem zrozumieć, jak powyższe rozwiązanie miało działać, więc moja praca wokół jest inna. Najpierw upewniłem się, że gałąź zawiera wszystkie zmiany z pnia.

1) mam świeżą kopię bagażnika. 2)wyeksportowałem gałąź do lokalizacji tymczasowej za pomocą eksportu svn tortoise. 3)użyłem Eksploratora windows, aby skopiować całe drzewo gałęzi do bagażnika i nadpisać wszystkie pliki 4) użyłem polecenia check for changes na tortoise i włączyłem pole wyboru wszystkie Nie wyświetlone pliki. 5) wybrałem wszystkie pliki i kliknąłem dodaj.

Powinieneś używać rozwiązań, które nie zostały zbudowane, aby nieocenzurowane pliki nie zawierały danych wyjściowych.

Nie mogę się doczekać, aż upgrade do 1.5 +

 1
Author: sth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-25 09:34:25

Wybierz wersje do scalenia, wybierając opcję "Merge a range of rivisions" używając TortoiseSVN. Zapobiegnie to ponownym konfliktom drzew dla tych samych plików przy każdej operacji scalania.

 1
Author: Dev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-16 10:05:19

TUTAJ JEST Trochę Więcej informacji, aby przyczynić się do @ Rytmis odpowiedź, która pomaga mi utrzymać to prosto.

Wysokopoziomowe kroki tworzenia pnia dokładnie jak gałąź lub znacznik:

    Kasa z bagażnika.
  1. używając roboczej kopii trunk, połącz z trunk do branch / tag.
  2. Commit.

Przykładowe polecenia linii poleceń 'svn':

svn checkout <trunk url>
cd trunk
svn merge <trunk url> <branch/tag url>
svn commit -m "<message>"
 1
Author: Jesse,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-02 19:17:17

Myślę, że rozwiązałem ten problem. 1. Kliknij prawym przyciskiem myszy "gałąź", którą połączyłeś. 2. Prosimy kliknąć noclegi Żółwin > > 3. "Scal zakres zmian" i dalej 4. !!!Zaznacz "Odwróć Scalanie"!!! , URL do scalenia z "branch", specific range "recently merged revision" , and Next 5. Następny 6. SVN Commite

Po tym mogę połączyć się z gałęzi do pnia.

 0
Author: user8224326,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-28 06:41:08