2009-07-21 28 views
2

我正在使用Mercurial,我試圖將更改合併到我的主庫中。我的主要庫中的一些文件是寫保護的。這會使hg merge命令失敗,並顯示abort: Access is denied如何讓mercurial生成將受合併影響的文件列表?

我想讓那些受合併影響的文件可寫,只有那些文件(不是整個回購)。有沒有辦法讓Mercurial打印出需要解決的文件列表?

(PS。他們寫的,因爲它們是由Perforce的控制。這種扭曲設置的原因是太愚蠢在這裏敘述。)

回答

1

我不知道任何內置的方式做這很容易......這不是一個非常普遍的需求。幾乎肯定可以寫入擴展名以將--dry-run選項添加到hg merge,非常類似於hg revert--dry-run選項。

如果你只是想快速和骯髒的東西,也許這樣的事情會工作?

hg merge -Pv | grep files | sed -e's/files:\s*//' -e's/\s/\n/g' | sort | uniq 

這假定您沒有與名稱中有空格或其他任何東西完全合理的一樣,任何文件...

+0

幸運的是,我沒有空格的文件名,所以這工作很好!謝謝! – 2009-07-21 20:46:27

3

一個更好的辦法來做到這一點是hg --config ui.merge=internal:fail merge,這將 產生摘要像這樣:

hg --config ui.merge=internal:fail merge 

[...] 

1 files updated, 0 files merged, 0 files removed, 1 files unresolved 

然後使用hg update -C .恢復您的工作區。

相關問題