2008-10-27 14 views
6

Po scaleniu pnia w gałąź funkcji, usunięcie, które wystąpiło w bagażniku, nie zostanie zreplikowane na moją kopię roboczą.subwersja łączy polecenie usuwania

Dlaczego usunięcie w magistrali nie powoduje usunięcia tego samego pliku w oddziale podczas scalania? Używam klienta i serwera subversion 1.5.

Zakładam, że zmiany w pliku w oddziale zostaną pominięte podczas ponownej integracji oddziału?

Jaki jest najlepszy sposób na odzyskanie pliku na pniu, ponieważ współpracownik usunął plik z pnia tylko dlatego, że nie był "gotowy".

Sytuacja:

cd project; svn copy trunk branches/f1; svn ci -m "branching out" branches f1; 
echo "modifying a file on branch." >> branches/f1/file1; svn ci branches/f1 -m "Branch modified"; 
echo "Above modify is not even needed to state the case"; 
svn rm trunk/file1; svn ci trunk -m "creating (conflicting) delete on trunk"; 
cd branches/f1; svn merge svn+ssh://repos/trunk . 
[ -f file1 ] && echo "file f1 does exist while it should have been deleted by merge."; 

Tak, plik nadal istnieje w mojej kopii roboczej chociaż ja wtopienie się w bagażniku, gdzie plik został usunięty aktywnie. Bardzo nieoczekiwane. W moim przypadku nie wprowadziłem nawet żadnych zmian do pliku, co jest jedynym powodem, dla którego mogę pomyśleć, dlaczego svn zapisze plik.

Odpowiedz

1

Co mogę zrobić, to stworzyć konflikt lokalny w pliku1. W Twoim oddziale został zmodyfikowany. W twoim bagażniku został usunięty. Kiedy się połączysz, będzie w konflikcie. Tak więc plik nadal będzie dostępny.

Proponuję 2 testy:

  1. Po uruchomieniu powyższy kod, zawierać wyniki svn status.
  2. Wypróbuj ten sam kod jak powyżej, ale bez modyfikowania tego oddziału pod numerem . (svn status byłoby pomocne również tutaj.)
0

Czy jesteś pewien, że plik usunięty na pniu jest nadal pod kontrolą wersji po scaleniu? Może być niewersjonowany, ale wciąż obecny, co jest oczekiwanym zachowaniem. Patrząc na dane wyjściowe z svn status, zobaczymy, czy plik nadal znajduje się pod kontrolą wersji.

Być może zechcesz rzucić okiem na ten raport o błędzie, który dokładnie wyjaśnia sytuację: http://subversion.tigris.org/issues/show_bug.cgi?id=2282