Napraw sum kontrolnych SVN

Używam subclipse w Flex Builder 3 i ostatnio otrzymałem ten błąd podczas próby popełnienia:

svn: Checksum mismatch for '/Users/redacted/Documents/Flex Builder 3/path/to/my/file.mxml'; expected: 'f8cb275de72776657406154dd3c10348', actual: 'null'

Obejrzałem to przez:

  1. zatwierdzanie wszystkich innych zmienionych plików, pomijając kłopotliwy.
  2. kopiowanie zawartości pliku trouble do okna TextMate
  3. usuwanie mojego projektu w FlexBuilder / Eclipse
  4. sprawdzanie mojego projektu prosto z SVN
  5. kopiowanie tekstu pliku trouble z powrotem z TextMate Window
  6. zatwierdzanie zmian.
Zadziałało, ale myślę, że jest lepszy sposób. Co dzieje się z Acta, aby spowodować błąd sumy kontrolnej svn: i co jest najlepszą poprawką.

Może ważniejsze -- czy to objaw większego problemu?

Author: DevelopingChris, 2008-08-08

21 answers

Plik w .katalog svn, który śledzi to, co sprawdzałeś, kiedy, jaką wersję i skąd, został w jakiś sposób uszkodzony, dla tego konkretnego pliku.

Nie jest to bardziej niebezpieczne ani krytyczne niż normalny dziwny problem z plikami i może być spowodowane różnymi problemami, takimi jak program subversion umierający w połowie zmiany, zakłócenia zasilania itp.

Jeśli to się nie wydarzy więcej, nie zrobiłbym z tego wiele.

Można to naprawić, robiąc to, co zrobiłeś, wykonując kopię Twoje pliki robocze, sprawdź świeżą kopię i dodaj zmodyfikowane pliki z powrotem.

Zauważ, że może to powodować problemy, jeśli masz zajęty projekt, w którym normalnie musiałbyś scalić zmiany.

Na przykład, ty i kolega sprawdzicie świeżą kopię i zaczniecie pracować nad tym samym plikiem. W pewnym momencie twój kolega sprawdza jego modyfikacje. Gdy spróbujesz zrobić to samo, otrzymasz problem sumy kontrolnej, który masz. Jeśli teraz zrobisz kopie zmienionych plików, wykonaj świeżą kasie, a następnie subversion straci kontrolę nad tym, jak zmiany powinny zostać ponownie scalone.

Jeśli nie masz problemu w tym przypadku, po sprawdzeniu modyfikacji, musisz najpierw zaktualizować kopię roboczą i ewentualnie poradzić sobie z konfliktem z plikiem.

Jeśli jednak zrobisz świeżą kasę, wraz ze swoimi zmianami, teraz wygląda na to, że usunąłeś jego zmiany i zastąpiłeś je swoimi. Żadnych konfliktów i żadnych wskazań od wywrotowe, że coś jest nie tak.

 37
Author: Lasse V. Karlsen,
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
2008-08-08 16:56:13

Jest też prostsza przyczyna tego problemu niż tylko błędy, Czy uszkodzenia dysku itp. Myślę, że najbardziej prawdopodobną przyczyną tego jest to, że ktoś pisze rekurencyjny zamiennik tekstu na roboczej kopii, bez wykluczania .pliki svn.
Oznacza to nieskazitelne kopie plików (w zasadzie podstawowa wersja Plików, która jest przechowywana wewnątrz .obszar administracyjny svn) zostanie zmodyfikowany, co unieważnia sumę MD5.

@ Andrew Hedges: to również wyjaśnia, dlaczego Twoje rozwiązanie naprawia to.

 20
Author: Sander Rijken,
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-02-23 21:30:14

SVN przechowuje nieskazitelne kopie wszystkich plików, które zostały zakopane w .katalogi svn. To się nazywa baza tekstowa. Pozwala to na szybkie diffy i rewersy. Podczas różnych operacji SVN wykona sumy kontrolne na tych plikach bazowych, aby złapać problemy z uszkodzeniem pliku.

