如何导出子文件夹的Bazaar历史记录

时间:2008-09-15 21:12:18

标签: bazaar

我正在编写一个框架以及一个使用该框架的项目。该项目是Bazaar存储库,框架位于项目下方的子文件夹中。

我想给框架一个自己的Bazaar存储库。我该怎么做?

6 个答案:

答案 0 :(得分:6)

您使用split命令:

bzr split sub_folder

这会在子文件夹中创建一个独立的树,您现在可以单独导出和处理它。

答案 1 :(得分:6)

使用快速导入插件(http://bazaar-vcs.org/BzrFastImport):

1)将所有历史记录导出到流:

bzr fast-export BRANCH > full-history.fi

2)过滤历史记录以产生新的流:

bzr fast-import-filter -i subfolder full-history.fi > subfolder.fi

3)仅使用子文件夹重新创建新分支:

bzr init-repo .
bzr fast-import subfolder.fi

答案 2 :(得分:0)

据我所知,没有办法用集市轻松做到这一点。一种可能性是采用原始项目,对其进行分支,然后删除与框架无关的所有内容。然后,您可以将子目录中的文件移动到主目录。这是一件非常繁琐的事,但有可能保留历史。

你最终会得到类似的东西:

branch project:
.. other files.. 
framework/a.file
framework/b.file
framework/c.file

branch framework: 
a.file
b.file
c.file

答案 3 :(得分:0)

据我所知,“嵌套”分支尚未得到Bazaar的支持。 Git支持“子模块”,其行为类似于Subversion外部。

答案 4 :(得分:0)

我尝试过用bzr split做这个,但是,这不符合我的预期。

  • 生成的分支仍包含来自所有原始目录的所有文件的历史记录,完整的检出将检索所有文件。看来拆分唯一的做法是将存储库转换为丰富的根存储库,以便此特定树只能属于某个子目录,但存储库仍包含所有其他目录,其他检出仍可检索整个树。

我在上面的jamuraa的答案中使用了这个方法,这对我来说要好得多,因为我没有把转换成新的存储库类型。这也意味着从该存储库中完整检出/分支只会重新创建我想要的文件。

然而,它仍然存在缺陷,即存储库存储了所有这些“已删除”文件的历史记录,这意味着它占用的空间超出了必要的空间(如果您不希望人们成为隐私问题,则可能存在隐私问题)能够看到那些“其他”目录的旧版本。

因此,有关将Bazaar分支机构切割到其子目录中的更多建议,同时永久删除所有其他目录,我们将不胜感激。

答案 5 :(得分:0)

做一个

bzr init .
bzr add .
bzr commit

在框架目录中。

然后你可以分支并合并到那个目录。

在您进行加入之前,较高的集市将忽略该目录。

Bazaar明白你什么时候做的事情

bzr branch . mycopy
bzr branch . myothercopy

当前目录.bzr不会跟踪这些子目录的更改。

它可以帮助您避免尝试找到放置分支的位置。