我试图查看项目的两个版本之间的差异。我最初的想法是这样做的:
hg diff
两个版本这不起作用,因为当第二个版本覆盖了第一个版本时,Mercurial假设每个文件都被更改了。实际上只有少数文件被更改,我想看看每个文件中具体改变了什么。
WinDiff给我一个已更改的文件列表,但就是这样,所以我真的想用Hg来获取具体信息。
编辑:我正在使用Eclipse。我具体做的是创建一个新的Java项目,使用Eclipse的导入功能导入我想要的源文件,然后将该项目提交到我的存储库。然后我再次使用import将版本2导入到同一个项目中,以便覆盖第一个文件。我留下的文件名称相同但是版本2文件。然后我将新文件提交到存储库。
我的Mercurial版本是1.8.3。执行上述步骤只给我一个变更集。
另外,在创建diff时,有一种方法可以指定只区分Java文件,而不是文本或属性等吗?
答案 0 :(得分:1)
您的程序合理,只需记住使用hg addremove
,就像评论中指出的Lasse一样。所以完整的程序是:
hg add
和hg commit
.hg
hg addremove
和hg commit
hg diff
两个版本 hg addremove
步骤甚至会检测在两个版本之间重命名的文件。你也写道:
另外,在创建diff的时候,有一种方法可以指定只扩散java文件,而不是文本或属性等吗?
是的,您可以使用--include
标志:
$ hg diff -I '**.java'
答案 1 :(得分:0)
我不明白为什么你不能直接在项目的原始存储库中使用Mercurial。
要查看项目的REV1和REV2之间对Java文件的更改:
hg diff -r REV1 -r REV2 -I **.java
答案 2 :(得分:0)
在eclipse中区分两个版本的文件: