集市和工作树"工作树#34;

时间:2017-05-03 18:04:38

标签: bazaar bazaar-plugins

我已经和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

还在想我是否错过了什么?

1 个答案:

答案 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支持私有分支。堆叠在公共分支上的私有分支可以节省空间,而不会将私有修订泄漏到公共分支中。它默认使用堆叠,因为公共分支在初始推送后可能会变为私有。