2008-10-21 77 views
5

Miałem problem z zatwierdzeniem zmian po scaleniu dwóch gałęzi mojego projektu przy użyciu TortoiseSVN.Nie mogę zatwierdzić zmian po scaleniu w SVN

Oto szczegóły:

Zrobiłem oddział seryjnej do tułowia projektu której pracuję nad.

Projekt zawiera główny repozytorium i bibliotek wspólnych głównego magazynów, svn zewnętrzny (biblioteki są rozgałęzione) jako podkatalogu projektu.

Kiedy próbował popełnić zmiany TortoiseSVN powiedział:

Commit A 
re all the targets part of the same working copy? 
Unable to lock 'D:\websites\project\lib' 
Please execute the "Cleanup" command. 

Oczywiście Oczyszczanie nie pomogło.

svn: external kluczowe dla projekt katalogu została dobrze zdefiniowane, także lib folderu nadal zawierały prawidłową wersję bibliotek (wersja tułowia).

Zarówno serwer SVN, jak i klient są w wersji 1.5.x (TortoiseSVN to 1.5.3.x).

Z technicznego punktu widzenia zarówno projektu i biblioteki są projekty w tym samym repozytorium SVN.

Każdy pomysł, co poszło nie tak?

byłem trochę googlowania na rozwiązanie, ale nie znaleźliśmy niczego przydatne, więc próbowałem popełnić moje zmiany w dwóch etapach:

  1. popełnić zmiany z folderu projektu
  2. zatwierdzić zmiany od folder biblioteki

Udany bez żadnych problemów.

Ale wciąż się zastanawiam, dlaczego nie mogłem popełnić wszystkiego w jednym popełnieniu.

redaguje:

  • (Po Ken G odpowiedź) Stała wersja 1.3.x TortoiseSVN -> 1.5.3.x.
+0

To jest coś bardziej skomplikowane :( Dziś mam ten błąd, kiedy aktualizowanie repozytorium SVN - nie może zablokować folder, który był w repozytorium SVN Po porządki powiedział. Nie udało się dodać do katalogu „D: \ websites \ project \ import ': wersjonowany katalog o tej samej nazwie już istnieje Zbadam to. –

Odpowiedz

1

svn: external spowoduje Subversion połączyć różne ścieżki repozytorium wymeldowaniu, ale ostatecznie te ścieżki są nadal „rozłączne”, więc trzeba zrobić dwie zobowiązuje się do uzyskania zmiany zastosowane.

Oto odpowiedni cytat z Version Control with Subversion

i Subversion nadal dobrze funkcjonuje tylko na nondisjoint kopii roboczych. Tak więc, na przykład, jeśli chcesz popełnić zmiany, które zostały dokonane w jednym lub więcej z tych zewnętrznych kopii roboczych trzeba uruchomić svn commit wyraźnie na osób pracujących kopie-popełnienia na kopii roboczej będzie podstawowym nie powtarzaj się w żadnym zewnętrznym .

+0

Ken - to to samo repozytorium - robię scalenie raz w tygodniu i zawsze działa - mogę zatwierdzić wszystko w jednym zatwierdzeniu TortoiseSVN pokazuje mnie w plikach okna Commit, zarówno z folderu projektu, jak i folderu lib - nawet folder samego folderu (zmieniono właściwość svn: merge). –

+0

JFTR, "różne repozytorium ścieżki itoria "znajdują się w tym samym repozytorium - są po prostu różne _paths_, prawda? Po aktualizacji do wersji 1.5.3 TortoiseSVN widać to samo zachowanie? Ten sam komunikat o błędzie? –

+0

Tak. Wciąż to samo zachowanie. Według http://svn.haxx.se/users/archive-2008-01/0814.shtml nie jest to błąd, ale jest funkcja :). Masz rację. Prawdopodobnie wersja tortoiseSVN w wersji Earla maskowała to zachowanie. –

1

Myślę, że pamiętam, czytając o błędzie dotyczącym tego w TortoiseSVN, który został naprawiony w najnowszym wydaniu. Sprawdź najnowszy release notes.

2

1.3 z TortoiseSVN to bardzo stara, najnowsza wersja to 1.5.x. Odnotowano liczne zmiany w Subversion i TortoiseSVN od wersji 1.3, więc uaktualnienie twojego klienta jest prawdopodobnie najlepszym rozwiązaniem.

Po tym, 1,5 TortoiseSVN utworzy/zaktualizuje Working Copy do wersji 1.5.BĄDŹ OSTATECZNY, gdy korzystasz z TortoiseSVN (lub dowolnego klienta SVN) przeciwko kopii roboczej poprzedniego Subversion.