Reparați suma de verificare SVN

Folosesc subclipse în Flex Builder 3 și am primit recent această eroare la încercarea de a comite:

svn: Neconcordanța contului de verificare pentru '/ Users / redacted / Documents / Flex Builder 3 / path / to / my / file.mxml'; așteptat: 'f8cb275de72776657406154dd3c10348', actual: 'null'

Am lucrat în jurul ei prin:

  1. Comandă toate celelalte fișiere modificate, omiterea celei problematice.
  2. Copierea conținutului fișierului de probleme într-o fereastră TextMate
  3. Ștergerea proiectului meu în FlexBuilder / Eclipse
  4. Verificarea proiectului meu din SVN
  5. Copiați din nou textul fișierului de probleme din fereastra TextMate
  6. Comandarea modificărilor.

A funcționat, dar nu pot să cred că există o cale mai bună. Ce se întâmplă în mod curent pentru a provoca eroarea de verificare a valorii de control svn și care este cea mai bună soluție.

Poate mai important - este acesta un simptom al unei probleme mai mari?

0
fr hi bn

4 răspunsuri

Ocazional primesc lucruri similare, de obicei cu dosare pe care nimeni nu le-a fost aproape în săptămâni. În general, dacă știți că nu ați lucrat în directorul în cauză, puteți șterge directorul cu această problemă și puteți rula

svn update

pentru ao recrea.

Dacă aveți schimbări în direct în director, atunci lassevk și tu chiar tu ai sugerat, este necesară o abordare mai atentă.

În general, aș spune că este o idee bună să nu lăsați neautorizate fișierele editate și să păstrați ordinea de lucru ordonată - nu adăugați o grămadă de fișiere suplimentare în copia de lucru pe care nu o veți folosi. Implicați-vă în mod regulat, iar apoi, dacă copia de lucru merge în sus, puteți să ștergeți totul și să începeți fără să vă faceți griji cu privire la ceea ce ați putea sau nu să pierdeți și fără durerea încercând să vă dați seama ce fișiere să salvați.

0
adăugat
hei @ IgorGanapolsky cel mai bine întrebați o nouă întrebare dacă doriți ajutor cu asta
adăugat autor Polsonby, sursa
Am o eroare: ** Operația anterioară nu a terminat; executați "curățarea" în cazul în care a fost întrerupt **
adăugat autor Igor Ganapolsky, sursa

Fișierul din directorul .svn care ține evidența a ceea ce ați verificat, când, ce revizie și de unde a devenit corupt cumva, pentru acel fișier.

Acest lucru nu este mai periculos sau mai critic decât problema obișnuită a fișierului ciudat și poate fi din cauza diferitelor probleme, cum ar fi un program de subversiune care a murit la mijlocul schimbării, întreruperi de putere etc.

Dacă nu se întâmplă mai mult, nu aș face prea mult din ea.

Poate fi rezolvat prin a face ceea ce ați făcut, faceți o copie a fișierelor de lucru, verificați o copie nouă și adăugați din nou fișierele modificate.

Rețineți că acest lucru ar putea cauza probleme dacă aveți un proiect ocupat, unde ar trebui în mod normal să fuzionați în schimbări.

De exemplu, tu și un coleg, verificați o copie proaspătă și începeți să lucrați la același fișier. La un moment dat colegul tău verifică modificările. Când încercați să faceți același lucru, obțineți problema cu suma de control pe care o aveți. Dacă acum faceți copii ale fișierelor dvs. modificate, efectuați o verificare nouă, iar apoi subversiunea va pierde evidența modului în care modificările dvs. ar trebui să fie reunite.

Dacă nu ați întâmpinat problema în acest caz, când v-ați aflat pentru a verifica modificările, va trebui să vă actualizați mai întâi copia de lucru și, eventual, să rezolvați un conflict cu fișierul.

