2013-05-28 45 views
9

我試圖在我的Mercurial項目回購項目的依賴關係中設置子庫。但是,當我嘗試提交.hgsub文件我不斷收到此錯誤:Mercurial:Subrepo錯誤 - 「中止:提交新的subrepo [路徑]排除」

abort: commit with new subrepo lib/dependency-dir excluded 

詳情:

在我的項目的Mercurial庫目錄(在頂層),我有一個子目錄,lib/,這將包含我的依賴關係。

碰巧我所有的依賴住在github上,在那裏我已經分叉的每個庫創建,例如,https://github.com/mygithubaccount/forked-dependency

我創建了一個.hgsub文件,並將其添加到庫中(也是在頂層)。它包含諸如以下項(我試過單獨如下隔離每個之一,它似乎沒有任何區別)

lib/dependency-dir = [git]https://github.com/mygithubaccount/forked-dependency.git 

然後我做了以下的,在我的項目庫的工作開始目錄:

$ cd lib 
$ git clone https://github.com/mygithubaccount/forked-dependency.git dependency-dir 
$ cd .. 
$ hg commit .hgsub 
abort: commit with new subrepo lib/dependency-dir excluded 

任何想法我做錯了什麼?

+0

我不相信我曾經有過這樣的工作,但放棄了,而是走上了另一條路線。這裏的所有答案都可能有用,爲時已晚。所以我鼓勵他們所有人,但給卡爾接受,因爲他是最早的迴應。 –

回答

1

我也有這個問題。我不確定它是否符合您的情況,但我試圖將子倉庫添加到新的倉庫。一旦我添加了其他文件並提交它們,我就可以添加帶有subrepos的.hgsub文件並提交它,而不會出現此錯誤。

3

我只是第一個添加文件,然後提交解決了這一問題:

$ hg add .hgsub 
... 
$ hg commit .hgsub 
1

對我來說,問題是git不是我的系統路徑。添加它允許我提交我的git子庫(請注意,我必須重新啓動TortoiseHg工作臺才能獲得更新的系統路徑)。

12

我得到這個工作的唯一方法是不指定.hgsub文件

汞柱提交-m「消息」來提交

+0

謝謝你爲我工作。我首先嚐試了大部分其他建議。我不想提交新的subrepository,因爲它感覺好像不應該在主存儲庫中,儘管我懷疑沒有指定的提交與提交兩者相同。 – Ant

3

我必須同時提交.hgsub,並在同一時間,新subrepository通過在提交命令中顯式選擇它們。我避免了所有的提交,因爲我有其他包含正在進行的工作的文件。

0

當我遇到這個問題時,問題是我在subrepo目錄的路徑中有兩個斜槓。

0

如果subrepo的文件夾名稱與.hgsub文件中的路徑存在大小寫差異,這也會觸發此錯誤消息。

我通過複製具有相同文件夾結構的另一個回購庫中的.hgsub文件來體驗這一點,但新回購文件夾名稱使用標題外殼,而原始回購文件夾中的文件夾全部爲小寫。

更改.hgsub或文件夾名稱本身可以解決問題。