我已经和bzr(bazaar vcs)工作了一段时间,并决定将一些应用程序重新堆叠在核心干线上(以帮助保存历史资源)。
对于已发布的网络应用,包含的工作流程
bzr push bzr-ssh://<server>/var/www/<remote-branch-name>
然后在服务器上bzr checkout
获取工作树。
使用这种新的堆叠范例,我当然希望将堆叠分支推送到服务器,并且有一个工作树可以服务,但这似乎不可能?
bzr push --stacked -d <branch> <remote>
很乐意在服务器上创建一个新的堆叠分支,但是,从服务器:
bzr info
显示没有父母bzr checkout
会导致 bzr:错误:不是分支 网络,没有工作树:|
最终,我刚刚删除了新的远程分支,然后返回并省略了--stacked
。
还在想我是否错过了什么?
答案 0 :(得分:1)
我将解释堆叠的分支,但在下面我建议您使用共享存储库。
&#34; bzr info&#34;无关紧要。显示父母。它需要显示一个堆叠的分支。
在下面的示例中,&#34;堆叠在&#34;是关键:
bzr info bzr+ssh://teeny/~/bzr
Standalone branch (format: unnamed)
Location:
branch root: bzr+ssh://teeny/~/bzr/
Related branches:
parent branch: bzr
stacked on: http://bazaar.launchpad.net/~abentley/bzr/branches-uncommitted
Bazaar尝试确定要堆叠的分支。它应该作为推送输出的一部分打印出来。
如果出错,可以使用--stack-on覆盖它。请记住,您堆叠的分支必须至少与您正在推送的分支一样公开。
但我建议使用共享存储库,而不是堆叠的分支,以节省空间。它更高效,更便于用户使用。如果Bazaar找到包含目标位置的存储库,它将自动使用共享存储库。例如&#34; bzr init-repo bzr + ssh:/// var / www /&#34;将创建一个共享存储库,该存储库将由/ var / www。
下的所有分支自动使用存在堆叠分支以解决隐私问题。如果/ var / www中的某些分支是私有的,则共享存储库是一种风险,因为它将包含来自这些私有分支的修订。 Launchpad使用堆叠分支的主要原因是Launchpad支持私有分支。堆叠在公共分支上的私有分支可以节省空间,而不会将私有修订泄漏到公共分支中。它默认使用堆叠,因为公共分支在初始推送后可能会变为私有。