2010-02-05 14 views
22

Jestem całkiem nowy dla Subversion i Subclipse i widzę pewne problemy, które doprowadziły mnie do przekonania, że ​​istnieje różnica między aktualizacją do głowy a synchronizacją. W szczególności stwierdzam, że gdy próbuję przywrócić (używając historii subklipów), często pojawia się komunikat "Nie można odwrócić scalenia zakresu od przyszłej historii ścieżki, spróbuj najpierw zaktualizować". Moja synchronizacja powinna zapewnić, że mam "główną" wersję wszystkich plików w moim oddziale na REPO, ale wykonanie "Aktualizacji do głów" rozwiązuje problem ... więc co daje? Próbowałem sprawdzić konsolę SVN, aby zobaczyć, co się zmienia, ale nie jest to zbyt szczegółowe.SVN Synchronize vs Update to Head (subclipse)

Pomysły?

Mam drugie pytanie, ale zakładam, że odpowiedź na pierwsze pytanie rzuci na to światło. Jeśli jesteś ciekawy i masz czas, aby przeczytać, również go wypiszę. Oto scenariusz ... Rozgałęziłem wszystkie moje pliki z tagu "Produkcja" i zacząłem pracować nad moim projektem. Po kilku zatwierdzeniach sprawdzam historię zmian pliku i zauważam, że wersja "pogrubiona" (zgodnie z dokumentacją, powinna to być głowa) jest poniżej wszystkich moich zatwierdzeń. To tak, jakby to, co mam, nie jest głową. Ale głowa jest tylko najnowszą wersją projektu, prawda? Więc czego mi brakuje.

Dziękujemy za odpowiedź i poświęcenie czasu na przeczytanie tego!

Odpowiedz

2

Myślę, że twoje założenie, że synchronizacja jest taka sama jak aktualizacja HEAD, jest fałszywe. Jeśli w języku Subclipse słowo "synchronizacja" oznacza "zatwierdzenie", to z pewnością jest ono fałszywe, ponieważ zatwierdzenie nie powoduje aktualizacji kopii roboczej. Musisz się jawnie aktualizować po zatwierdzeniu na HEAD.

Co prowadzi do drugiego pytania: Myślę, że powodem, dla którego linia pogrubiona znajduje się poniżej innych zatwierdzeń, jest to, że zobowiązanie się nie aktualizuje. Oznacza to, że możesz zatwierdzić zmianę w pliku, a następnie spojrzeć na inny plik i zobaczyć go jako starszy niż HEAD, ponieważ te inne pliki nie zostały również przeniesione do HEAD.

Ten artykuł może pomóc wyjaśnić tę koncepcję mieszanymi wersjami: http://markphip.blogspot.com/2006/12/mixed-revision-working-copies.html

Zachęcam również do zapoznania się z SVN documentation, jak praca z wtyczek i rozszerzeń dla Subversion zawsze staje się łatwiejsze, gdy wiesz, jak SVN bazowego system działa.

+0

Hej Mike, Wziąłem okiem na ten artykuł, ale nie jestem do końca pewien, że zastosowanie. Chociaż polecenie nie aktualizuje kopii roboczej, powinna to być synchronizacja. Widzę nie tylko zmiany wychodzące, ale przychodzące. Czy to nie byłoby to samo co aktualizacja? – gergesi

+1

Ahh, odpowiedź jest w tym artykule, ale w sekcji o folderach! Kiedy zatwierdzam plik, jego folder nadrzędny nie przechodzi do mojej wersji. Wie o rewizji (jest obecna w historii), ale nie porusza się w górę. Synchronizacja ignoruje to, ale aktualizacja HEAD rozwiązuje problem. – gergesi

26

Istnieje różnica. Podczas korzystania z widoku Synchronizuj tylko elementy w widoku są aktualizowane. W Subversion foldery mają również wersję, która jest atakowana za każdym razem, gdy dziecko jest modyfikowane. Jednak ponieważ nie pojawiają się one w widoku, nigdy nie są aktualizowane. Kiedy wykonujesz Team> Update na projekcie, wszystkie foldery i pliki są aktualizowane do jednej jednolitej wersji. Mam kilku blogach, które wyjaśniają to:

Ten wyjaśnia rdzenia SVN koncepcję mieszanej rewizji kopię roboczą i ma zasadnicze znaczenie dla zrozumienia tego:

http://markphip.blogspot.com/2006/12/mixed-revision-working-copies.html

Drugi pokazuje funkcję w Subclipse do czynienia z tym:

http://markphip.blogspot.com/2006/12/subclipse-synchronize-feature-show-out.html

Ponieważ drugi blog został napisany, większość użytkowników Subclipse znaleźć nie lubili tę funkcję, mimo że on lps z tym problemem. Domyślnie jest teraz wyłączony w bieżących wersjach. Nie sądzę, żeby ktoś już z niego korzystał.

Najważniejszą rzeczą jest od czasu do czasu skorzystać z opcji Zespół> Aktualizacja w swoim projekcie, aby dostosować ją do jednolitej wersji.

Mark

+0

Dzięki @Mark! To i twoje połączone posty na blogu zdecydowanie pomogły wyjaśnić kilka rzeczy w mojej głowie na temat SVN i Subclipse. –

Powiązane problemy