允许部分分支的源代码控制系统
Source control systems allowing partial branching
这本来是,但在发现我们的要求不被支持后,我正在寻找替代品。
我们有一个包含一些 'confidential' 库的主代码库。我们需要一种方法来创建分支或分叉用于调查目的(对于非现场工作人员),其中不包含选定的机密文件,但对于所有其他文件,仍然能够推送、拉取、查看整个历史记录。
我已经能够在 perforce/SourceDepot VCS 中实现相同的目标,但是我想看看我们还有哪些其他选择。
最大的优点是能够从 bitbucket 迁移历史记录。另一个很大的优势是一些(甚至是自定义的)用于浏览的 http 托管的能力 codes/history 可以与 JIRA 集成(就像 bitbucket/git 那样)。
这是我想要实现的示例:
Repo1(main):
|-publicFolder
|-file1
|-file2
|-privateFolder
|-fileA
|-fileB
Repo2(investigation):
|-publicFolder
|-file1
|-file2
编辑:
似乎可以通过结合两件事在 mercurial 中实现该场景 - convert extension plus the subrepos feature
转换部分需要遵循 filemap.txt:
include publicFolder
和以下转换命令:
hg convert --filemap filemap.txt path/to/local/Repo1 path/to/local/Repo2
下一步是从 Repo1 中删除 publicFolder 并最终在这两个回购协议之上创建精简子回购协议 shell(以如果需要,可以将它们视为一个存储库。
Perforce 允许有一个工作区,即工作副本,配置来自多个软件仓库的文件。
然后您可以对不同的软件仓库 [0] 拥有不同的访问权限。
在此处查看多个软件仓库设置:
http://answers.perforce.com/articles/KB/2437
您需要一个每个人都可以访问的 //public depot 和一个只有少数人可以访问的 //restricted depot。
然后根据权利,人们将能够创建一个工作区
//public/...
//restricted/...
或仅
//public/...
Another big plus would be ability of some (even custom) http hosting for browsing codes/history that would have some ability to integrate with JIRA (as bitbucket/git does).
Perforce 有某种名为 P4Web 的网络界面。我自己没有使用过它,从我简单看到的情况来看,它看起来有点过时并且很快 Google 告诉我它不再受支持。
另一方面,适用于任何 SCM 的肮脏解决方案是将库的二进制文件提交到 public 存储库。这样你就可以混淆源代码了。 (那在一定程度上还是可以拆解的)
[0] Perforce depot 或多或少等同于其他 SCM 中的存储库。
- SVN 中的外部组件
- Git
中的子模块
- Mercurial 中的子目录
或多或少是对 指定的 任务(分离和聚合)的显着和广为人知的迭代(你 有 来写,为什么这是错误的或者他们失败了)
这本来是
我们有一个包含一些 'confidential' 库的主代码库。我们需要一种方法来创建分支或分叉用于调查目的(对于非现场工作人员),其中不包含选定的机密文件,但对于所有其他文件,仍然能够推送、拉取、查看整个历史记录。
我已经能够在 perforce/SourceDepot VCS 中实现相同的目标,但是我想看看我们还有哪些其他选择。
最大的优点是能够从 bitbucket 迁移历史记录。另一个很大的优势是一些(甚至是自定义的)用于浏览的 http 托管的能力 codes/history 可以与 JIRA 集成(就像 bitbucket/git 那样)。
这是我想要实现的示例:
Repo1(main):
|-publicFolder
|-file1
|-file2
|-privateFolder
|-fileA
|-fileB
Repo2(investigation):
|-publicFolder
|-file1
|-file2
编辑:
似乎可以通过结合两件事在 mercurial 中实现该场景 - convert extension plus the subrepos feature
转换部分需要遵循 filemap.txt:
include publicFolder
和以下转换命令:
hg convert --filemap filemap.txt path/to/local/Repo1 path/to/local/Repo2
下一步是从 Repo1 中删除 publicFolder 并最终在这两个回购协议之上创建精简子回购协议 shell(以如果需要,可以将它们视为一个存储库。
Perforce 允许有一个工作区,即工作副本,配置来自多个软件仓库的文件。
然后您可以对不同的软件仓库 [0] 拥有不同的访问权限。
在此处查看多个软件仓库设置: http://answers.perforce.com/articles/KB/2437
您需要一个每个人都可以访问的 //public depot 和一个只有少数人可以访问的 //restricted depot。
然后根据权利,人们将能够创建一个工作区
//public/...
//restricted/...
或仅
//public/...
Another big plus would be ability of some (even custom) http hosting for browsing codes/history that would have some ability to integrate with JIRA (as bitbucket/git does).
Perforce 有某种名为 P4Web 的网络界面。我自己没有使用过它,从我简单看到的情况来看,它看起来有点过时并且很快 Google 告诉我它不再受支持。
另一方面,适用于任何 SCM 的肮脏解决方案是将库的二进制文件提交到 public 存储库。这样你就可以混淆源代码了。 (那在一定程度上还是可以拆解的)
[0] Perforce depot 或多或少等同于其他 SCM 中的存储库。
- SVN 中的外部组件
- Git 中的子模块
- Mercurial 中的子目录
或多或少是对 指定的 任务(分离和聚合)的显着和广为人知的迭代(你 有 来写,为什么这是错误的或者他们失败了)