我们最近在我们的存储库中创建了一个目录的hg副本.我们以为是
做一些像cp -a和hg这样的添加,也许标志不定
这个文件已经从repo中的另一个文件复制了(所以hg
注释显示原始提交者).但现在似乎是hg
复制品比这更多或不同的东西.我找不到
很多关于复制的工作原理.所以:

>什么是hg副本做什么和什么特殊待遇这样做
在未来的原因?
>如果事实证明对我们的情况做“错误的事情(tm)”,我该怎么办?
将文件取消标记为另一个文件的副本?

(这个问题在Mercurial邮件列表中被询问,你可能也想要follow the original thread)

解决方法

  • What exactly does hg copy do and what special treatment does this
    cause in the future?

它添加新文件并将其标记为旧文件的副本.因为它们是副本,原始文件中的更改将被合并到副本中.时间从左到右:

(init) --- (edit a.txt) ---- (a.txt edit is copied to b.txt)
      \                     /
       (hg copy a.txt b.txt)
  • If it turns out to do ‘the wrong thing(tm)’ for our case,how do I
    unflag the file as beeing a copy of another file?

这种机制只有在合并时才会开始.如果b.txt不存在
共同的祖先修订版(上图中的init),然后Mercurial将会
进行向后搜索以查看b.txt是否从其他地方复制.

让我们以缩写形式继续上述图表:

(i) -- (edit a) -- (a edit copied to b) -- (edit a) -- (merge)
   \              /                                   /
    (copy a b) --/------- (edit b) ------------------/

问题是最终合并是如何完成的.共同的祖先点
现在是复制一个b节点,这里a和b都存在.意即
那没有任何搜索副本!所以第二个编辑一个wont
合并成b.

要仔细检查,我试过了:

$hg init
$echo a > a
$hg add a
$hg commit -m init
$hg copy a b
$hg commit -m "copy a b"

这是副本,b现在包含一个.