Ogólnie rzecz biorąc, niedopasowanie sumy kontrolnej SVN oznacza, że plik, który nie powinien być zmieniony, został jakoś zmieniony. Co to znaczy?

  1. uszkodzenie dysku (zły Kabel HDD lub IDE)
  2. Bad RAM
  3. złe połączenie sieciowe
  4. jakiś proces w tle zmienił plik za twoimi plecami (złośliwe oprogramowanie)

Wszystkie są złe.

Jednakże, myślę, że twój problem jest inny. Spójrz na Komunikat o błędzie. Zauważ, że oczekiwał skrótów MD5, ale zamiast tego wrócił "null". Gdyby to był prosty problem z korupcją plików, spodziewałbym się, że będziesz miał dwa różne hasze MD5 dla oczekiwanego/got. Fakt, że masz "null" oznacza, że coś jeszcze jest nie tak.

Mam dwie teorie:

  1. błąd w SVN.
  2. coś miało wyłączną blokadę w pliku, a MD5 nie mogło się wydarzyć.

W przypadku #1 spróbuj uaktualnić do najnowszej wersji SVN. Może również opublikować to na liście dyskusyjnej svn-devel (http://svn.haxx.se ), więc deweloperzy mogą to zobaczyć.

W przypadku #2 sprawdź, czy plik jest zablokowany. Możesz pobrać kopię Process Explorer, aby to sprawdzić. Zauważ, że prawdopodobnie chcesz zobaczyć, kto ma blokadę w pliku text-base , a nie w pliku, który próbujesz zatwierdzić.

 11
Author: myron-semack,
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-01-25 14:04:32

Czasami dostaję podobne rzeczy, zwykle z plikami, których nikt nie był w pobliżu od tygodni. Ogólnie rzecz biorąc, jeśli wiesz, że nie pracujesz w danym katalogu, możesz po prostu usunąć katalog z problemem i uruchomić

svn update

Odtworzyć go.

Jeśli masz zmiany na żywo w katalogu, to zgodnie z sugestiami lassevka i ciebie, wymagane jest bardziej ostrożne podejście.

Ogólnie rzecz biorąc powiedziałbym, że dobrym pomysłem jest nie zostawianie edytowanych plików niezatwierdzone i utrzymuj porządek w kopii roboczej - nie dodawaj do kopii roboczej całej masy dodatkowych plików, których nie będziesz używał. Commit regularnie, a następnie, jeśli kopia robocza pójdzie w górę, możesz po prostu usunąć całość i zacząć od nowa, nie martwiąc się o to, co możesz lub nie tracisz, i bez bólu próbując dowiedzieć się, jakie pliki zapisać.

 5
Author: Polsonby,
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
2008-08-09 01:12:37

Właśnie dzisiaj udało mi się odzyskać ten błąd, sprawdzając kopię uszkodzonego katalogu do /tmp i zastępując pliki w .svn / text-base with the just co ' Ed ones. Opisałem procedurę w kilku szczegółach tutaj na moim blogu . chciałbym usłyszeć od bardziej doświadczonych użytkowników SVN, jakie są zalety i wady każdego podejścia.

 5
Author: Andrew Hedges,
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-01-25 08:18:24

Try: svn up -- Wymuś plik.c

To działało dla mnie bez konieczności robienia czegokolwiek dodatkowego

 4
Author: aaron,
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-03-06 18:56:18

Zaobserwowałem wiele rozwiązań z łatania .plik svn / entries do fresh checkout.

To może być nowy sposób (dzięki mojemu koledze):

- go to work directory where recorder/expected checksum issue occured
- call "svn diff" and make sure that there isnt any local modifications
- cd ..
- remove trouble file's directory with "rm -rf"
- issue "svn up" command, svn client will restore new fresh files copies
 4
