如何在推送上游前撤销hg cp创建的文件溯源关联?
如何打破Mercurial中
hg cp创建的文件溯源关联 我太懂这种困扰了——用hg cp生成的文件如果后续改动太大,默认的diff会硬把它和源文件做对比,满屏的差异看得人头疼。要在推送上游前打破这个关联,你可以按以下步骤操作:
第一步:确保工作区干净
先运行hg status检查,确保没有未提交的变更。如果有未完成的修改,要么先提交,要么用hg shelve暂存起来,避免操作冲突。第二步:移除文件的追踪关联(保留本地内容)
对每个需要打破关联的目标文件,执行:hg remove --keep target-file这个命令会让Mercurial停止追踪该文件的复制溯源,但不会删除本地的文件内容。
第三步:重新将文件作为新文件添加
接着把刚才移除的文件重新添加到仓库:hg add target-file这一步会让Mercurial把该文件识别为一个全新的独立文件,不再和原来的源文件有复制关联。
第四步:提交变更
最后提交这个修改,备注清楚操作目的:hg commit -m "Break copy tracking link for [target-file], treat as new file"
如果有多个文件需要处理,可以用批量命令(以bash环境为例):
for file in path/to/target-files/*; do hg remove --keep "$file" && hg add "$file" done
这样操作后,后续查看diff时,这些文件就会以独立文件的形式展示差异,不会再和源文件做对比了。推送上游后,仓库的其他用户也会看到这个变更,不会再受到旧的复制关联影响。
内容的提问来源于stack exchange,提问作者Alan Krueger
相关产品推荐
相关产品推荐

