Błąd zablokowanej kopii roboczej w svn żółwia podczas zatwierdzania

94

Używam Tortoise SVN do aktualizowania i zatwierdzania zmian w repozytorium na serwerze za każdym razem, gdy wprowadzam zmiany w mojej kopii roboczej. Ale od kilku dni nie mogę zatwierdzić zmian i pojawia się następujący błąd za każdym razem, gdy próbuję zatwierdzić.

Working copy 'C:\Program Files\EasyPHP\www\project\php' locked.
'C:\Program Files\EasyPHP\www\project' is already locked.

Próbowałem odblokować folder, klikając go prawym przyciskiem myszy i wybierając Tortoise SVN> Zwolnij blokadę , mówi

Nie ma nic do odblokowania. Żaden plik nie ma blokady w tej kopii roboczej

Co może być problemem?

Indygowiec
źródło

Odpowiedzi:

232

Nie ma problemu ... spróbuj tego:

  • Przejdź do folderu SVN najwyższego poziomu.
  • Kliknij prawym przyciskiem folder (zawierający twoje pliki svn)> TortoiseSVN> CleanUp

To z pewnością rozwiąże Twój problem. Robiłem to dużo czasu ... :)

Uwaga. Upewnij się, że w oknie dialogowym Czyszczenie jest zaznaczona opcja „Zerwij blokady”.

MicroEyes
źródło
dzięki @MicroEyes ... teraz mogę się zaangażować. Mam tylko jedną małą wątpliwość. Czy po wprowadzeniu zmian w pliku powinienem najpierw zatwierdzić, a następnie zaktualizować plik (w kopii roboczej), czy zaktualizować, a następnie zatwierdzić?
Anil
2
Zawsze postępuj zgodnie z aktualizacją, a następnie zatwierdzaj. W przeciwnym razie otrzymasz wiadomość o aktualizacji z TortoiseSVN, ponieważ twoja kopia wersji jest starsza niż przechowywana na serwerze SVN. W każdym razie musisz zaktualizować i zatwierdzić.
MicroEyes
1
tak… to rozwiązało mój problem związany z aktualizacją mojej obecnej kopii do wersji svn.
Jayesh Bhoi
Właśnie dodałem pliki w SVN i próbuję go zatwierdzić, ale mam ten sam błąd. Próbowałem użyć polecenia cleanUp, ale nie jestem w stanie rozwiązać tego problemu.
Ashok Chandrapal
Bardzo tego doświadczam. Czy mogę skrócić czas potrzebny svn do wyświetlenia tego komunikatu o błędzie (obecnie pięć do dziesięciu sekund)? Więc mogę wcześniej rozpocząć czyszczenie.
not-a-user
15

Przyjęta odpowiedź nie zadziałała dla mnie. Aby rozwiązać ten problem, musiałem kliknąć prawym przyciskiem myszy plik, który był zablokowany, wybierz repo-browser. Otworzyło się wyskakujące okienko z plikami znajdującymi się na serwerze SVN. Następnie kliknąłem prawym przyciskiem myszy zablokowany plik i wybrałem break lock.

Kiedy zamknąłem przeglądarkę repozytorium, z powrotem w eksploratorze mogłem w końcu zatwierdzić!

Johann
źródło
Musisz tylko upewnić się, że opcja „Zerwij blokady” jest zaznaczona w oknie dialogowym Czyszczenie. Myślę, że jest zaznaczona domyślnie (i dlatego nie wspomniano o tym w oryginalnej odpowiedzi).
Nux
12
  1. Kliknij folder prawym przyciskiem myszy.
  2. TortoiseSVN-> Sprawdź zmiany.
  3. Kliknij przycisk Sprawdź repozytorium.
  4. Złam zamek wszystkich zwróconych plików.
Elsabe
źródło
3

Natknąłem się również na ten problem. Dla niektórych chciałbym zaznaczyć, że jeśli jest zamknięty, SPRAWDŹ ZE SWOIM ZESPOŁEM. Ktoś w zespole może mieć zablokowane pewne rzeczy, ponieważ nad tym pracuje (umożliwia to programistom pracę nad różnymi rzeczami bez innych osób, które przychodzą i próbują pracować nad tą samą zawartością). W takim przypadku zwolnienie blokady, a następnie aktualizacja może spowodować utratę danych dewelopera, który ją zablokował.

Mając to na uwadze, obawiałem się, że opcja „wyczyść” prawdopodobnie zmieni moją kopię roboczą lub usunie informacje z poziomu repozytorium Subversion. Tak nie jest. Odpowiedź zadziałała dla mnie. Mój został zablokowany, kiedy kliknąłem Anuluj w środku aktualizacji. Skończyło się na tym, że wyciągnąłem niektóre z naszych gałęzi i nie potrzebowałem tych rzeczy, więc kliknąłem anuluj. Moja kopia robocza została zablokowana. Nie mogłem znaleźć żadnych dokumentów, które okazały się „zablokowane”, gdy użyłem polecenia „zwolnij blokadę”. Zaskoczyło mnie to i po szybkim przeczytaniu (i tym wątku) spróbowałem wykonać polecenie „wyczyść”. Po wyczyszczeniu rozwiązało to mój problem i nic nie było już zablokowane.

