Nu se poate remedia eroarea de coliziune a cazului Hg cu ghidul Mercurial

Există o problemă cu ghidul lui Mercurial pentru remedierea coliziunilor de pliere a cazurilor sau există o problemă cu modul în care implementez soluția.

Soluția furnizată în wiki Mercurial este următoarea:

hg clone -U repo repair
cd repair

hg debugsetparents 
hg debugrebuildstate 

At this point, Mercurial will think you have the bad revision checked out and all the files are missing (status '!'). To fix the repo, we simply have to do:

hg rm -A  

Now hg st should show the troublesome file in state 'R' and all other files in state '!'. Now we can check in our fix:

hg ci -m"fix case collision" 

To get all our files back, we just check out again:

hg co tip

Fișierele cu probleme sunt: ​​ SomeFile.bash și Somefile.bash . Inițial am avut Somefile.bash și aș vrea să fie acum SomeFile.bash . Deasemenea, versiunea 157 este fericita, nu coliziune, dar versiunea 158 este locul unde am introdus coliziunea. Șeful depozitului este în prezent la revizuirea 160.

Am implementat această soluție după cum urmează:

hg clone -U my-repo-url repair
cd repair
hg debugsetparent 160
hg debugrebuildstate
hg status (reveals that everything is 'missing' (!))
hg rm -A Somefile.bash (responds that SomeFile.bash has been removed, notice case change)
hg ci -m "Fixed the collision... I hope."
hg co tip

hg update -C tip

Conform ghidului, acest lucru ar fi trebuit să elimine coliziunea de pliere a cazurilor și să aducă restul fișierelor lipsă înapoi, încă un alt hg status dezvăluie că totul lipsește (!).

Edit: By appending that last command (the update) to the existing commands, I was able to recover the missing files which solved the remainder of the problem.

Note: I had to use the most recent 'problem' version for to fix this problem (that was 160 in my case).

1
Consultați editați pe care le-am furnizat mai sus.
adăugat autor jbranchaud, sursa
@ Ry4an a făcut editările de mai sus aruncă lumină asupra motivului pentru care acest proces nu funcționează pentru mine?
adăugat autor jbranchaud, sursa
Furnizați secvența exact a comenzilor pe care le emiteți (inclusiv numerele de revizie reale). Presupunând că nu aveți ceva îngrozitor, cum ar fi inotify activat, este posibil să fi interpretat greșit ce să utilizați pentru .
adăugat autor Ry4an Brase, sursa

1 răspunsuri

Încerca

hg update -C tip

That should bring the files back. If not, Încercareverting everything:

hg revert -r tip -a
1
adăugat
Executarea comenzii din prima parte a răspunsului dvs. ( hg update -C tip ) după comenzile de mai sus pare să fi făcut trucul. A tras în toate fișierele care lipsesc. Mulțumiri!
adăugat autor jbranchaud, sursa