svn - 组织许多小项目的颠覆存储库的最佳方式

标签 svn code-organization infrastructure svn-organization

首先,我查看了以下页面并没有完全回答:
how-would-you-organize-a-subversion-repository-for-in-house-software-projects
how-do-you-organize-your-version-control-repository

我也看了Pragmatic Version Control using 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”目录。

我在这种结构中看到的好处是,我可以一次 check out 一个“项目”,而不会真正影响 Web 服务器上的任何其他内容。缺点(也许它并不是真正的缺点)是部署。我必须一次从存储库部署 1 个项目。我不知道如何使用这种方法创建具有 $WEBROOT/htdocs 和 $WEBROOT/cgi-bin 结构的工作副本。

另一种选择:

我可以像这样创建一个 svn 存储库:
/svnrepo/webcode/trunk

在主干下将是我的 Web 服务器上的所有代码,在这两个目录中:
htdocs
cgi-bin

巨大的缺点是,对于 1 个元素的小代码更改,我必须检查 Web 环境中的每一段代码。好处(有点)是我可以在我们的 Web 服务器上执行“svn 更新”以获取提交到存储库的任何更改。

也许我只是让这比它应该的更复杂,但是有人对我如何在 subversion 中有效地组织我的代码有任何建议吗?

提前谢谢了!

布赖恩

最佳答案

我认为您通过为许多项目保留一个存储库来做出正确的调用,因此我只会对您的部署过程进行更改:

你的 svn repo 看起来像(你的第一个选择。)

/svnrepo/project1/trunk
/svnrepo/project1/trunk/htdocs
/svnrepo/project1/trunk/css
...
/svnrepo/project1/branches/branch1
/svnrepo/project1/tags/blah
/svnrepo/project2/trunk
/svnrepo/project3/trunk

当您要部署时,请使用脚本将文件复制到应该部署的位置。

通过这种方式,您可以保留一个人为的屏障(文件夹)来组织项目之间的想法,而不仅仅是一堆乱七八糟的文件。

编辑:为了清楚起见,意外保存和添加了其他目录

关于svn - 组织许多小项目的颠覆存储库的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/529207/

相关文章:

svn - 如何在仅命令行的 Ubuntu 机器上加密客户端颠覆密码

svn - 使用 TortoiseSVN 移动目录的正确方法是什么?

svn "path not found"使用 HTTPS 创建分支时出错

javascript - 更改 ajax 以请求用要嵌入到 html 页面本身的 html 内容填充 div

c# - 编译 `async` 代码所需的最少类型集是什么?

testing - 用于记录 Action 序列的视频或幻灯片捕获工具会导致错误

Eclipse(Indigo) 颠覆0.7.9 : bad_record_mac

c++ - 组织源代码 (C++)

javascript - 如何组织和分离 EmberJS 模板?

python - 创建一组 Python 类