Mercurial如何对文件进行修改?

问题描述:

Mercurial如何对文件进行修改?Mercurial如何对文件进行修改?

我问的原因是因为当我运行hg status它告诉我几个文件被修改。 但是,当我运行hg diff时,没有更改报告。

我有一个理论,因为为什么发生这种情况:(但我不积极

我使用已Mercurial的支持内置在NetBeans当我编辑一个文件,它显示了它作为修饰,尽管如果我撤销(而不是恢复)这些更改并保存它,NetBeans告诉我没有本地更改。所以我猜测NetBeans使用差异检查修改,而Mercurial使用其他类似修改日期

这是正确的还是别的原因?

Mercurial不使用修改日期来确定状态。这可以用一个简单的实验来验证:

hg init 
echo "This is a test" > test.txt 
hg commit -Am "commit" 
touch test.txt 
hg status 

其执行状态检查是在dirstate.py的代码。如果dirstate是不确定文件的状态(例如,因为只有修改时间不同,那么它传递高达localrepo.status作进一步分析可见here

hg help status文本有一些线索,可以帮助:

状态可能会出现如果权限已更改或 合并已经发生,标准的差异 格式不报告权限 变化和差异只报告改变 相对于一个合并母公司与 差异不同意。

当您运行hg diff时,是否指定了任何命令行选项?

+0

我单独试过'hg diff',我试过'hg diff '这就是所有。 – 2011-05-18 18:58:09

+0

@John尝试差异 - git,也许这是权限更改。 – tonfa 2011-05-18 20:16:40

文件的权限是否可以更改?试试hg diff --git,它显示了支持权限和二进制文件的git风格扩展差异。默认情况下,hg diff仅显示面板友好的差异,它们不显示权限更改。