首先,我查看了以下页面并没有完全得到我的答案: how-would-you-organize-a-subversion-repository-for-in-house-software-projects和 how-do-you-组织你的版本控制存储库
我还查看了使用 Subversion 的实用版本控制的第 8 章。
他们都有很好的建议,但我很难将其与我的需求联系起来。
基本上,我想为我们的 Web 服务器组织代码。我们有一个 $WEBROOT/htdocs 和 $WEBROOT/cgi-bin。在我们的 htdocs 目录下,我们有 $WEBROOT/htdocs/js 和 $WEBROOT/htdocs/css 用于 java 脚本和样式表。
我们的“项目”并不是真正的项目,而是一小段代码——可能是 Perl 脚本、java 脚本文件和样式表。我们可能有大约一百个这样的小“项目”,它们几乎相互独立,但都存在于同一个网络服务器上的同一个 $WEBROOT 下。
我们的代码还没有被颠覆,但我希望它是——我只是在有效地组织它时遇到了麻烦。如果需要,我们可以有多个 svn 存储库,但是如果每个存储库只有 3-10 个元素,那对我来说似乎是一种浪费。
我认为可以工作的是这样的:如果我编写一个脚本来计算网络服务器上正在运行的进程(为了一个例子)。假设我有一个 perl 脚本、一个 js 文件和一个 css 文件。我可以将“项目”命名为 webserver_processes,并将其签入到存储库中:
/svnrepo/webserver_processes/trunk
在树干下,我可以拥有:
htdocs/html/webserver_processes
htdocs/js/webserver_processes
htdocs/css/webserver_processes
cgi-bin/webserver_processes
我在这个“项目”中没有任何静态 html 文档,但如果我有,它们会进入“html”目录。
我在这种结构中看到的好处是我可以一次签出一个“项目”,而不会真正影响 Web 服务器上的任何其他内容。缺点(也许它不是真正的缺点)是部署。我必须一次从存储库部署 1 个项目。我看不出如何使用这种方法用我的 $WEBROOT/htdocs 和 $WEBROOT/cgi-bin 结构创建工作副本。
另外一个选项:
我可以像这样创建一个 svn 存储库:
/svnrepo/webcode/trunk
在主干下将是我的网络服务器上的所有代码,在这两个目录中:
htdocs
cgi-bin
最大的缺点是,对于 1 个元素的小代码更改,我必须检查我的 Web 环境中的每一段代码。好处(有点)是我可以在我们的 Web 服务器上执行“svn update”来获取提交给存储库的任何更改。
也许我只是让这变得比它应该的更复杂,但是有人对我如何有效地在颠覆中组织我的代码有任何建议吗?
提前谢谢了!
布赖恩