这最初是a question targeting git/bitbucket,但在找不到我们的要求后,我正在寻找替代方案。
我们有一个主代码库,其中包含一些“机密”库。我们需要一种方法来创建分支或分支用于调查目的(对于非现场工作人员),不包含所选的机密文件,但对于所有其他文件,仍然可以推送,拉动,查看整个历史记录。
我已经能够在perforce / SourceDepot VCS中实现相同的功能,但我希望看到我们的其他选择。
Big plus是一种从bitbucket迁移历史记录的能力。另一个重要的优点是一些(甚至是自定义的)http主机能够浏览代码/历史记录,这些代码/历史记录可以与JIRA集成(如bitbucket / git那样)。
以下是我想要实现的一个例子:
Repo1(main):
|-publicFolder
|-file1
|-file2
|-privateFolder
|-fileA
|-fileB
Repo2(investigation):
|-publicFolder
|-file1
|-file2
修改
看来这种情况可以通过组合两件事来实现 - convert extension加上子事件功能suggested by Lazy Badger
转换部分需要跟随filemap.txt:
include publicFolder
并跟随转换命令:
hg convert --filemap filemap.txt path/to/local/Repo1 path/to/local/Repo2
下一步是从 Repo1 中删除 publicFolder ,最后在这两个repos上方创建精简子shell(如果需要,可以将它们视为单个存储库)
答案 0 :(得分:2)
对指定的任务(分离和聚合)的或多或少值得注意和众所周知的迭代(你有写,为什么它错了或者它们失败了)
答案 1 :(得分:1)
Perforce允许拥有一个工作区,即工作副本,配置来自多个软件仓库的文件。
然后,您可以对不同的软件仓库[0]拥有不同的访问权限。
请参阅此处的多个软件仓库设置: http://answers.perforce.com/articles/KB/2437
当少数人有权访问时,您需要一个//所有人都可以访问的公共软件仓库和一个受限制的软件仓库。
然后,根据权利,人们可以使用
创建工作区//public/...
//restricted/...
或仅
//public/...
另一个重要的优点是某些(甚至是自定义的)http主机能够浏览代码/历史记录,这些代码/历史记录具有与JIRA集成的某些功能(如bitbucket / git所做)。
Perforce有一种名为P4Web的Web界面。我自己没有使用它,从我看到的内容看起来有点过时,谷歌快速告诉我它不再受支持。
另一方面,适用于任何SCM的脏解决方案是将库的二进制文件提交到公共存储库。这样你就可以对源代码进行模糊处理。 (这仍然可以在一定程度上被拆解)。
[0] Perforce仓库或多或少等同于其他SCM中的存储库。