Cu toate acestea, dacă faceți o verificare proaspătă, completată cu modificările colegilor dvs., acum se pare că ați eliminat modificările și ați înlocuit-o cu propria dvs. Nu există conflicte și nu există indicii din subversiune că ceva este rău.

0
adăugat
Ai dreptate unde sa produs corupția. Este o problemă locală .svn! mulțumesc pentru că. Mi-a rezolvat problema frumos.
adăugat autor Matt, sursa
În exemplul dvs. de conflict, vă recomandăm să finalizați revizuirea (a fișierului în cauză) înainte ca colegul să verifice modificările acestuia, apoi să aplice conținutul fișierului dvs. și în cele din urmă să să schimbe copia de lucru modificată a fișierului revizuirea HEAD a acelui dosar. Dacă nu mă înșel, aceasta ar putea duce la o situație de îmbinare corectă, incluzând atât colegii dvs., cât și colegii dvs., modificând fișierul.
adăugat autor hiergiltdiestfu, sursa

Doar astăzi, am reușit să recuperez din această eroare verificând o copie a directorului corupt în / tmp și înlocuindu-i fișierele în .svn / text-base cu cele doar coed. Am scris procedura în detaliu

A lucrat pentru mine! Instrucțiuni Add'l pentru Eclipse / Subversion: utilizați perspectiva SVN Repository pentru a verifica folderul rupt ca un nou proiect temporar (Eclipse nu vă va lăsa să verificați într-un dosar vechi simplu). Selectați "Adâncime: Foldere într-un fișier" pentru a evita verificarea mai mult decât este necesar. Apoi, copiați /. Svn de la proiectul temp la proiectul real așa cum este descris în blogul lui Andrew. Repornirea Eclipse ar putea fi necesară și oricum nu poate face rău. (Faceți o copie de rezervă a fișierului original /. Svn doar în c
adăugat autor Barry Fruitman, sursa

SVN păstrează copiile înșelătoare ale tuturor fișierelor pe care le verificați îngropate în directoarele .svn. Aceasta se numește baza de text. Acest lucru permite diferențe rapide și revine. În timpul diferitelor operațiuni, SVN va efectua sume de control pe aceste fișiere de bază de text pentru a prinde probleme de corupere a fișierelor.

În general, o nepotrivire a sumelor de control SVN înseamnă că un fișier care nu ar fi trebuit modificat a fost schimbat cumva. Ce inseamna asta?

  1. Corupția discului (cablu HDD sau IDE rău)
  2. Bad RAM
  3. Legătură slabă la rețea
  4. Un fel de proces de fundal a modificat un fișier în spatele dvs. (malware)

Toate acestea sunt rele.

HOWEVER, I think your problem is different. Look at the error message. Note that it expected some MD5 hashes, but instead got back 'null'. If this were a simple file corruption issue, I would expect that you would have two different MD5 hashes for the expected/got. The fact that you have a 'null' implies that something else is wrong.

Am două teorii:

  1. Bug în SVN.
  2. Ceva a avut o blocare exclusivă pe fișier, iar MD5 nu s-ar putea întâmpla.

În cazul # 1, încercați să faceți upgrade la ultima versiune SVN. Poate, de asemenea, postați acest lucru pe lista de discuții svn-devel ( http://svn.haxx.se ), astfel încât dezvoltatorii o pot vedea.

În cazul # 2, verificați dacă ceva are fișierul blocat. Puteți descărca o copie a Process Explorer pentru a verifica. Rețineți că, probabil că doriți să vedeți cine are un sistem de blocare pe fișier, nu fișierul real text de bază ai încercat să se angajeze.

0
adăugat
Un tip de "malware" care mi-a făcut acest lucru în trecut este scanerul de virusi.
adăugat autor Trejkaz, sursa
În cazul meu, fișierele de bază de text au fost modificate de o căutare globală / înlocuire în IDE-ul meu, nu de un proces de fundal. Același principiu se aplică.
adăugat autor Andrew Hedges, sursa