【问题标题】:Mercurial overwrite a tracked file with an untracked fileMercurial 用未跟踪的文件覆盖跟踪的文件
【发布时间】:2018-03-23 14:38:55
【问题描述】:

我有一个跟踪的数据文件,我想用更新的(当前未跟踪的)版本覆盖它

如何在不破坏历史的情况下在 mercurial 中实现这一目标?

我可以覆盖原始文件,只要文件名保持不变,一切都应该没问题吗?

【问题讨论】:

    标签: mercurial dvcs


    【解决方案1】:

    覆盖效果很好。唯一的问题是 mercurial 认为您已经对现有文件进行了更改。

    如果新文件确实与原始文件无关,最好的方法是完全删除该文件(hg rm 文件名)并提交删除,然后创建具有相同名称的文件并将其添加到 repo(hg添加文件名),以便用户清楚地知道原始文件已被删除,然后创建了一个新文件。

    hg rm filename
    hg commit -m "Removed filename"
    echo "New file contents" > filename
    hg add filename
    hg commit -m "New version of filename"
    

    当你说

    hg log filename
    

    无论如何都会保留文件的整个历史记录,并且用户清楚地知道旧文件已被删除并添加了新文件。

    【讨论】:

    • 太好了。新文件与旧文件密切相关,所以我认为只是覆盖就是答案。但如果两个文件完全不同,请记住该方法..
    • 刚刚在覆盖后检查了日志,正如您所描述的那样,即历史不受影响 - 所以一切都很好
    猜你喜欢
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    相关资源
    最近更新 更多