Punya layar blues di windows saat kloning repositori lincah.
Setelah reboot, saya sekarang mendapatkan pesan ini untuk hampir semua perintah hg:
c: \ src \> hg komit menunggu kunci pada repositori c: \ src \ McVrsServer dipegang oleh '\ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 ' terganggu!
Google tidak membantu.
Ada tips?
Jawaban:
Saat "menunggu kunci repositori", hapus file repositori:
.hg/wlock
(atau mungkin ada di
).hg/store/lock
Saat menghapus file kunci, Anda harus memastikan tidak ada lagi yang mengakses repositori. (Jika kuncinya adalah nol atau kosong, ini hampir pasti benar).
sumber
hg recover
harus dijalankan setelah situasi penguncian yang rusak.Kapan
waiting for lock on working directory
, hapus.hg/wlock
.sumber
server:pid
. Terima kasih banyak. Kemudian saya harus lari$ hg recover
untuk menghapus jurnal yang ada (& melakukan pesan) yang sayactrl+c
edit. Tidak yakin, tetapi Anda mungkin dapat menjalankan$ hg recover
tanpa menghapus file kunci dan itu akan melakukannya untuk Anda. Layak dicoba.Saya punya masalah ini tanpa file kunci yang terdeteksi. Saya menemukan solusinya di sini: http://schooner.uwaterloo.ca/twiki/bin/view/MAG/HgLockError
Berikut ini adalah transkrip dari konsol Tortoise Hg Workbench
Setelah ini tarikan yang dibatalkan berjalan dengan sukses.
Kunci telah diatur lebih dari 2 tahun yang lalu, dengan proses pada mesin yang tidak lagi di LAN. Malu pada pengembang hg untuk a) tidak mendokumentasikan kunci secara memadai; b) tidak mencatat waktu untuk dihapus secara otomatis saat basi.
sumber
wlock
yang terkunci, gunakanhg debuglocks --force-wlock
Rekan kerja memiliki masalah yang sama hari ini, setelah BSoD ketika mencoba untuk mendorong. Dia harus:
.hg/store/lock
(sesuai jawaban yang diterima ).hg/store/phaseroots
(sesuai dengan laporan bug TortoiseHG ini )Kemudian repo-nya bekerja lagi.
EDIT: Sesuai komentar @ Marmoute - saat menangani masalah terkait kunci, menggunakan
hg debuglock
adalah alternatif yang lebih aman untuk menghapus.hg/store/lock
file secara membabi buta .sumber
Saya sangat akrab dengan kode penguncian Mercurial (pada 1.9.1). Saran di atas bagus, tetapi saya akan menambahkan bahwa:
(Untuk yang penasaran: Saya belum dapat mengetahui penyebab masalah ini, tetapi saya curiga itu adalah versi Mercurial lama yang mengakses repositori atau masalah pada socket Python. Gethostname () panggil versi Windows tertentu.)
sumber
Saya memiliki masalah yang sama pada Win 7. Solusinya adalah menghapus file berikut:
Adapun .hg / store / lock - tidak ada file seperti itu.
sumber
hg debuglock
untuk mencari tahu apa yang terjadi dan menghentikan proses memegang kunci.Saya tidak berharap ini menjadi jawaban yang menang, tetapi ini adalah situasi yang cukup tidak biasa. Menyebutkan kalau-kalau ada orang selain saya yang menabraknya.
Hari ini saya mendapatkan "menunggu kunci pada repositori" pada perintah push hg.
Ketika saya membunuh perintah hung hg saya tidak bisa melihat .hg / store / lock
Ketika saya mencari .hg / store / lock ketika perintah digantung, itu ada. Tetapi lockfile dihapus ketika perintah hg terbunuh.
Ketika saya pergi ke target push, dan mengeksekusi hg pull, tidak masalah.
Akhirnya saya menyadari bahwa ID proses pada push hg adalah pesan tunggu kunci berubah setiap kali. Ternyata "hg push" menggantung menunggu kunci dipegang dengan sendirinya (atau mungkin subproses, saya tidak menyelidiki lebih lanjut).
Ternyata kedua ruang kerja, sebut saja mereka A dan B, memiliki .hg pohon yang dibagikan oleh symlink:
Ini BUKAN hal yang baik untuk dilakukan dengan Mercurial. Mercurial tidak memahami konsep dua ruang kerja yang berbagi repositori yang sama. Saya mengerti, bagaimanapun, bagaimana seseorang yang datang ke Mercurial dari VCS lain mungkin menginginkan ini (Perforce tidak, meskipun bukan DVCS; Bazaar DVCS dilaporkan dapat melakukannya). Saya terkejut bahwa REP-ROOT / .hg yang disinkronkan bekerja sama sekali, meskipun tampaknya kecuali untuk dorongan ini.
sumber
.hg/
? Ketika Anda mengatakan bahwa repositori “bekerja”, tidakkah berjalanhg up
di satu tempat membuat direktori tidak sinkron dengan yang lain — atau apakah mercurial melakukan sesuatu yang istimewa untuk mendukung hal ini?Saya memiliki masalah yang sama. Dapatkan pesan berikut ketika saya mencoba melakukan:
hg debuglock
menunjukkan ini:Jadi saya melakukan perintah berikut, dan itu memperbaiki masalah bagi saya:
Menggunakan Win7 dan TortoiseHg 4.8.7.
sumber
Jika repo yang dikunci adalah yang asli, saya tidak bisa membayangkan itu memodifikasinya untuk mengkloningnya, jadi itu hanya mencegah Anda mengubahnya di tengah dan mengacaukan klon. Itu harus baik-baik saja setelah melepas kunci.
Namun, salinan yang dikloning baru (jika itu adalah klon lokal) bisa dalam kondisi cacat apa pun, jadi Anda harus membuangnya dan memulainya dari awal. (Jika itu adalah klon jarak jauh, saya berharap itu gagal dan sudah membuang salinan yang tidak lengkap.)
sumber
Saya mengalami masalah ini pada Mac OS X 10.7.5 dan Mercurial 2.6.2 ketika mencoba untuk mendorong. Setelah memutakhirkan ke Mercurial 3.2.1, saya mendapat "tidak ada perubahan yang ditemukan" alih-alih "menunggu kunci pada repositori". Saya menemukan bahwa entah bagaimana jalur default telah ditetapkan untuk menunjuk ke repositori yang sama, jadi tidak terlalu mengejutkan bahwa Mercurial akan menjadi bingung.
sumber
path
pengaturan adalah pelakunya.Jika itu hanya terjadi pada drive yang dipetakan, itu mungkin bug https://bitbucket.org/tortoisehg/thg/issue/889/cant-commit-file-over-network-share . Menggunakan jalur UNC alih-alih huruf drive tampaknya menghindari masalah ini.
sumber