我一直在努力掌握使用Mercurial跟蹤對本地Galaxy實例所做的更改。在投入生產之前,我有一臺測試服務器(本地筆記本電腦)和一臺開發服務器(集羣)來測試所有東西。我從開發推動到bitbucket回購,並從bitbucket拉到我的測試服務器。現在我試圖讓東西走向另一個方向。 我使用Eclipse Mercurial插件從測試推送到了bb。現在,我嘗試從開發如下:Mercurial更新似乎覆蓋本地文件
hg pull
hg update
hg resolve --all
emacs .hgignore
hg resolve -m .hgignore
hg commit -m 'Helpful and informative message'
我想,這將合併我已經開發服務器在我的當前工作目錄上測試所做的更改。我開始從開發人員那裏工作,但很明顯,開發中的一些文件被更新完全覆蓋。我慌了,並試圖擺脫它:
hg heads
hg rollback
hg incoming
hg heads
hg status
hg incoming
hg pull
我真的不知道該怎麼在這種情況下做的,因爲我不希望以這樣的方式,這將是剝離或拉的退出記錄或移除我在測試服務器上所做的所有艱苦工作,當我從開發人員推送到bb時。我嘗試再次拉動:
hg update -C bf3924ee142c
#Revert to a clean copy of my last working code
146 files updated, 0 files merged, 0 files removed, 0 files unresolved
less job_conf.xml
#This is my most recent local copy and it looks correct
hg merge 6dc34fa
abort: nothing to merge (use 'hg update' or check 'hg heads')
hg update 6dc34fa
201 files updated, 0 files merged, 15 files removed, 0 files unresolved
less job_conf.xml
#Entirely replaced by the remote copy
它重現相同的行爲,我的本地副本完全丟失。我嘗試從我的測試服務器上跟蹤文件中刪除文件,並推送到BB,然後拉到開發,但文件被完全刪除在開發。 每次安裝軟件時,必須對此job_conf.xml文件進行不同的設置,因此在我將其設置在測試服務器上時,我更改了該文件。我可能刪除了它,然後從job_conf.xml.sample文件中複製它(將其重命名爲job_conf.xml) - 我不確定這是否會導致問題。
我希望對此行爲有任何建議/啓示!
我注意到你的第一部分命令中沒有'hg merge'。這是剪切和粘貼錯誤? 'hg pull'後的'hg heads'的輸出是什麼?在這一點上你應該有兩個頭(至少)。什麼是6dc34fa?根據上面的輸出,它似乎不是一個單獨的頭部。 –
不是一個錯字 - 我沒有合併,然後(我認爲它說我更新後,更新)。我不記得當時的頭部輸出是什麼,但現在看來我只有一個。 6dc34fa是在BB提示之前的變更集 - 在我從追蹤中刪除文件之前。 – user1885897
當你做拉時你有沒有修改任何文件?我不明白你爲什麼要做'hg resolve'命令。通常,只有在合併時發生衝突時纔會這樣做。 –