我正在努力如何正確使用TortoiseHg跟蹤嵌套的存儲庫。使用Mercurial/TortoiseHg處理嵌套Hg庫的正確方法是什麼?
我有一個主要的存儲庫來跟蹤我的整個項目。這個項目包含了一些存儲在插件/子目錄中的小插件。
我希望獨立地跟蹤每個插件(爲每個插件提交併推送BitBucket),同時仍然能夠對項目進行「整體」提交,包括對插件所做的更改並將其推送到另一個位置(不是BitBucket)。
我到目前爲止所做的是爲我的每個插件創建一個新的回購。我可以輕鬆地將它們推送到BitBucket。但是當我去提交我的「主」存儲庫時,TortoiseHg顯示一條錯誤消息,說abort: path 'mainrepo\\plugins\\plugin1\\plugin1.php' is inside repo 'mainrepo\\plugins\\plugin1'
。
我可以看到我做錯了什麼,但我不知道是什麼。我在WinXP上使用Mercurial和TortoiseHg(ToirtoiseHg版本0.9.3 + 237-ea50f793bbe4和Mercurial-1.4.3 + 225-70dea42c9406)的夜間服務。我讀到了subrepos處理被添加到了這個TortoiseHg版本,但是,我甚至不確定subrepos是我應該在這裏使用的功能。
更新
我已經取得了一些進展,但仍然無法得到它的工作我想的方式。
這裏是我的結構:這裏
-- .hg
-- core
-- app
-- file.php
-- file.css
-- plugins
-- plugin1
-- file1.php
-- plugin2
-- file2.php
我去應用/插件,並克隆插件(名爲plugin3)從到位桶。然後,我在根目錄下創建了一個.hgsub文件,並在其中添加了app/plugins/plugin3 = app/plugins/plugin3
。 我然後能夠提交我的整個目錄。
但是我試圖從BitBucket獲取最新版本的plugin1,所以我去了app/plugins,刪除了plugin1 /文件夾並從BitBucket中克隆了plugin1。然後我加入app/plugins/plugin1 = app/plugins/plugin1
到.hgsub但是當我試圖提交它,我與abort: path 'app/plugins/plugin1/file1.php' is inside repo 'app\\plugins\\plugin1'
迎接這個問題似乎是,當我subrepo擁有相同的名字已經被汞在plugins /目錄跟蹤的目錄火。
我在做什麼錯?我應該添加/編輯東西在我的插件的.hg特殊?
更新
我終於設法讓它按我想要的方式工作。
我不得不爲「手動」告訴水銀刪除插件/ plugin1,插件/ plugin2目錄,提交更改,然後從到位桶克隆回plugin1和plugin2,加app/plugins/plugin1 = app/plugins/plugin1
到.hgsub並提交所有。有效。
重要步驟已經刪除的plugin1/plugin2文件夾後提交。
從文檔,以'.hgsub'是行「第一個‘套’是我們的工作目錄的路徑,第二個是一個URL或路徑從拉」:所以你不應該把' app/plugins/plugin3 = app/plugins/plugin3「,而是app/plugins/plugin3 = plugin3的bitbucket url。同上plugin1 – VonC 2010-03-04 05:07:25
我試過用'http:// bitbucket.org/username/plugin3 /','https:// username @ bitbucket.org/username/plugin3 /'甚至是'ssh:// hg @ bitbucket.org/username/plugin3'作爲url,但仍然有相同的中止消息。我已經從命令行直接嘗試了,結果是一樣的。 – pixelastic 2010-03-04 11:38:24
抱歉沒有回覆您的最新評論,但除非您的評論以'@VonC'開頭,否則我將不會收到通知。請參閱http://blog.stackoverflow.com/2010/01/new-improved-comments-with-reply/(「評論@用戶名通知」部分) – VonC 2010-03-04 14:29:45