2011-02-26 29 views
1

找到.hg /存儲/鎖我創建了使用遠程計算機上的存儲庫:汞克隆將中止報告說,它不能在倉庫

hg init 

    hg add 

    hg commit 

信息庫已創建。

我克隆了本地機器上的存儲庫,沒有報告錯誤;該文件似乎是有

現在我使用的是設法使副本的副本(作爲工作複印件):

hg clone "path to original clone" 

它返回:

目標目錄:「名稱庫」

中止:沒有這樣的文件或目錄:‘路徑原始克隆’/ HG /存儲/ LOCK

我在做什麼錯?

感謝

+1

你能列出具體的命令的順序,所以可以嘗試重現? – aknuds1 2011-02-26 19:18:59

+0

你用hg add添加文件嗎?如果是這樣,他們沒有什麼特別的?您是否嘗試過創建一個空的存儲庫,並克隆它(以驗證問題是否出現在這種情況下)? – aknuds1 2011-02-26 21:30:27

+0

您正在使用哪個版本的Mercurial? – aknuds1 2011-02-26 21:37:50

回答

1

請在失敗的真實實際的命令和包括實際的路徑,你克隆的克隆輸出粘貼。當你做克隆時也使用--debug--traceback

作爲一種解決方法,您可以隨時嘗試hg init newclone後跟hg pull -R newclone pathtooriginalclone,除非在可能的情況下不使用本地硬鏈接,否則它實際上等效。

+0

感謝...變通的工作......仍然好奇爲什麼簡單的克隆不起作用。 ..再次感謝 – 2011-02-27 04:58:48

3

在主存儲庫所在的分區上使用什麼文件系統?

實際上,當Mercurial正在做一些操作時,它需要鎖定存儲庫。爲此,它創建了一個符號鏈接,指向不存在的文件,當文件系統支持.hg存儲庫時,告訴其他所有進程此時不能修改存儲庫。當文件系統不支持符號鏈接時,會創建一個普通文件。

但是,某些FUSE文件系統存在一些問題,通常是SSHFS,並激活了follow_symlinks選項。 FUSE報告他知道符號鏈接,但由於SSHFS遵循符號鏈接且文件不存在,鏈接的「狀態」被標記爲未知,因此Mercurial認爲存儲庫未正確鎖定並中止操作。

我看到你使用的是Cygwin,所以也許它與在Windows文件系統上爲UNIX設計的工具有同樣的問題。這很奇怪,我的同事通過Cygwin使用Mercurial就好了。

我不知道你是不是這樣,但我在這個問題上損失了將近半天。也許這個答案可以在未來幫助一些人。

+0

本地存儲庫託管在網絡文件系統(Buffalo Technology Terastation)上。我只是試圖做一個「hg pull」來更新本地倉庫(從遠程倉庫),並得到相同的消息! – 2011-03-03 03:34:32

+0

我想我看到一個潛在的問題...作爲測試,我嘗試在託管本地存儲庫的目錄中(在網絡驅動器上)手動創建符號鏈接。在那個目錄中,我做了「ln -s aaa bbb」並創建了一個鏈接,但是它的名字是「bbb.lnk」(而不僅僅是bbb)。所以我查看了我試圖「拉」到的存儲庫的.hg/store,並且有一個名爲「lock.lnk」的文件。那麼,有沒有辦法告訴mercurial鏈接名稱後綴爲.lnk? – 2011-03-03 03:54:00