2

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

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

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

谢谢

澄清:

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

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

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

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

4

2 回答 2

1

错误 #86420中所述,有多种方法可以使位置不是分支,例如:

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

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

特别是,它可以通过改善用户反馈并让系统轻松向用户建议适当的补救措施来帮助解决错误 #86402 。

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

您在此处确实有一个从通过电子邮件发送的更改文件合并的示例。(命令行版本)

# 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在这种情况下进行设置。)

于 2010-02-09T07:32:52.720 回答
1

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

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

如果有帮助,这里是我在一个开源项目上的Bazaar 工作流程的总结。它涵盖了设置分支、合并更改和创建合并提案。

于 2010-03-08T20:39:49.593 回答