问题:当多个用户有权访问相同的工作目录,但如果任何发生在元数据的权限问题git
动作。
免责声明 :在你责备我-我实现共享工作目录是反什么Git的代表,我说的不是做得比其他任何只读此共享目录中的操作-我们所做的一切工作在我们自己的本地资源库。
我接受建议,以另一种方式做什么,我们正在尝试做的,因为我们的方法肯定不是最好的做法,但我不知道,交谈中得知将是有益的给别人听。 所以现在让我提供关于我们为什么这样做的一些细节:
我们有我们的团队几个集结主人。 我们部署到Linux服务器,我们做我们建立那里,直接从Git的那拉构建脚本。 我们不能在这个时候使用CI(如詹金斯/ CruiseControl的),所以我们有我们结帐,尽我们的QA从建立一个资料库。
有迹象表明,我们作为脚本的一部分执行一些git的操作。 这包括提交的一些标记(东西被标记为QA-电流,QA-以前,等...)。 所以我想我们实际上并没有只读完全。 由于构建脚本的性质,我们运行sudo
“ED作为普通用户(我们称之为用户DevAdmin)。 我意识到这可能是一个不好的做法,并且也许是痛苦的根源,因为它迫使我们使用的是共享式回购结算。
这都将是很好,如果我们总是在工作目录时sudo'ed。 问题是,有时,我们中的一个会做git pull
或因事故类似的东西,而不sudo'ed为DevAdmin。 因此,大多数的文件.git
是由DevAdmin(谁执行的初始克隆)所拥有,但每当我们这样做,我们最终在目录的.git/objects
包含特定用户拥有的文件。 而这些都是为组不可写创建。 我也注意到ORIG_HEAD
与错所有权,例如。 所以,当我们尝试做一些事情为DevAdmin,我们得到的问题。
有什么事情我们可以做,以解决这个问题? 现在,我们必须认识到,它已经发生了,然后得到了一个服务器管理员chown .git
回DevAdmin。 或让用户在删除相关的元文件,或至少chmod
他们组可写。 这一切似乎很不好。
我已经考虑了几个不涉及巨大的改变我们的建设和维护过程中的选项:
如果我们取消了对组的写入权限.git
,它仅限于DevAdmin,将防止这种情况再次发生? 这似乎是最直接的选择。
还是有办法让一切.gi
T组可写,即使它新成立的? 这似乎是从麻烦问。
有没有别的明显的我失踪? 我知道的最好的事情很可能会改变我们的工艺,使用户可以在自己的回购协议的工作,但在商务场合,回购可以得到非常大的(瓶子不分离出来呢,大量的二进制文件,等...),我们不能对每个人的帐户多GB回购。 此外,我们的系统管理员会有很多工作要做他们改变他们的流程,以允许它。
任何想法表示赞赏。