Mercurial hg mv无法移动所有文件

5

这可能是一个简单的问题,但我在常规搜索中没有找到任何有用信息,所以我想在这里问一下。基本上,我正在尝试重新排列我的存储库;例如:

mkdir test
hg mv DirectoryOfStuff test/

Mercurial可以移动大部分内容,但是它会留下一些文件和目录。到目前为止,我还没有看出它移动什么和不移动什么的规律。

有没有什么明显的规则或命令我没注意到?

谢谢!

1个回答

7

hg mv 可以移动已跟踪的文件,但不能移动未被跟踪或未知的文件。

要移动所有内容并仍然记录已跟踪的文件作为移动文件,请使用普通(非-hg)移动命令,然后再使用hg addremove -s 100。 addremove 命令会将您的文件操作作为添加/删除/重命名/移动进行适配。

如果想允许更改文件内容和名称,则可以使用小于 100 的值。


@Macke 所有文件都在仓库中。没有被忽略的,也没有未知的(即未被跟踪)。这就是为什么我不明白为什么它不起作用的原因... - PeterM
@PeterM:奇怪。你是在Windows上运行吗?如果是,大小写可能会有问题?确保没有文件被其他程序打开。另外,更新hg到最新版本是否有帮助? - Macke
@ Macke 我实际上在使用 Mac,但我的版本有点过时。我目前正在使用 1.8.1。我现在正在升级到 1.8.3,但我认为这不会有太大的区别... - PeterM
1
@Macke 看起来你是对的 - 我的 .hginore 文件中有些东西掩盖了它 - 只是现在我很讽刺,如果我删除忽略文件,它会复制更多的东西 - 但不是全部。诅咒 make 在每个目录中创建 .DS_Store 文件... - PeterM
@ Macke 我会因为使用 addremove 而失去文件历史记录吗? - PeterM
@PeterM:历史记录的处理方式与移动操作一样,也就是不会在文件中保存,但是复制的事实会被存储,因此大多数用户界面都能跟踪该复制。这就是Mercurial目前的设计方式。在我看来,这一点 根本不 理想,但希望它将来会得到改善。 - Macke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接