źródło: http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html

Eric
źródło
2

Istnieje wiele znaczeń „blokady” w SVN, a niektóre z tych odpowiedzi, które mówią o „złamaniu blokady” lub koledze trzymającym blokadę, nie mają odpowiedniego znaczenia dla pierwotnego pytania. To pytanie dotyczy "blokad kopii roboczych" (tj. Są one całkowicie lokalne dla kopii roboczej na twoim komputerze i nie mają nic wspólnego z tobą lub kolegami z zespołu, którzy blokują / wyewidencjonowują plik). Zaakceptowana odpowiedź firmy MicroEyes odnosi się do prawidłowego użycia i jest najlepszą opcją, gdy tak się stanie.

Jeśli czyszczenie nie zadziała, może być konieczne pobranie nowej kopii roboczej projektu. Jeśli masz jakieś zmodyfikowane, niezatwierdzone pliki, musisz je skopiować do nowej kopii roboczej, aby nie utracić zmian.

Zobacz tę stronę w dokumentacji SVN Tortoise, aby uzyskać opis trzech zastosowań „blokady”: http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html

Fragment (podkreślenie dodane):

Trzy znaczenia „kłódki”

W tej sekcji i prawie wszędzie w tej książce słowa „blokowanie” i „blokowanie” opisują mechanizm wzajemnego wykluczania się użytkowników, aby uniknąć kolizji zatwierdzeń. Niestety, istnieją dwa inne rodzaje „zamków”, którymi Subversion, a zatem i ta książka, czasami muszą się zająć.

Drugi to działające blokady kopii , używane wewnętrznie przez Subversion, aby zapobiec konfliktom między wieloma klientami Subversion działającymi na tej samej kopii roboczej. Zazwyczaj blokady te pojawiają się za każdym razem, gdy polecenie takie jak update / commit / ... zostaje przerwane z powodu błędu. Blokady te można usunąć, uruchamiając polecenie czyszczenia kopii roboczej, zgodnie z opisem w sekcji „Czyszczenie”.

...

G. Stevens
źródło
2

Nie miałem pojęcia, który plik ma blokadę, więc co zrobiłem, aby rozwiązać ten problem, to:

  1. Poszedłem do folderu najwyższego poziomu
  2. Kliknij czyszczenie, a także zaznaczone z metod czyszczenia -> Zerwij blokady

To zadziałało dla mnie.

cosmoto91
źródło
1

Próbowałem różnych rzeczy, w tym „Porządkowania” w niższych podkatalogach. Wreszcie próbowałem zaktualizować folder najwyższego poziomu. Nic. Następnie przeczytałem wskazówkę „Uporządkuj najwyższy poziom”. Próbowałem tego. Czyszczenie się powiodło, ale zamek pozostał. Moim rozwiązaniem było powrót do najwyższego poziomu, wyczyszczenie, a następnie wyczyszczenie każdego czerwonego (!) Folderu, do którego mogłem przejść . Po tym, jak wszystko zostało „wyczyszczone”, aktualizacja działała idealnie. Wskazówka dotycząca „złamania blokady” też wygląda dobrze, z wyjątkiem tego, że ktoś w Twoim zespole może mieć uzasadnioną blokadę rzeczy.

Jim
źródło
0

Udało mi się zablokować sobie dostęp do pliku w svn - nie wiem jak - ale kiedy próbowałem (ponownie) uzyskać blokadę (żółw pokazywał opcję "Get Lock" dla pliku), narzekał, że ma już zamek. Próbowałem usunąć plik i zatwierdzić zmianę katalogu - ten sam wynik. Próbowałem CleanUp (w tym odświeżanie nakładki), ale to też się nie udało.

Rozwiązaniem było wejście do repozytorium Tortoise, znalezienie pliku i użycie funkcji break lock .

user1844643
źródło
0

Jeśli to ( https://stackoverflow.com/a/11764922/3045875 ) nie pomoże: sprawdź, czy inne narzędzie SVN nie przeszkadza i zamknij narzędzie. Po prostu przez kilka godzin zmagaliśmy się ze scalaniem za pomocą TortoiseSVN i mieliśmy dziesiątki takich błędów blokowania. W końcu doszliśmy do wniosku, że integracja Matlabs SVN przeszkadza i po zamknięciu wszystko się udało.

RMK
źródło
-1

Rozwiązanie Windows:

https://sourceforge.net/projects/win32svn/

1.Pobierz go, a następnie dodaj do ścieżki systemowej.

2. Przejdź do katalogu roboczego i wykonaj polecenia „svn clean” i „svn update” w cmd.

xiaoliuzi
źródło