2014-09-19 25 views
0

我在創建hg-subrepo到本地hg存儲庫時遇到困難。如何在設置Hg Subrepo時停止解析錯誤?

我創建了一個「核心」存儲庫,我想成爲另一個存儲庫中的子庫。我能夠克隆目標內的「核心」回購,但是當我去創建/簽入.hgsub文件時,我得到一個解析錯誤,導致我無法提交該文件。

PS C:\Temp\subrepo_experiments\target01> hg status 
PS C:\Temp\subrepo_experiments\target01> hg clone C:\Temp\subrepo_experiments\core 
destination directory: core 
updating to branch default 
resolving manifests 
getting core_001.txt 
getting core_002.txt 
getting core_003.txt 
3 files updated, 0 files merged, 0 files removed, 0 files unresolved 
PS C:\Temp\subrepo_experiments\target01> echo core = C:\Temp\subrepo_experiments\core > .hgsub 
PS C:\Temp\subrepo_experiments\target01> hg status 
? .hgsub 
PS C:\Temp\subrepo_experiments\target01> hg add .hgsub 
adding .hgsub 
PS C:\Temp\subrepo_experiments\target01> hg commit 
hg: parse error at .hgsub:1:  ■c o r e 
PS C:\Temp\subrepo_experiments\target01> 

回答

3

無論編輯器,你用來創建.hgsub文件已經建立了一個可憎的。它似乎使用16位UTF-16編碼,並在前面有一個BOM(字節順序標記)。使用創建UTF-8或ASCII文本而沒有BOM的東西,並且您的狀態良好。您可以在輸出中看到這個問題:

hg: parse error at .hgsub:1: ■c o r e 

它告訴你「嘿,還有在每一個字符之間在前面的一塊廢話,然後非打印字符(NUL/0×00在這種情況下)!

+0

PowerShell的回聲說法引起了我的問題! – Nate 2014-09-19 18:11:18

+1

永遠不要相信認爲按鍵是兩個字節的系統。 ;) – 2014-09-19 21:32:32

0

你已經重新閱讀Subrepositories手冊,更好地 - 從Subrepositories「水銀踢開始練習」,

你的錯誤是subrepository右側的不良定義它必須是相對路徑介紹至少第一章。 (到contaner-repository的根目錄)或URL(用於外部subrepo)。

如果芯是subrepo_experiments的子目錄(它是主回購根),然後.hgsub將具有easieast形式

core = core 

這將是與subrepository全功能庫它

重複樣品中從腳啓動

z:\mainrepo>dir /B 
.hg 
subrepo 
.hgsub 
.hgsubstate 
z:\mainrepo>dir subrepo /B 
.hg 
z:\mainrepo>type .hgsub 
subrepo = subrepo 

,只是用於測試

z:\>hg clone mainrepo main-clone -v 
updating to branch default 
resolving manifests 
getting .hgsub 
getting .hgsubstate 
2 files updated, 0 files merged, 0 files removed, 0 files unresolved 

注意:Ry4an逮住第一主要問題,我想念不斷深入