我正在编写一个框架以及一个使用该框架的项目。该项目是Bazaar存储库,框架位于项目下方的子文件夹中。
我想给框架一个自己的Bazaar存储库。我该怎么做?
答案 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不会跟踪这些子目录的更改。
它可以帮助您避免尝试找到放置分支的位置。