如何用mercurial“恢复”未更改的文件?

时间:2010-06-14 16:02:06

标签: version-control mercurial

我已经在我的计算机上安装了Windows7,我不得不更改所有权限/取得所有权 - 这显然“触及”了我的所有文件,现在一切似乎都被“修改”了(当我做“hg status”时),但只有一些文件有实际的变化。

是否有一个命令我可以运行,以便“提交”或“恢复”所有没有实际更改的文件(即文本未更改,即使文件属性已更改)。

加入:

我已经从WinXP升级到Win7。我实际上并没有“复制”任何东西,磁盘上的存储库是相同的....它只是改变了Windows。升级后,我无法访问某些文件,我需要“取得所有权”才能重新获得访问权限(不知何故,用户权限未得到妥善保存)。这是我得到的:

$ hg stat 
../../test/acceptance/spidermonkey/js1_5/String/regress-179068.as M      
$ hg diff ../../test/acceptance/spidermonkey/js1_5/String/regress-179068.as

2 个答案:

答案 0 :(得分:3)

我认为您未能正确复制存储库.hg

$ hg stat primes.py         # nothing, file is checked in
$ touch primes.py
$ hg stat                   # still nothing
$ sudo chown bin primes.py
$ hg stat                   # nothing, the chown didn't make hg care

您应该hg clone存储库并从那里开始工作。

添加:呃,hg verifyhg summary的输出可能对您有用(如果您仍然感到困惑,也会在此处发布)。我担心你的存储库,并希望你有一个备份(或幸运,真的只需要“提示”)。

答案 1 :(得分:2)

这也发生在我身上! 我这样修好了......

  1. 克隆存储库hg path/to/clone original path/to/clone
  2. 在克隆上运行hg update -C /path/to/clone以确保它是干净的。
  3. 运行kdiff3 path/to/original path/to/clone
  4. 取消选中“显示相同文件”
  5. 选择要同步的文件或文件夹(不要同步.hg文件夹)
  6. CTRL-1 选择版本A
  7. F6 进行同步
  8. 根据需要重复步骤5-7
  9. 清洁原件。处理克隆,提交和推送。

    清洁原件,然后运行kdiff3 path/to/clone path/to/original