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