2008-09-15 63 views
4

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

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

回答

6

您使用拆分命令:

bzr split sub_folder 

这将创建子文件夹一个独立的树,你现在可以出口和独立工作的。

0

据我所知,没有办法很容易地与集市做到这一点。一种可能是采取原始项目,分支它,然后删除与框架无关的所有内容。然后,您可以将子目录中的文件移至主目录。这相当麻烦,但可以保留历史。

你最终会喜欢的东西:

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

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

据我所知,“嵌套”分支没有被芭莎还不支持。 Git支持“submodules”,其行为与Subversion外部类似。

0

我试过用bzr拆分来做这个,但是,这不起作用。

  • 生成的分支仍包含所有原始目录中的所有文件的历史记录,而完整的结帐将检索所有文件。它看起来唯一的事情就是将存储库转换为一个丰富的根存储库,以便这个特定的树只能是一个特定的子目录,但是存储库仍然包含所有其他目录,其他的检出仍然可以检索整个树。

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

然而,它仍然有一个缺点,即存储库存储了所有这些“已删除”文件的历史记录,这意味着它占用了比必要的更多的空间(并且如果您不希望人们能够看到那些“其他”目录的旧版本)。

因此,更多关于将Bazaar分支切割到其子目录中的其中一个的建议,同时永久删除其他所有内容的历史记录将不胜感激。

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

如果您想从新存储库的路径中删除子文件夹,因此它不在检出树中,然后将尾部斜杠添加到像'-i子文件夹/`这样的'-i子文件夹'参数中。快速导入过滤器会将过滤的项目植根在使用-i参数指定的最深层文件夹中。 – kbulgrien 2012-09-21 05:20:12

0

在框架目录做一个

bzr init . 
bzr add . 
bzr commit 

然后,您可以分支和合并到该目录。

较高的集市将忽略该目录,直到您进行连接。当你不喜欢的东西

bzr branch . mycopy 
bzr branch . myothercopy 

当前目录.bzr不会跟踪这些子目录变化

集市理解。

它可以避免您试图找到放置分支的地方。