2010-12-14 40 views
4

試圖將文件添加到我的mercurial repo時出現以下錯誤。水銀錯誤。不在根目錄下

abort: /HRTRL/img not under root 

這開始當開發人員在這裏決定無視我們正常的工作流程,並直接更改了生產服務器,而不是讓他們在自己的工作目錄,然後將它們推到測試回購。然後我需要將測試回購與他的更改同步,所以我最終做的只是將他的更改複製到我的工作目錄中,這是當前的,然後推送到中央存儲庫。複製和刪除文件時,我沒有使用mercurial。我現在在我的目錄中有未跟蹤的文件,並且想添加它們以便我可以提交。我結束了上面的錯誤。

這是汞狀態

! HRTRL/css/grid.css 
! HRTRL/css/ie.css 
! HRTRL/css/ie7.css 
! HRTRL/css/jquery.lightbox-0.5.css 
! HRTRL/css/layout.css 
! HRTRL/css/productPages.css 
! HRTRL/css/reset.css 
! HRTRL/css/typography.css 
? HRTRL/img/webheadercenter.jpg 
? HRTRL/img/webheaderleft.jpg 
? HRTRL/img/webheaderright.jpg 
? HRTRL/includes/CallLog/tests/all_tests.php 
? HRTRL/includes/CallLog/views/index.php 
? HRTRL/includes/CallLog/views/styles/style.css 
+0

你試過了:'hg addremove -s 90'?或者爲要添加的每個文件手動執行'hg add X',併爲每個要刪除的文件選擇'hg remove -A X'? – 2010-12-14 21:26:50

+2

你在這裏有符號鏈接嗎?我發現這個:http://mercurial.selenic.com/bts/issue165 – 2010-12-14 21:36:17

回答

2

輸出。如果你想:

  • 所有那些狀態!(文件被跟蹤的資源庫,但丟失的磁盤上),要刪除
  • 所有狀態爲?(文件未知),待添加

然後,你可以簡單地發出以下命令:

hg addremove --similarity 90 

可以,如果你想,放下--similarity 90的一部分,但如果你離開它會嘗試找出如果您已經從一些更名爲添加的文件缺少的。

如果可以,我會嘗試使用TortoiseHg來執行addremove,因爲它也可以執行相似性檢查以查看您是否複製了這些文件,如果這些文件是從現有(並且仍在追蹤)的文件。 addremove --similarity 90部分將僅檢查重命名/移動,而不是副本。


或者,如果你只想要一些文件,你可以手動完成。對於每個文件的狀態爲!,您可以發出以下命令:

hg remove --after X 

其中X是文件的路徑和名稱,例如:

hg remove --after HRTRL/css/grid.css 

,然後爲每個添加你想要的狀態?文件:

hg add X 

例如:

hg add HRTRL/img/webheadercenter.jpg 
+0

謝謝! addremove做了訣竅,但是hg add會產生該根錯誤。 – 2010-12-14 21:45:12