Author: Denis Barmenkov,
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
2011-05-06 13:58:46

Matt, jest łatwiejszy sposób niż opisałeś-modyfikacja sumy kontrolnej w .plik SVN / entries. Oto pełny opis: http://maymay.net/blog/2008/06/17/fix-subversion-checksum-mismatch-error-by-editing-svnentries-file/

 3
Author: Arturas Smorgun,
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
2011-06-30 08:46:50

Inne, być może jeszcze straszniejsze, obejście konfliktów sum kontrolnych, które znalazłem, wygląda następująco:

Uwaga: Upewnij się, że Twoja lokalna kopia jest najbardziej znaną wersją i że ktoś inny w Twoim projekcie wie, co robisz! (na wypadek, gdyby nie było to już oczywiste).

Jeśli wiesz, że Twoja lokalna kopia pliku jest "dobra", możesz bezpośrednio usunąć plik z serwera SVN, a następnie wymusić zatwierdzenie lokalnej kopii.

Składnia dla direct delecja:

svn delete -m "deleting corrupted file XXXX" 
svn+ssh://username@svnserver/path/to/XXXX
Powodzenia!

J

 3
Author: jsh,
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
2018-02-23 22:08:13

Jako alternatywę dla sprawdzenia nowej kopii (co też musiałem zrobić po wypróbowaniu wszystkich innych opcji) i zamiast scalania wszystkich zmian, które wcześniej zapisałeś, poniższe podejście działało w ten sam sposób, ale zaoszczędziło mi sporo czasu i prawdopodobnie kilka błędów:

  1. Sprawdź świeżą kopię roboczą
  2. Zrozumiałem .folder svn z twojej nowej kopii do uszkodzonej kopii
  3. Voila

Oczywiście należy wykonać kopię zapasową oryginału uszkodzona kopia robocza na wszelki wypadek. W moim przypadku mogłem go usunąć po zakończeniu, ponieważ wszystko poszło dobrze.

 2
Author: Matija Han,
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
2013-07-08 16:19:33

To się stanie, gdyfolder svn jest uszkodzony. Rozwiązanie: Usuń cały folder z pliku i sprawdź folder ponownie.

 2
Author: S.V.P.Reddy,
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
2014-06-12 14:02:53

Miał ten problem, nasze maszyny wirtualne dev są * nix nasze stacje robocze win32. niektórzy głupcy utworzyli pliki o tej samej nazwie (inna sprawa) na polu * nix nagle kasowanie na Win32 wybucha... bo win nie wie który z 2 plików o tej samej nazwie do MD5 przeciwko, checkouts na * nix były w porządku... zostawiając nas na chwilę, by podrapać się po głowach

Udało mi się zaktualizować repo na win box kopiując".svn " foldery z pudełka * nix z dobrą kopią roboczą. have yet to sprawdź, czy repo może zostać wyczyszczone do punktu, w którym możemy ponownie wykonać pełną kontrolę

 1
Author: LongStone,
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-07-07 23:14:41

Jeszcze jeden prosty sposób....

  1. Zaktualizuj swój projekt, aby uzyskać najnowszą wersję
  2. Sprawdź tę samą wersję w innym folderze
  3. zastąp .folder svn od nowej kasy do kopii roboczej (wymieniłem .pliki svn-base)
 1
Author: Alexandre,
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-01-18 21:31:33
  1. Sprawdź tylko folder z problematycznym plikiem z repozytorium do innej lokalizacji.
  2. Upewnij się, że {[0] } jest identyczny z tym, które zostało sprawdzone.
  3. Upewnij się, że problematyczna sekcja pliku (wszystkie linie sekcji) W .svn\entries jest identyczna z tą, która została sprawdzona.
 0
Author: Mike,
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-04-24 05:26:26

