我有一个包含敏感文件和目录的活动项目。我想聘请外部承包商来做一些简单的UI工作。但是,我不希望承包商访问某些目录和文件。我的项目在Bitbucket上很不错。
清理项目并让他访问提交更改的最佳方法是什么?我想过分配到一个新的存储库,但我担心删除我不希望他访问的目录。
如何删除它们以使它们不显示原始更改集?如何合并他的repo而不删除我的主存储库中的那些目录?叉子是可行的吗?
答案 0 :(得分:3)
当然,存储库需要访问其整个历史记录才能自我检查其完整性。我不知道有选择地隐藏部分存储库的方法(有ACL extension,但它仅用于写访问)。
在你的情况下,我会
-f
强制拉出不相关的存储库),并且对于步骤3到5,您不一定要等到外部开发人员完成。也可以重新建立其存储库的中间状态。
然而,这是一个理论上的想法......人们必须看到它在实践中的表现。
替代方案:如果您经常有外部承包商不应该看到您的代码的某些部分,我会在@ Anton的评论中设置与多个存储库相关的权限。
答案 1 :(得分:2)
有多种方法可以做到这一点:
无论如何,您需要重新构建和拆分现有存储库,因此如果您有很多人在这个项目上工作,这将造成严重破坏,他们都需要停止工作,同步他们的工作,破坏他们的本地克隆并克隆重组后的新鲜副本。
使用多个存储库的一种方法是执行以下操作:
hg convert
命令以摆脱承包商不应访问的所有零碎的第一个克隆hg convert
以摆脱现在第一个出现的所有内容。您现在拥有的是两个存储库:
从现在开始,每当承包商将工作推送到他的存储库时,您需要从中拉出并进入私有存储库然后合并。
您的存储库看起来像这样:
Contractor: ---97---98---99---100---102---103---104
M M
Private: ---91---92---93---94---95---96---101---105---106---107
/ /
/ /
---97---98---99---100---102---103---104
上面M的两个变更集是合并变更集,它将承包商提供的代码合并到您的私有存储库中。
请注意,您也必须将代码提交给承包商 - 存储库,以便在那里处理和修复代码中的错误,但是您可以将所有私有位保密。