2010-03-22 60 views
2

我是一名Web开发人员,与包括我在内的2-3人一起工作。我们目前的设置非常简单。我们试图让对方知道我们何时正在处理特定文件。我们使用FTP来编辑我们的文件。与多个开发人员检查文件的方法

最近我们遇到了两个人无意中编辑一个文件,或者在本地文件上工作,然后在另一个人做同样的工作时上传的问题。

从我读过的东西我需要某种控制系统。我听说过颠覆和善变。似乎这些系统可能不是我所需要的,因为它只是给我不同版本的文件。我不知道它是否解决了两个人在文件上工作并覆盖彼此工作的问题。

您对解决我的问题有哪些建议?

编辑1:我应该提到,我想与Netbeans整合,似乎有可用的Subversion插件。

编辑2:是否有可能做到这一点与普通的虚拟主机? (使用rackspace云网站托管)。我确实有一台服务器设在家中,我认为它可以作为存储库进行设置。 (运行Windows Server 2007)

+0

retag:这真的没有任何php-ness或netbeans-ness – vkraemer 2010-03-23 22:12:20

回答

13

版本控制系统(VCS)正是您所需要的。开发人员处理源代码管理中的文件,并且在将更改重新签入系统时,如果其他人也对同一文件进行了更改,则系统将合并2组更改(有时可以从中获得帮助用户将是必要的),而不是简单地丢失以前的一组更改。

定期从VCS存储库更新网站。

由一个只有3个左右开发人员组成的团队,几乎所有的VCS都可以正常工作。我听说过有关Mercurial的好消息(尽管我还没有使用它 - 我计划在本月试用它),而且Subversion真的很不错。

但我认为你选择的任何东西都会比不使用任何东西有重大改进。

+2

+1如果您在Windows上并寻找快速简单的开始,请查看服务器的visualsvn.com以及客户端的tortoiseSVN.net。拜伦的答案中的颠覆书是非常好的阅读,很适合参考;还有更容易理解的教程。 – 2010-03-22 23:08:48

+1

Eric Sink的Source Control HOWTO(http://www.ericsink.com/scm/source_control.html)也是一个非常好的介绍,并且不偏不倚,尽管他运营的是一家销售版本控制软件的公司。 – 2010-03-22 23:11:36

+0

并查看http://hginit.com/以获取使用Mercurial的介绍。 – AnonJr 2010-03-22 23:51:22

1

是的,它确实解决了您遇到的问题。请查看svn book了解更多详情。

所有的版本控制系统必须 解决这样一个基础问题: 系统如何将允许用户 共享信息,而不会让他们 从每个 对方的脚不小心踩着?这对于 用户意外地覆盖存储库中其他每个更改都很容易。

+0

如果需要独占访问,svn-needs-lock(http://svnbook.red-bean.com/en/1.2/svn。 advanced.locking.html)可能很有用,特别是如果您共享二进制文件。 – spender 2010-03-22 23:07:39

2

您可以使用Subversion,它充当您的所有文件的中央存储库并处理文件冲突。

如果两个成员正在处理相同的文件,并且在他们更新Subversion存储库中的文件时,他们将看到一个错误,通知他们有关冲突的信息,并且还允许您比较两个文件之间的差异。

1

Subversion非常适合分布式开发。

每个开发人员都在自己的副本上工作并检查更改。所有更改都是可逆的。

远离来自工作主要关闭锁定文件的源代码控制系统,然后他们被“签出”。 SVN的默认模式没有锁定,仅在出现时才合并更改并处理冲突。

Subversion受到最广泛的支持,Linux支持开箱即用,TortoiseSVN(http://svn.tigris.org)作为Windows资源管理器插件。

1

另一个问题解决了这个意外做出了错误的编辑一个文件,并想恢复到以前的版本。 Subversion将对多个文件进行操作,作为变更集(包含代码版本的一组更改)。

我已经在类似的情况(.zip文件网络共享使用批处理文件“锁定”的zip文件)。不好玩,绝对容易出现各种错误。

看一看这里一个体面的免费书颠覆:​​

2

是的,你一定要得到某种源代码控制的。除了只需协调多个开发人员的变更外,您还可以回滚到以前版本的软件。你会发现它使你有机会获得创意,知道你总是可以转储它并回到以前的版本。当您开始开发下一个版本时,它在追踪错误报告方面也是非常宝贵的。这个列表继续下去,但是,一旦你意识到源代码控制的价值,你永远不会希望走钢丝走到那个没有源代码控制的编码。

Subversion是很流行,但我会鼓励你跳到http://hginit.com/和阅读乔尔Spoelsky的介绍水银。我们只是说他没有立即出售,但通过阅读教程,我发现这可能是一种更好的方式来处理事情,特别是在人员分发时。

1

是,版本控制系统就是你所需要的,但不是任何VCS。我认为你需要一个分布式版本控制系统。在我的公司,我们长期使用SVN(一个小的开发团队,和你一样),但我们从来没有太高兴。几个月前,我们将每个存储库都迁移到GIT,并且所有项目管理和存储库托管都已迁移到codebase。由于存储库管理,我们对迁移感到非常满意,一切都更加简单直接。

检查一个很好的介绍Git免费Progit Book

相关问题