Cum pot restaura controlul svn dacă folderul .svn a fost deteriorat?

Am câteva checkout-uri mari în care dosarul .svn a devenit deteriorat, așa că am primit și eroare, "Curățarea nu a reușit să proceseze următoarea cale." Și nu mai pot să comit sau să actualizez fișiere în acel director.

Tocmai am șterge și am efectuat verificarea din nou, dar întregul director este peste un concert.

Există un instrument care va restaura fișierele .svn pentru anumite foldere fără a fi nevoie să descărcați totul?

Înțeleg că va trebui să descarce toate fișierele din acel folder astfel încât să poată determina dacă au fost schimbate .. dar subdirectoriile cu dosare valabile .svn ar trebui să fie bine.

Sunt un mare fan al lui TortoiseSVN sau linia de comandă pentru linux.

Gânduri?

0

7 răspunsuri

Dacă știți care folder are directorul .svn deteriorat, puteți să ștergeți singur acel director și să reluați din nou actualizarea svn. Este posibil să fie necesar să ștergeți întregul director, inclusiv conținutul său actual. Desigur, dacă directorul cu directorul .svn deteriorat este cel care conține un gigaoctet, atunci vă întoarceți de unde ați început.

0
adăugat
Dacă aveți subversiune <1,5, cred că aceasta ar putea fi singura opțiune.
adăugat autor nedned, sursa

Am lovit acest lucru în trecut și nu am găsit nicio soluție de lucru, cu excepția opțiunii "nucleare" (adică să șterg directorul și să recheam).

Nu sunteți sigur dacă aceasta este problema dvs., dar corupția mea a fost cauzată de un scaner de virusuri pe acces la aceeași mașină ca serverul SVN.

0
adăugat
Tocmai am făcut asta cu Tortoise. Asigurați-vă că actualizați url-ul repozitoriului pentru a se potrivi cu calea folderului dvs., deoarece probabil că nu veți fi în rădăcină făcând acest lucru.
adăugat autor Alex, sursa

În cazul în care aveți modificări ale fișierelor și nu le puteți șterge, puteți utiliza caracteristica Subversion 1.5 care vă permite să efectuați "checkout cu obstacole".

Doar ștergeți directorul .svn din acest director și: (nu trebuie să ștergeți directoarele atunci când utilizați fișiere --depth, mulțumesc Eric)

În cazul în care directorul defect a fost directorul de top al copiei de lucru:

svn checkout --depth files --force REPOS WC

Și dacă directorul deasupra celui rupt este încă rulat:

svn update --depth files --force WC

în acel director.
În ambele eșantioane, REPOS este urlul din depozit care se potrivește cu directorul rupt, iar WC este calea spre director.

Fișierele modificate inițial vor fi în starea modificată după aceasta.

0
adăugat
Am reușit să evit să șterg folderul .svn în subdirectoare prin adăugarea fișierelor "-depth files" siwtch la comanda de verificare. Puteți edita postarea pentru a reflecta și poate clarifica textul REPOS și WC. Mulțumiri!
adăugat autor Eric Goodwin, sursa
thx, a ajutat foarte mult!
adăugat autor Martin, sursa

Dacă subdirectoarele și OK și subdirectoarele sunt mari, puteți încerca o verificare nerecursivă.

0
adăugat

Faceți o copie de rezervă a dosarului care are fișierul .svn lipsă

Apoi ștergeți dosarul

Dacă este rădăcina plății de plată, va trebui să re-plătiți

Dacă nu este rădăcina, trebuie doar să rulați o actualizare dintr-un director de mai sus.

Apoi mutați dosarul de copiere de rezervă deasupra acestuia. (În mod ideal, nu mutați înapoi dosarele .svn)

Continuați să lucrați și asigurați-vă că ați actualizat/comit!

0
adăugat

Am întâmpinat aceeași eroare astăzi. Sa intamplat cand am incercat sa comut ramuri si sa nu sterg unul din fisierele care nu sunt in depozitul svn. După aceea, dosarul a fost blocat și nu pot folosi nici o comandă pentru a reuși să funcționeze din nou.

Am eliminat practic ceea ce am avut și am reluat verificarea. Este nevoie de timp, dar chiar vreau să fiu sigur că svn este clar înainte de a putea începe să lucrez din nou. Mulțumiri!

0
adăugat

Soluția selectată a lucrat pentru mine pentru a restabili dosarul .svn de nivel superior, dar nu recunoaște obiectele copilului, deci totul pare străin de SVN în acest moment, în ciuda faptului că versiunea este intactă în subfoldere.

0
adăugat