$hg update 0
0 files updated,0 files merged,1 files removed,0 files unresolved
$echo aa >> a
$hg commit -m "edit a"
created a new head
$hg merge
merging a and b to b
0 files updated,1 files merged,0 files removed,0 files unresolved
(branch merge,don't forget to commit)
$hg commit -m "a edit copied to b"

这是第一个合并,编辑到a已被复制到b:

$cat b
a
aa

我们现在并行进行更改:

$echo aaa >> a
$hg commit -m "edit a again"
$hg update 3
1 files updated,0 files unresolved
$echo bbb >> b
$hg commit -m "edit b"
created new head
$hg merge
1 files updated,don't forget to commit)

没有进一步的复制:

$cat a
a
aa
aaa
$cat b
a
aa
bbb

至于禁用这个…你不能真正地明确禁用副本
检测.但是,正如我希望以上说明的那样,它不会“打扰”你
第一次合并后再次.

如果第一个合并是一个问题,那么可以使用hg resolve –tool
内部:本地将文件重新设置为您的状态
开始合并所以

$hg resolve --tool internal:local b

我们可以把b带回来只包含一行.

版本控制 – 什么是hg copy?的更多相关文章

  1. ios – 在Swift中获取Cocoa Touch Framework项目版本字符串

    有谁知道这是否是我的项目设置中的缺陷,Xcode中的一个错误,或者是否有一种方法可以将Swift中的框架版本作为String或数组获取,这样我可以提供比major.minor更精细的版本控制?

  2. iOS故事板 – 实践经验re:多个开发者?

    故事板似乎是处理iOS中多个视图控制器以及它们之间转换的优雅方式.但是,出于对多个开发人员对同一故事板文件中的视图控制器进行更改以及可能导致的合并冲突而发生的情况的考虑,我一直避免使用它们.在中等复杂度的生产应用程序中,有没有人有这方面的实际经验?您的评估是什么–在这方面是否为“黄金时间”准备好了故事板?

  3. Xcode 4.5自动更改.xib文件

    由于我升级到Xcode4.5,我发现它会自动删除我访问的每个xib文件的一部分.这是一节:我几乎可以这样生活,但是当我再次访问该文件时,我发现还有更多的“自动”更改.他们变得更加多样,难以表征,所以我不会包括例子,除非我真的需要.我不明白这里发生了什么.我正在寻找两个答案之一:>有没有办法禁用这个?>为什么会发生这种情况,有没有办法强制Xcode将这些更改应用于所有xib文件,以便我可以做到这一点?

  4. Xcode 4和版本控制 – 但是哪一个?

    >使用Xcode集成版本控制,组织者,克隆,从xcode等提交.我的意思是完全或几乎被Xcode控制?>忽略Xcode让他认为没有版本控制,并在命令行自己做?>上述两个合并?Github是非常受欢迎和强大的,但你必须学习git,并学习很难.>Mercurial?看起来比较友善>还有什么?对有经验的人有一些反馈意见是无价的,所以我和许多其他人希望在面对VCS墙时可以选择自己的路径:-)非常感谢!!!.我建议一些git开头阅读:>Gitinfiveminutes>GitCommunityBook>TheThi

  5. Android studio 去除版本控制教程

    这篇文章主要介绍了Android studio 去除版本控制教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  6. 简单谈谈node.js 版本控制 nvm和 n

    大量开发者的贡献使Node版本的迭代速度很快,版本很多(横跨0.6到0.11),所以升级Node版本就成为了一个问题。目前有n和nvm这两个工具可以对Node进行无痛升级,本文简单介绍一下二者的使用。

  7. Maven属性与版本管理详细步骤分解

    这篇文章主要介绍了Maven中关于属性与版本控制管理的步骤操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  8. 什么是Windows最佳的VCS解决方案?

    我的代码基础变得越来越大,很难使用目录来组织所有不同的分支,我想知道在Windows上,对于我自己的个人用途来说,什么是一个体面的版本控制系统?

  9. windows – 实时版本控制软件

    传统版本控制软件并不缺乏,但我正在寻找一些不需要我不断提交的东西.换句话说,我正在搜索自动保存目录中所有文件历史记录的后台软件.如果可能的话,我还希望自己能够在以后的基准测试中添加提交注释.我不关心解决方案是否是我自己托管的网络服务或本地服务,只要它是免费的或有合理的一次性费用(请不要订阅).性能和硬盘使用率不是问题.我希望我对我的要求不太具体.我在网上搜索了解决方案,但我找不到任何能满足我想要的

  10. centos – 使用Puppet管理第三方/定制软件的最佳方式?

    人们通常如何使用Puppet管理自定义编译/重新打包的第三方软件?Puppet并不是真的设计用于分发大文件,所以你应该在带外进行.最好的方法是将自定义/第三方软件打包为RPM并托管您自己的RPM存储库.理想情况下,RPM打包应受版本控制,并且RPM存储库备份或托管在多台计算机上.

随机推荐

  1. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  2. python数学建模之三大模型与十大常用算法详情

    这篇文章主要介绍了python数学建模之三大模型与十大常用算法详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感想取得小伙伴可以参考一下

  3. Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  4. 使用pyinstaller打包.exe文件的详细教程

    PyInstaller是一个跨平台的Python应用打包工具,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,下面这篇文章主要给大家介绍了关于使用pyinstaller打包.exe文件的相关资料,需要的朋友可以参考下

  5. 基于Python实现射击小游戏的制作

    这篇文章主要介绍了如何利用Python制作一个自己专属的第一人称射击小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试

  6. Python list append方法之给列表追加元素

    这篇文章主要介绍了Python list append方法如何给列表追加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. Pytest+Request+Allure+Jenkins实现接口自动化

    这篇文章介绍了Pytest+Request+Allure+Jenkins实现接口自动化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. 利用python实现简单的情感分析实例教程

    商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地,下面这篇文章主要给大家介绍了关于利用python实现简单的情感分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  9. 利用Python上传日志并监控告警的方法详解

    这篇文章将详细为大家介绍如何通过阿里云日志服务搭建一套通过Python上传日志、配置日志告警的监控服务,感兴趣的小伙伴可以了解一下

  10. Pycharm中运行程序在Python console中执行,不是直接Run问题

    这篇文章主要介绍了Pycharm中运行程序在Python console中执行,不是直接Run问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

返回
顶部