所以,我刚刚开始使用Bazaar。我正在使用Bazaar explorer for Windows作为GUI。
我可以看到如何通过电子邮件发送更改,但是一旦我拥有了更改文件,我就不知道如何处理。我在哪里放置更改文件,如何将更改合并到主干?
如果我选择合并,然后选择包含更改文件的文件夹,我会收到一条错误消息,指出我选择的文件夹不是分支。拉动变化的方式相同。如果我将更改文件放在分支中,则不执行任何操作。我确信这很简单。
由于
澄清:
我不是在谈论压缩整个项目,通过电子邮件发送压缩文件,解压缩和合并。我在谈论这里提到的出口功能:
http://doc.bazaar.canonical.com/explorer/en/visual-tour-windows.html#export
也许我误解了导出功能的目的。
现在我倾向于为项目中的任何人设置VPN,以便我们可以更直接地工作。
答案 0 :(得分:1)
正如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
...
基本上,我们的想法是你有一个分支,你明确标记为另一个用户的工作。当他们向您发送新的合并指令时,您将进入他们的分支副本,并使用“
bzr pull
”。此时,您的本地分支应该是其远程分支的精确镜像。然后根据需要将“bzr merge
”添加到您自己的工作分支中。我以“
bzr branch user1 user2
”开头的原因只是为了获取“bzr send
”设置的默认目标。你可以第一次做“bzr send -o XXX ../userX
”,我相信它会从那里开始记住。此外,如果您只想启动附带补丁的电子邮件程序,则不必使用“
-o XXX
”。 (我认为你需要在这种情况下设置--mail-to
。)
答案 1 :(得分:1)
即使您无法获得电子邮件工作流程,我也认为您不需要VPN。听起来您可以设置SFTP服务器,为每个用户提供对其自己的存储库的写访问权限,并授予他们对其他所有存储库的读取权限。然后,您可以推送或提交到您自己的分支,并从其他所有分支中提取,更新或合并。
如果不明确如何进行设置,我建议您在Launchpad上设置一个帐户来玩分支和合并。在您和您的一些团队成员在Launchpad上运行一个小型演示项目之后,建立自己的服务器可能会更容易。
如果它有用,这里是开源项目的summary of my Bazaar workflow。它包括设置分支,合并更改以及创建合并提议。