„Mercurial“ įstrigo „laukia užrakto“

>

Po perkėlimo gaunu šį pranešimą beveik visoms „hg“ komandoms:

 c: src> hg įsipareigoti c: src McVrsServer, laikomas „x00 x00 x00 x00 x00“. x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 ' nutrauktas!

„Google“ nepadeda.

Bet kokie patarimai?

283
nustatyti jm. Rugpjūčio 16 d 2008-08-16 02:01 '08 at 2:01 am 2008-08-16 02:01
@ 10 atsakymų

Kai „laukia užrakto saugykloje“, ištrinkite saugyklos failą: .hg/store/lock arba gali būti .hg/wlock

Ištrinant užrakto failą, turite įsitikinti, kad saugykloje nieko neįvyksta. (Jei spyna yra nulio eilutė, tai beveik neabejotinai tiesa).

363
atsakymas yra jm. Rugpjūčio 16 d 2008-08-16 02:20 '08 at 2:20 2008-08-16 02:20

waiting for lock on working directory , ištrinkite .hg/wlock .

325
02 июня '10 в 21:39 2010-06-02 21:39 Atsakymą pateikė Tiago Matos birželio 10 d. 10 val. 21:39 2010-06-02 21:39

Turėjau šią problemą be aptikiamų užrakinimo failų. Radau sprendimą čia: http://schooner.uwaterloo.ca/twiki/bin/view/MAG/HgLockError

Čia yra „Tortoise Hg Workbench“ konsolės scenarijus

 % hg debuglocks lock: user None, process 7168, host HPv32 (114213199s) wlock: free [command returned code 1 Sat Jan 07 18:00:18 2017] % hg debuglocks --force-lock [command completed successfully Sat Jan 07 18:03:15 2017] cmdserver: Process crashed PaniniDev% hg debuglocks % hg debuglocks lock: free wlock: free [command completed successfully Sat Jan 07 18:03:30 2017] 

Po to nutrauktas sėkmingai ištrauktas.

Užraktas buvo sukurtas daugiau nei prieš 2 metus naudojant procesą mašinoje, kuri nebėra vietiniame tinkle. Gėda hg kūrėjams a) nepakankamai užfiksuoti spynos; b) Negalima susieti laiko su automatiniu ištrynimu, kai jie pasenę.

32
08 янв. Atsakyti Thomas Sharpless Jan 08 2017-01-08 02:16 '17 at 2:16 am 2017-01-08 02:16

Šiandien ši problema iškilo po to, kai BSoD bandė stumti. Jis turėjo:

Tada jo repo vėl dirbo.

EDIT: Pagal @Marmoute komentarą, dirbant su hg debuglock problemomis, naudojant hg debuglock yra saugesnė alternatyva .hg/store/lock ištrinti .hg/store/lock failą.

15
07 мая '13 в 18:36 2013-05-07 18:36 atsakymą įteikė Ian Kemp , gegužės 7 d. 13 d. 18:36 2013-05-07 18:36

Labai gerai pažįstu „Mercurial“ užrakto kodą (nuo 1.9.1). Pirmiau pateiktos rekomendacijos yra geros, bet norėčiau pridurti, kad:

  • Mačiau tai laukinėje, bet retai ir tik „Windows“ mašinose.
  • Užrakinimo failų trynimas yra paprasčiausias sprendimas, tačiau turite įsitikinti, kad saugykloje nieko neįvyksta. (Jei spyna yra nulio eilutė, tai beveik neabejotinai tiesa).

(Dėl smalsumo: dar nesugebėjau suprasti šios problemos priežasties, bet manau, kad tai yra senesnė „Mercurial“ versija, leidžianti pasiekti saugyklą, arba problema skambinant socket.ethethethname () „Python“ tam tikroms „Windows“ versijoms).

11
02 нояб. Atsakymas duotas Brad O 02 lapkričio. 2011-11-02 16:36 '11 at 16:36 2011-11-02 16:36

