2012-03-27 77 views
4

我正在使用Mercurial來讀取和調試一個複雜的項目,並且我的項目修改可以清楚地分爲不同的文件組。例如,如果我修改了四個文件使用hg還原還原Mercurial中的一組文件

src1.cc src1.hh src2.cc src2.hh 

很顯然,我可以將它們劃分成兩個文件組,如組SRC1包括「src1.cc src1.hh」和組SRC2包括「src2.cc src2.hh 」。

我想知道如果我可以通過一個簡單的命令恢復一組文件,如'hg revert group-name-alias',而不是列出組的所有文件名,這是一個可怕的想法,如果我修改了很多文件。

任何幫助真的很感激!

回答

4

不可以。據我所知,Mercurial沒有用於對文件進行分組的機制。

您可以使用別名([alias] revert-group-name = revert src2.cc src2.hh~/.hgrc)做一些欺騙,但別名只能是前綴,並且不能執行變量擴展。

如果您的文件足夠簡單,可以使用shell globbing(hg revert src2*)或shell變量(GROUP_NAME="src2.cc src2.hh",然後hg revert $GROUP_NAME)。

你也可以考慮寫一個小的Mercurial擴展。如果你瞭解Python,他們不會花很長時間(我第一次花了我大約30分鐘)。

4

從我能理解你的使用情況,您可以:在hg revert命令

  1. 使用模式。這意味着您可以運行運行hg revert src1*來恢復所有第一組。

    儘管最有可能的是,你的東西是在子文件夾中,並且非常感謝 ,您可以指定revert命令的父文件夾。

    所以說,你的文件是真的很喜歡:foo/src1.ccfoo/src1.hhbar/src2.ccbar/src2.hh。在這種情況下,假設您位於頂層文件夾中,則可以使用hg revert bar恢復所有 第二組。 如果您已經在bar文件夾中,則可以運行hg revert .

    您可以指定幾種模式。

  2. 如果您的每個「文件組」也是 另一個工作單元(不同的錯誤修復或功能),則使用Mercurial queues。不過,如果所有文件都屬於同一工作單元,這並不是 。

1

如果文件名符合模式,您可以使用這一模式:

hg revert src1* 

hg revert src1*.* 

如果這些文件是在特定目錄,你可以這樣做:

​​

如果目錄超過一層深,你想要得到該目錄及其所有子目錄,你可以使用該版本的那個表揚:

hg revert dir\**\*