Project management 与多个开发人员签入和签出文件的方法

Project management 与多个开发人员签入和签出文件的方法,project-management,version-control,Project Management,Version Control,我是一名web开发人员,与包括我在内的2-3人一起工作。我们目前的设置非常简单。我们试图让对方知道我们在处理一个特定的文件。我们使用FTP来编辑我们的文件 最近,我们遇到了两个人意外编辑一个文件的问题,或者当另一个人也这样做时,处理本地文件然后上传 据我所知,我需要某种控制系统。我听说过颠覆和反复无常。看起来这些系统可能不是我所需要的,因为它只是给了我不同版本的文件。我不知道它是否解决了两个人在一个文件上工作,而互相覆盖的问题 你对解决我的问题有什么建议 编辑1:我应该提到,我想与Netbean

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

最近,我们遇到了两个人意外编辑一个文件的问题,或者当另一个人也这样做时,处理本地文件然后上传

据我所知,我需要某种控制系统。我听说过颠覆和反复无常。看起来这些系统可能不是我所需要的,因为它只是给了我不同版本的文件。我不知道它是否解决了两个人在一个文件上工作,而互相覆盖的问题

你对解决我的问题有什么建议

编辑1:我应该提到,我想与Netbeans集成,它似乎有用于Subversion的插件


编辑2:是否可以通过正常的网络托管来实现这一点?(使用rackspace云站点托管)。我确实在家里设置了一个服务器,我认为可以将其设置为存储库。(运行windows server 2007)

是的,它确实解决了您遇到的问题。有关更多详细信息,请查看

所有版本控制系统必须 解决同样的基本问题: 系统将如何允许用户 共享信息,但阻止它们 不小心踩到每一个 别人的脚?这对我来说太容易了 用户可能会意外地覆盖每个 其他人在存储库中的更改

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

可以定期从VCS存储库更新网站

有了一个只有3个左右开发人员的团队,几乎所有的风投都可以正常工作。我听说过Mercurial的好东西(尽管我还没有使用它——我计划在这个月试用),Subversion真的很不错


但是我认为您选择的任何内容都将比不使用任何内容都有很大的改进。

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


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

subversion非常适合分布式开发

每个开发人员处理自己的副本并检查更改。所有的变化都是可逆的

远离主要靠锁定文件工作的源代码管理系统,然后它们就被“签出”。SVN的默认模式是在没有锁的情况下工作,合并更改并仅在冲突出现时处理冲突


Subversion是受支持最广泛的版本,Linux支持它的开箱即用,而OrtoiseSVN()作为Windows资源管理器插件。

它解决的另一个问题是意外地对文件进行错误编辑,并希望恢复到以前的版本。Subversion将对多个文件作为一个变更集(组成代码版本的一组变更)进行操作

我也遇到过类似的情况(网络上的zip文件与“锁定”zip文件的批处理文件共享)。不好玩,而且很容易出错


在这里可以找到一本关于Subversion的像样的免费书籍:

是的,您肯定需要进行某种源代码管理。除了协调多个开发人员之间的更改外,您还可以回滚到软件的以前版本。你会发现它能让你抓住机会提出想法,知道你总是可以扔掉它,回到以前的版本。当您继续开发下一个版本时,它在跟踪bug报告方面也是非常宝贵的。这个列表一直在列出,但是,一旦你意识到了源代码管理的价值,你就再也不会希望没有源代码管理的编码走钢丝了


Subversion非常受欢迎,但我鼓励您跳过去阅读Joel Spolsky的Mercurial简介。我们可以这么说,他并没有马上被说服,但通过阅读本教程,我发现这可能是一种更好的处理问题的方法,尤其是当人们被分发时。

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


查看免费版,了解有关的精彩介绍。

如果需要独占访问,svn needs lock()可能很有用,尤其是在共享二进制文件的情况下。+1如果您在Windows上,希望快速轻松地开始,请查看服务器的visualvn.com和客户端的tortoiseSVN.net。拜伦答案中的颠覆书是一本非常好的书,值得参考;还有更容易理解的教程。Eric Sink的源代码管理HOWTO()也是一个非常好的介绍,而且没有偏见,尽管他经营一家销售版本控制软件的公司。毫无疑问,VCS是你需要的。请记住,这些系统解决了两个独立的问题:版本控制(从名称上看很明显)和并发性(您正在寻找的)。即使您认为只需要解决并发性问题,最终还是会有人来解决