Turėjau tą pačią problemą ir „Win 7“. Sprendimas buvo ištrinti šiuos failus:

  • .hg / parduotuvė / phaseroots
  • .hg / wlock

Kaip .hg / store / lock, tokio failo nebuvo.

4
12 марта '15 в 12:24 2015-03-12 12:24 Atsakymą pateikė Ivan Dulov kovo 15 d. 15 val. 12:24 2015-03-12 12:24

Nemanau, kad tai bus laimingas atsakymas, tačiau tai yra gana neįprasta situacija. Nurodykite, jei kas nors šalia manęs susiduria.

Šiandien „hg push“ komandoje gavau „laukia saugykloje užrakto“.

Kai nužudiau hg kabinimo komandą, aš nematau .hg / store / lock

Kai aš ieškojau .hg / store / lock, kai komanda buvo pakabinta, ji egzistavo. Tačiau užrakinimo failas buvo ištrintas, kai žuvo hg komanda.

Kai priartėjau prie spaudimo ir vykdymo hg traukimo tikslo, problema nebuvo.

Galų gale, supratau, kad proceso ID, esantis „hg push“, buvo užrakto laukimo pranešimas, kaskart pakeitus. Pasirodo, kad „hg stūmimas“ buvo pakabintas laukiant užrakto, laikomo paties (arba, galbūt, subproceso, kurio aš dar nebandžiau).

Pasirodo, kad dvi darbo vietos, vadiname jas A ir B, turėjo .hg-medžius, bendrai naudojamus nuorodomis:

 A/.hg --symlinked-to--> B/.hg 

Tai nėra naudinga Mercurial. „Mercurial“ nesupranta dviejų darbo vietų, turinčių tą pačią saugyklą, sąvokos. Tačiau suprantu, kaip tai gali prireikti tiems, kurie ateina į „Mercurial“ iš kitos VCS („Perforce“ daro, nors ne DVCS, galbūt DVCS turgus tai gali padaryti). Nustebau, kad susieti REP-ROOT / .hg veikia apskritai, nors, atrodo, be šio paspaudimo.

4
02 авг. atsakymas, kurį pateikė Krazy Glew 02 rug. 2014-08-02 01:22 '14 ne 1:22 2014-08-02 01:22

Jei užrakintas repo buvo originalus, aš negaliu įsivaizduoti, kad jis jį pakeitė, kad jį klonuotų, taigi jis neleido keisti jo viduryje ir sugadinti kloną. Nuėmus užraktą, jis turi būti geras.

Nauja klonuota kopija (jei ji buvo vietinis klonas) gali būti neteisinga, todėl turėtumėte jį išmesti ir pradėti. (Jei tai būtų ištrintas klonas, tikiuosi, kad tai nepavyktų ir jau nebaigė kopijos.)

2
16 авг. atsakymas į markpasc 16 rug . 2008-08-16 23:54 '08, 11:54 val. 2008-08-16 23:54

Jei tai įvyksta tik priskirtuose diskuose, tai gali būti https://bitbucket.org/tortoisehg/thg/issue/889/cant-commit-file-over-network-share klaida. Naudojant UNC kelią vietoj disko raidės atrodo, kad problema susiduria.

1
12 июля '12 в 8:20 2012-07-12 08:20 atsakymą pateikia matinis wilkie, liepos 12 d., 12 val

Bandydami spustelėti, susidūriau su šia problema „Mac OS X 10.7.5“ ir „Mercurial 2.6.2“. Atnaujinus „Mercurial 3.2.1“, gavau „be pakeitimų“, o ne „laukia užrakto saugykloje“. Sužinojau, kad tam tikru būdu numatytasis kelias buvo pavestas toms pačioms saugykloms, todėl nenuostabu, kad Mercurial yra painiojamas.

1
24 нояб. Atsakymas yra JWWalker . 2014-11-24 21:10 '14, 21:10 2014-11-24 21:10

Peržiūrėkite kitus klausimus apie etiketę arba Užduoti klausimą