2010-02-08 81 views
2

我的一位朋友和我正在开发一个用于perl系统管理的web服务器,类似于webmin。我们有一个安装了当前版本的服务器的Linux系统,以及其他开放源代码的网络产品,如网络邮件,日历,库存管理系统等等。服务器端cgi编程的版本控制

目前,代码不在修订控制之下,我们只是在执行定期快照。 我们希望将代码置于修订控制之下。 我的问题是将设置此和软件解决方案使用的一种好方法:

我可以想到的一个解决方案是设置当前在Linux机器上的项目的根是根储存库的一个井。我们将检查我们个人机器上的代码,处理它,提交并测试结果。

任何其他想法,方法?

非常感谢,

Spasski

回答

1

Version Control with Subversion涵盖此外,许多基本的版本控制概念,是对Subversion本身的权威。如果你阅读第一章,你可能会明白如何设置。

就你而言,这听起来像是你在实时系统上进行实际开发。就版本控制系统而言,这并不重要。在你的情况下,你仍然可以使用Subversion:

  1. 承诺作为备份你的代码和更新你的代码库的工作变化的手段。养成测试后提交的习惯,所以尽可能少的提交失败。
  2. 标记为跟踪您所做的工作的手段。当你添加了一个功能,制作一个标签。这样,如果需要,您可以轻松地恢复到“在我们实施X之前”。
  3. 分支开发更大块的变化。如果某个功能需要几天时间才能开发,那么您可能希望在开发期间进行提交,但不要提交到主干,因为您之后提交的内容只有一半完成。在这种情况下,你应该提交一个分支。

创建存储库的位置并不重要,但只应将工作副本放置在实际可用的位置。就你而言,听起来就像现场服务器是唯一这样的地方。

对于更轻量级的解决方案,开销更少,任何位置的任何文件夹都可以作为存储库,您可能需要使用Bazaar。 Bazaar是一个比Subversion更灵活的版本控制系统,可能更适合你的需求。通过Bazaar,您可以创建一个实时系统的存储库,而不是在其他地方建立一个存储库,但仍然遵循上述3条准则。

+0

谢谢,我已经阅读了本书的一部分,并且有过使用svn的经验,但是这里的问题是我们无法测试版本库副本上的代码。唯一的可能性是在提交后测试它。 – Spasski 2010-02-09 07:47:48

+0

@Spasski我已经更新了我的答案。 – bzlm 2010-02-09 15:39:00

+0

这真的有助于和平的建议。我很感激! – Spasski 2010-02-09 19:53:01

0

你可以运行多少个webapp实例?

您不应该提交未经测试的代码,或者从不能运行代码的机器进行提交。虽然你可以推动备份克隆,如果你喜欢。

+0

只有一个。服务器仍然没有生产,我们可以负担得起代码。通常我们的工作方式是ssh到机器并直接在那里工作并在浏览器中测试结果。由于我们只是为了开发人员,我认为本地存储库解决方案最适合在另一台计算机上进行定期备份。 我只是好奇,如果任何人有类似的经验和他们的想法 – Spasski 2010-02-09 07:46:31

+1

@Spasski我会在服务器上共享一个回购,然后设置一些别名,以解决谁做了什么。但我还没有遇到过这种情况,因为我一直以来都能在本地运行。一个完全不同的解决方案可以推动capistrano/heroku/toppcloud的部署也可能奏效,尽管我希望在大多数提交中都会发生破坏。 – Tobu 2010-02-09 11:26:57