Nie uwierzysz w to, ale naprawiłem swój błąd usuwając <scm>...</scm> postawę z obrażającego pom.plik xml, który miałem nadzieję sprawdzić. Zawiera on Adres URL repozytorium subversion, w którym jest sprawdzany (do tego służy ustawienie Maven!), ale w jakiś sposób wygenerował błędną sumę kontrolną dla pliku podczas sprawdzania.

Dosłownie próbowałem wszystkich wyżej wymienionych metod naprawienia tego, ale bezskutecznie. Czy napotkałem bardzo rzadką sytuację, w której generator sumy kontrolnej jest za mało wytrzymały?

 0
Author: Jeroen,
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
2013-01-10 15:19:09

Również natknąłem się na ten problem i starałem się szukać szybkich rozwiązań, wypróbowałem niektóre z rozwiązań podanych w tym wątku. W ten sposób rozwiązałem ten problem w moim środowisku programistycznym (dla mnie była to minimalna zmiana):

1 - lokalnie usunięty katalog, w którym plik został uszkodzony (WEB-INF):

 svn: Checksum mismatch for 'path-to-folder\WEB-INF\web.xml':
   expected:  d60cb051162e4a6790a3ea0c9ddfb434
     actual:  16885ded2cbc1adc250e4cbbc1427546

2 - skopiowany i wklejony katalog (WEB-INF) ze świeżej kasy

3-czy svn się podniósł, teraz Eclipse / TortoiseSVN zaczął pokazywać konflikt w tym katalogu

4- Zaznaczony konflikt jako rozwiązany

To działało, udało mi się zaktualizować, zatwierdzić wcześniej uszkodzoną sieć.xml

 0
Author: harsh,
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
2013-04-22 07:50:45

W moim przypadku suma była inna. Wszystko co zrobiłem to:

1) Sprawdź w oddzielnym folderze

2) Zastąp przez Plik z tego folderu w .katalog svn z moim problemem projektu-plik, który został wymieniony w komunikacie błędu svn-client

3) ..Zysk!

 0
Author: HotJard,
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
2013-05-17 09:03:33

Chociaż jest to stary problem, pomyślałem, że dam moje 2 centy, jak również, ponieważ właśnie zmagał się z problemem przez ponad godzinę.

Powyższe rozwiązania albo nie działały dla mnie, albo wydawały się zbyt skomplikowane.

Moim rozwiązaniem było po prostu usunięcie wszystkich folderów svn z projektu.

find . -name .svn -exec rm -rf {} \;

Po tym, zrobiłem proste kasowanie projektu ponownie. W ten sposób pozostawiam wszystkie moje niezaangażowane pliki nienaruszone, ale wciąż mam przebudowę wszystkich plików svn.

 0
Author: Torben Lajer,
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
2014-07-14 13:22:41

Miałem ten problem na ubuntu 14.04 i rozwiązałem go wykonując następujące kroki:

  1. $ cd / var / www / myProject
  2. $ SVN upgrade
  3. $ svn update

Po tych krokach mogłem zatwierdzić plik bez błędu.

 0
Author: mohammad sadeq,
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
2014-08-20 05:18:00
  1. Przejdź do folderu problem
  2. Wykonaj polecenie svn update --set-depth empty
  3. Ten folder opróżni się i przywróci pusty folder
  4. Synchronizacja z svn I update.

To działa dla mnie.

 0
Author: Dolen Oinam,
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
2018-09-05 10:46:40

Oto jak naprawiłem problem-V prosty, ale jak na jsh powyżej, muszę mieć pewność, że twoja kopia jest najlepsza.

Po prostu

  1. skopiuj wszystkie problemowe pliki w tym samym folderze.
  2. usuń stare za pomocą svn rm
  3. commit.
  4. następnie zmień nazwę kopii z powrotem na oryginalne nazwy plików.
  5. commit again.

Podejrzewam, że to prawdopodobnie zabija wszystkie rodzaje historii rewizji w tym pliku, więc jest to dość brzydki sposób na to...

 -2
Author: hwjp,
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
2011-02-06 16:32:41