2011-09-26 62 views
0

我正在学习如何在我们的团队系统上安装Mercurial,但我没有足够的经验来作出一些决定。系统级Mercurial安装是否足够用于共享环境?

对于我们的团队,我们有一台服务器机器用作存储库。每个团队成员都有自己的Linux RedHat安装机器。但是,我们在本地终端上不做任何事情,我们在服务器上做所有事情。每个成员在服务器上都有一个用户目录,例如/ home/Cassie,/ home/john,并且我们保存所有的代码并在那里工作。当我们打开本地终端时,GNOME系统在服务器上显示我们的个人文件而不是本地机器。无论何时每个人在桌面上点击终端应用程序,它都会连接到自己的主目录。因此,我们不需要使用SSH命令连接到服务器。这就像学校的多用户系统。每个人都有一个用户帐户,她登录到自己的帐户做自己的工作。我希望我可以在该服务器上安装一个共享存储库,并且每个人都可以在这里执行所有类型的命令。

1)由于我们使用的是共享环境,这是否意味着我需要在服务器上安装Mercurial,并且这足以让每个人都可以执行“commit”,“push”,“pull”等命令?

2)通过仅安装系统级Mercurial,它是否消除了进行本地提交的能力?如果我想让每个人都具备“本地承诺”的能力,我该怎么做?

3)我已经在网上搜索。有人提到,对于共享网络服务器,如果任何两个用户试图同时访问同一文件,则不可能锁定任何两个用户。这是否暗示我的情况?

总之,我们在服务器上做所有的工作。我希望找到一个计划,当每个人都拥有本地提交能力时,对每个人都共享的存储库进行Mercurial控制,并且如果任何两个用户同时尝试访问文件,存储库仍具有一些锁定保护。如果这种情况是可行的,我可以只在服务器上安装Mercurial,还是需要为服务器和用户机器安装Mercurial?如果这种情况是不可能的,有人请为我们的系统提供版本控制计划吗?

回答

3

1)由于我们使用一个共享的环境,这是否意味着我只需要在服务器上安装的水银,它是足够为大家做“提交”,“推”,“拉” .. etc命令?

如果您的用户正在登录服务器上的shell以执行其工作,那么只需在服务器上安装Mercurial即可。

2)通过仅安装系统范围的Mercurial,它是否消除了进行本地提交的能力?如果我想让每个人都具备“本地承诺”的能力,我该怎么做?

为了使用代码,您的用户大概会从共享的“根”存储库签出自己的主目录。他们将在其主目录中拥有“本地”repo副本,并将推入共享的根存储库。

3)我已经在网上搜索。有人提到,对于共享网络服务器,如果任何两个用户试图同时访问同一文件,则不可能锁定任何两个用户。这是否暗示我的情况?

只要您的用户在自己本地的回购副本中工作,他们就不会互相干扰。冲突可能出现的唯一时刻是提交回共享根存储库时 - 在这种情况下,用户需要合并其更改并解决冲突。

为了更好地理解Mercurial如何处理“中央”和“本地”副本,我建议您通过Joel Spolsky的优秀Hg Init教程仔细阅读。

+0

太棒了! Hg Init对我的理解非常有帮助。非常感谢你。 – Cassie