【问题标题】:how to merge changes with Bazaar explorer如何与 Bazaar explorer 合并更改
【发布时间】:2010-02-09 07:17:59
【问题描述】:

所以,我才刚刚开始使用 Bazaar。我使用 Bazaar explorer for Windows 作为 GUI。

我可以看到如何通过电子邮件发送我的更改,但我不知道一旦我有了更改文件该怎么办。更改文件放在哪里,如何将更改合并到 Trunk 中?

如果我选择合并,然后包含更改文件的文件夹我会收到一条错误消息,指出我选择的文件夹不是分支。拉取更改的工作方式相同。如果我将更改文件与分支一起放入,那将无济于事。我相信这很简单。

谢谢

澄清:

我不是在谈论压缩整个项目、通过电子邮件发送压缩文件、解包和合并。我说的是这里提到的导出功能:

http://doc.bazaar.canonical.com/explorer/en/visual-tour-windows.html#export

也许我误解了导出功能的目的。

现在我倾向于为项目中的任何人设置 VPN,以便我们可以更直接地工作。

【问题讨论】:

  • 您需要通过电子邮件发送更改吗?如果您对两个分支都有写访问权限,则可以更简单地执行此操作。我没有使用更改功能的电子邮件发送功能,但我可能会帮助“正常”合并。

标签: version-control bazaar


【解决方案1】:

即使您无法让电子邮件工作流程顺利进行,我认为您也不需要 VPN。听起来您可以设置一个 SFTP 服务器,授予每个用户对他们自己的存储库的写入权限,并授予他们对其他所有人的存储库的读取权限。然后你可以推送或提交到你自己的分支,并从其他人的分支中拉取、更新或合并。

如果设置方法不明显,我建议您在Launchpad 上设置一个帐户来玩转分支和合并。在您和您的一些团队成员在 Launchpad 上完成一个小演示项目之后,设置自己的服务器可能会更容易。

如果有帮助,这里有一个关于开源项目的summary of my Bazaar workflow。它涵盖了设置分支、合并更改和创建合并提案。

【讨论】:

    【解决方案2】:

    正如bug #86420 中所解释的,有多种方法可以使位置不是分支,例如:

    • 没有.bzr目录
    • .bzr 目录存在,但没有 .bzr/branch 目录

    如果 Bazaar 能准确解释为什么它不将某个位置视为一个分支,那将很有帮助,因为这既可以向用户解释正在发生的事情(以及下一步在哪里进行进一步诊断),也因为它提出了建议一种可能的补救措施更容易。

    特别是,它可以帮助bug #86402 改善用户反馈并使系统更容易向用户建议适当的补救措施。

    对于存在.bzr 目录但其中没有分支的情况,错误文本可能应该建议用户尝试“bzr info”以了解该目录包含的内容。

    您确实有一个从emailed change file here 合并的示例。 (命令行版本)

    # USER 1
    bzr init-repository project
    bzr init project/user2
    bzr branch project/user2 project/user1
    
    # USER 2
    bzr init-repository project
    bzr init project/user1
    bzr branch project/user1 project/user2
    
    # USER 1
    cd project/user1
    <do some work>
    bzr commit -m "feature foo"
    bzr send -o ../foo.patch # email the feature foo as it compares to the 'user2' branch
    
    # USER 2
    cd project/user2
    bzr commit -m "feature bar"
    bzr send -o ../bar.patch # email to USER 1
    cd ../user1
    bzr pull ../foo.patch
    cd ../user2
    bzr merge ../user1
    bzr commit -m "Merge foo"
    
    # USER 1
    cd project/user2
    bzr pull ../bar.patch
    cd ../user1
    bzr merge ../user2
    ...
    

    基本上,这个想法是您有 1 个分支,您明确地将其标记为其他用户的工作。当他们向您发送新的合并指令时,您进入他们的分支副本,并使用“bzr pull”。此时,您的本地分支应该是其远程分支的精确镜像。然后,您可以根据需要在自己的工作分支中执行“bzr merge”。

    我以“bzr branch user1 user2”开头的原因只是为了设置“bzr send”的默认目标。你可以第一次做“bzr send -o XXX ../userX”,我相信从那时起就记住了。

    此外,如果您只想启动附带补丁的电子邮件程序,则不必使用“-o XXX”。 (我认为在这种情况下您需要设置--mail-to。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-04
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      • 1970-01-01
      相关资源
      最近更新 更多