Python和git:使一些子模块安全/特权

Python和git:使一些子模块安全/特权,python,git,python-3.x,Python,Git,Python 3.x,我们一直在开发一个大型python(3)代码库,现在正在团队中招募一些新人。代码的某些部分是敏感的,我们希望让新人有选择性地访问代码 现在的布局是: mymodule: secureSubmodule1 secureSubmodule2 unsecureSubmodule1 unsecureSubmodule2 等等 现在人们通常的用法是从git repo(包含所有代码)中签出mymodule,然后运行类似于 python3 -m mymodule.secure

我们一直在开发一个大型python(3)代码库,现在正在团队中招募一些新人。代码的某些部分是敏感的,我们希望让新人有选择性地访问代码

现在的布局是:

mymodule:
    secureSubmodule1
    secureSubmodule2
    unsecureSubmodule1
    unsecureSubmodule2
等等

现在人们通常的用法是从git repo(包含所有代码)中签出mymodule,然后运行类似于

python3 -m mymodule.secureSubmodule1.script -- options
mymodule:
    unsecureSubmodule1
    unsecureSubmodule2

等等

所有当前用户都有权查看mymodule的所有内容

现在,我们希望一些新用户只能检出不安全的子模块,以便他们看到类似的内容

python3 -m mymodule.secureSubmodule1.script -- options
mymodule:
    unsecureSubmodule1
    unsecureSubmodule2
而且只能跑

python3 -m mymodule.unsecureSubmodule1.script -- options
等等


有没有办法使用git和python做到这一点?

为了使敏感模块远离新的团队成员,您需要向git存储库添加一个
.gitignore
文件。这是一个简单的文本文件,只是你不想共享的文件列表。在您的情况下,它将是:

mymodule/secureSubmodule1.py mymodule/secureSubmodule2.py

这里:[,有更多关于gitignore的信息


希望有帮助:)

独立的git存储库是实现这一点的明显、简单且易于验证的方法。您可以随心所欲地使用各种技巧,但前提是您必须确保操作正确。@msw:是否有一些约定可以帮助简化工作流程?目前,特权用户只需运行一个git克隆命令即可开始吧。在你推荐的最简单的情况下——用户现在会运行多个git clone命令,然后进行符号链接吗?git Pull呢?你在评论中有一个毫无根据的假设:这可能和管理单个存储库一样简单,但不会。通过类比,你有两个相邻的办公室;你已经给出了“精英”是两个办公室和scrubs的钥匙,只针对不安全的办公室。你希望两个办公室连接起来,并允许它们之间自由、轻松地流动,但你不能,因为整个前提是你想把scrubs锁在安全的房间之外。这将比以前不那么简单了。是这样的。谢谢,除非我我理解你的意图,这是行不通的:我希望安全和不安全的子模块都具有版本控制的好处。.gitignore忽略安全子模块将从repo中删除它们。.gitignore阻止git跟踪无关文件,与用户访问权限无关