Mercurial hg:在一次更改中替换目录内容

Mercurial hg:在一次更改中替换目录内容,mercurial,Mercurial,使用hg,如何在一次更改中替换目录的内容 更具体地说,我有一个标题,用于检查我的RePO中的一个大C++库,我想更新它们,包括添加和删除文件到最新版本的库。我希望在一次更改中做到这一点,而不是先删除旧版本,然后添加新版本,这将破坏测试并产生无用的差异。如果它们都更改了,则假设采用平面目录结构: hg remove \path\to\directory\to\replace\*.h copy \path\to\new\files\*.* \path\to\directory\to\replace\

使用hg,如何在一次更改中替换目录的内容


更具体地说,我有一个标题,用于检查我的RePO中的一个大C++库,我想更新它们,包括添加和删除文件到最新版本的库。我希望在一次更改中做到这一点,而不是先删除旧版本,然后添加新版本,这将破坏测试并产生无用的差异。

如果它们都更改了,则假设采用平面目录结构:

hg remove \path\to\directory\to\replace\*.h
copy \path\to\new\files\*.* \path\to\directory\to\replace\
hg add \path\to\directory\to\replace\*.*
hg commit -m "Library SoAndSo headers replaced"
hg push
第一行表示忘记下一次提交时的所有文件,但新文件将添加到同一次提交中-请记住,只有最后一行实际更改了存储库的本地副本,并且它仅在最后一行公开


如果您确实有子目录,则只需删除第一行上的*.h,使用xcopy或explorer将新目录结构复制到位,并删除第三行上的*.h。

如果它们都已更改,则假定为平面目录结构:

hg remove \path\to\directory\to\replace\*.h
copy \path\to\new\files\*.* \path\to\directory\to\replace\
hg add \path\to\directory\to\replace\*.*
hg commit -m "Library SoAndSo headers replaced"
hg push
第一行表示忘记下一次提交时的所有文件,但新文件将添加到同一次提交中-请记住,只有最后一行实际更改了存储库的本地副本,并且它仅在最后一行公开

如果您确实有子目录,则只需删除第一行的*.h,使用xcopy或explorer将新目录结构复制到位,并删除第三行的*.h。

在mercurial repo中: 更新:

更改为在父目录上工作,因为供应商目录中的hg rm*未命中点文件(如果有)。 从hgrm改为rm-rf,因为我错误地认为在rm之后addremove会做正确的事情。提示:没有。 意识到默认的100%相似性不适用于供应商版本。 在您的mercurial回购协议中: 更新:

更改为在父目录上工作,因为供应商目录中的hg rm*未命中点文件(如果有)。 从hgrm改为rm-rf,因为我错误地认为在rm之后addremove会做正确的事情。提示:没有。 意识到默认的100%相似性不适用于供应商版本。
你的意思是:hg add\path\to\directory\to\replace\?@Taylor Oops!是-将修复。确定,并且头文件dir有子目录。这是怎么改变的?你的意思是:hg add\path\to\directory\to\replace\?@Taylor Oops!是-将修复。确定,并且头文件dir有子目录。这会改变什么?你确定需要hg rm吗?它似乎只会在提交中添加文件。当我省略它时,我会添加、更改和删除文件。我同意。我认为不需要hgrm命令。只是hg commit命令中的-addremove参数。你们是对的。我回去测试了一下,addremove在hg rm之后并没有像我想象的那样工作。没有相似性的纯addremove将打破供应商文件的历史记录,这取决于。。。对于非大型文件,我通常从70-80开始,但是在单独的addremove命令中使用-n的测试结果您确定需要HGRM吗?它似乎只会在提交中添加文件。当我省略它时,我会添加、更改和删除文件。我同意。我认为不需要hgrm命令。只是hg commit命令中的-addremove参数。你们是对的。我回去测试了一下,addremove在hg rm之后并没有像我想象的那样工作。没有相似性的纯addremove将打破供应商文件的历史记录,这取决于。。。对于非大型文件,我通常从70-80开始,但在单独的addremove命令中使用-n测试结果