【问题标题】:Copy Mercurial repository with uncommitted changes复制带有未提交更改的 Mercurial 存储库
【发布时间】:2011-06-25 12:36:20
【问题描述】:

我的 wokstation 上有一个 mercurial 存储库 a bitbucket.org 和一个克隆。克隆中有一些未提交的(未捕获的)工作。我必须将这些克隆复制到我的笔记本电脑上,因为我将出差一到两周并想做一些工作。

是否有一种简单且保存的方法将存储库及其未提交的更改复制到另一台设备?我知道我可以将 repo 从工作站克隆到我的笔记本电脑,但这不会复制未提交的工作。

【问题讨论】:

标签: mercurial


【解决方案1】:

只需复制整个存储库的文件夹。

【讨论】:

    【解决方案2】:

    只需提交该工作即可。需要完成才能提交的工作是剩余的 CVS/SVN 思维。提交它,然后更新到它的父级并处理你想要处理的任何其他事情。当最终工作完成时,您推送的是一个变更组而不是单个变更集,因此没有人会在这些插页式变更集结束时进入反编译阶段。

    避免在 Mercurial 中提交工作(使用搁置、阁楼、复制仓库等)是失去工作的唯一方法——避免它。

    【讨论】:

    • +1。我们需要用 Mercurial 改变我们的思维方式。我还可以补充一点,如果您不想将一系列未完成工作的变更集推送给其他人,您可以随时查看折叠扩展(或变基扩展)以将多个中间提交合并为一个...跨度>
    【解决方案3】:

    我更喜欢我的第一个答案(提交它),但如果您确实不能让自己提交未完成的工作,那么您应该使用 Mercurial Queues 和位于其自己的存储库中的补丁队列。这很容易做到:

    hg qinit --create-repo
    

    然后您将未提交的更改作为补丁导入:

    hg qnew --force name-for-this-work
    

    那么你可以:

    hg qcommit -m "work in progress"
    

    然后,您可以qclone 该存储库并获取正在进行的工作和覆盖它的基础存储库。更多详细信息,请访问in the Mercurial book's chapter on queues

    不过,真的,永远不会有充分的理由让未提交的工作超过一两个小时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多