2012-05-03 96 views
2

我正在尝试在我的办公室中实现Git。由于无法在每台开发人员计算机上运行Apache服务器,因此无法在计算机上使用克隆。我们有一个NFS共享的开发服务器。我打算在此NFS共享上创建git存储库和工作树。 Git由单用户管理,因此不会有任何同时推送。使用nfs共享Git实现

我的问题是

  1. 这是一个好的做法呢?
  2. 我如何管理用户访问?

回答

1

在此处重述以确保我了解:共享开发“工作区”,每个人都通过NFS安装并使用指向远程apache实例的浏览器进行开发,他们在同一组文件上工作,对同一个git工作副本执行git命令。如果我的理解到目前为止是正确的,那听起来不是一个好主意。

我建议你给每个开发人员在apache服务器上给自己的工作区域,还有他们自己的VirtualHost,以便他们可以看到他们的独立文件。现在他们能够独立于其他开发人员工作。这些文件集中的每一个都是相同存储库的git克隆(可能是某个裸仓库)。这为每个开发人员提供了一个更加安全的开发工作流程,并且不存在开发人员相互践踏并犯下其他代码等的风险。

用户访问权限,您可以通过允许谁来挂载NFS共享来控制此权限。

+0

这确实是要走的路。每个开发人员都需要在服务器上有自己的工作区域,这样他就可以测试自己的代码而不必与其他人分享或分享 - 当然也不会干扰其他人。 – ThiefMaster

+0

每个开发者都有自己的分支。在这种情况下,开发人员可以如何运行git命令?我是否需要为每个开发人员提供ssh访问权限?或者可以通过在NFS共享中指定分支路径来运行。如果可以通过指定NFS路径来运行命令,那么将会记录正在进行提交或其他操作的用户? – Samuel

+0

在分支中工作仍然需要一个工作区域,如果他们有单独的工作区域,那么他们可以提交到一个分支,如果他们想要的话。分支路径是什么意思? – ctcherry

1

git通过NFS工作,是的,但与本地磁盘相比,它非常慢。

有几个开发人员在同一个签出的回购工作是一个麻烦的秘诀。

我会在服务器上设置一个“上游”主数据库,供开发人员推送,然后每位开发人员在他/她自己的工作站上在本地克隆主数据库,并与之对抗。

+2

称它为“非常缓慢”,甚至没有开始描述它。冰川可能是一个更好的形容词,或者可能是“用地质时间尺度来衡量”。 – Harvey

1

你正在击败git即分布式开发的目的。我建议你在装有'官方'存储库的中央服务器上设置类似Gitolite的东西。开发人员可以克隆这个存储库并在其当地工作。然后他们可以将(经过充分测试)更改推送到官方资源库。借助gitolite,您可以拥有精细的访问控制和其他几种管理工具。应该设置构建和部署过程,以便只有官方存储库中的更改才能投入生产。