1
我需要控制通過SMB共享訪問的幾個文件的版本。這些文件將由幾個人修改。這些文件本身直接由Web服務器使用。mercurial:如何在沒有服務器的情況下更新生產文件(編輯:解決方法+非MS Windows解決方案)
由於這些是生產文件,我想強制用戶拉本地副本,編輯它們,提交併將它們推回。不幸的是,該機器上沒有Mercurial服務器。
什麼是適當的方式,在我身邊配置水銀,因此:
- 的版本(.hg目錄)保持在每股
- 和共享上的文件是在最新版本?
我沒有訪問此服務器(通過共享除外)。如果我可以在該機器上安裝一個mercurial服務器,我會使用一個鉤子來更新生產目錄中的文件(我只是想強調我想實現的目標 - 這種方法是不可能的,因爲我不控制該服務器)
謝謝!
更新:我結束了使用中間服務器(我有控制權)。在changegroup
鉤觸發腳本hg update
有新鮮的本地文件II其中I))它們複製到SMB共享
編輯1在評論與alex討論之後我看過的詳細的版本命令行輸出。 \\srv\hg\test1
回購有一個[hooks]
部分changegroup = hg update
。從hg push -v
輸出給出了一些見解:
pushing to \\srv\hg\test1
query 1; heads
(...)
updating the branch cache
running hook changegroup: hg update
'\\srv\hg\test1'
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported. Defaulting to Windows directory.
abort: no repository found in 'C:\Windows' (.hg not found)!
warning: changegroup hook exited with status 255
checking for updated bookmarks
listing keys for "bookmarks"
如果我理解正確以上的輸出:
- 一個CMD.EXE被觸發時,客戶端上,即使
[hook]
是接收服務器 上
- 它試圖更新遠程回購
- ...但失敗了,因爲UNC不支持
所以alex的回答是正確的 - 它只是在MS Windows上無法運行(還沒有?)。 (亞歷克斯請糾正我的意見,如果我錯了)