Subversion存储库工作副本结构的最佳实践?

时间:2009-07-29 04:03:39

标签: svn

我刚刚开始学习如何使用Subversion来构建我的Web应用程序,所以请耐心等待。

以下是我如何设置全部内容:

  • 我的一个域名将托管我所有项目的存储库。我有标准的标签/分支/主干结构。这是在公共文件夹中,因此其他开发人员可以访问它。
  • 我的实时服务器上有一个文件夹,其中包含应用程序的每个版本,我将在web目录中指向当前版本的符号链接。这样,当我发布应用程序的更新时,我将其导出到发布目录,然后切换符号链接,以便即时更改在线。

这是我的问题:

项目本地工作副本的最佳结构是什么?我将经常在分支机构和主干上工作,所以我应该检查整个存储库结构(标签/主干/分支机构)还是只检查主干和每个分支机构分别进入不同的文件夹?

另外,如果我说的如何设置它似乎很奇怪或者做错了,请告诉我(我是新手!)。

5 个答案:

答案 0 :(得分:2)

我一直使用svn开关在开发时在分支之间反弹。工作得很好,节省了各种各样的结账的需要(可以在一个工作目录中完成)

以下是文档:http://svnbook.red-bean.com/en/1.0/re27.html
以及关于该主题的简短文章:http://concisionandconcinnity.blogspot.com/2008/04/svn-switch.html

答案 1 :(得分:1)

我喜欢使用--depth immediates对整个存储库执行sparse checkout。然后我用

“更深入”地制作工作副本的一些部分
svn update --set-depth somedepth

找到我想要处理的部分。您还可以将工作副本的一部分再次“浅”以获得磁盘空间。

由于部分切换工作副本的不良体验,我不喜欢使用svn switch。当遇到阻止版本化文件等的无版本文件时,Switch会中途错误。这会让人感到困惑。

答案 2 :(得分:0)

如果您真的愿意,可以查看整个存储库。由你决定。就个人而言,我只会检查一下我正在积极研究的部分。这样,“svn update”不会永远占用,而且我自己的硬盘占用的空间也减少了。至于在存储库中的位置之间切换,有一个特殊的命令:“svn switch”(缩写为“svn sw”)。使用“svn help switch”或查看链接以获取更多信息:

http://svnbook.red-bean.com/en/1.1/ch04s05.html

答案 3 :(得分:0)

同意 - 只保留你正在处理的分支是最好的主意。 svn开关的唯一打嗝是你需要使用--relocate选项在存储库之间进行翻转,如果你最终使用真正的本地副本。

如果您需要真正开始分发存储库的克隆,可以查看git。 Git将允许您保留完整的本地副本,轻松地在分支之间移动,并将您的变更集推回到“主”仓库或其他克隆。

答案 4 :(得分:0)

如果我是你,我还会想到在实时服务器中有一个标准且有意义的名称的工作区,其中包含当前(如果你喜欢的最新版本)版本,这将是一个结帐文件夹你的中央存储库。然后,您只需要执行“svn更新”,而不是将符号链接更改为不同的版本。在您的服务器上也可以节省空间,因为存储库会使您的存档全部瘫痪。

为清楚起见:如果您的svn存储库具有这种典型结构:

/ trunk

/src
/bin
/docs
/scripts

/标签

/released

您可以使用此文件夹来存储您的版本或者就像我们的情况一样,如果您必须方便地保存所有档案,那么您可以拥有一个单独的二进制存档存储库(否则应该对源文件进行版本控制)

那么,您的实时服务器将有一个名为release(或其他)的工作区,它是http:/// tags / released的结帐。这样,您在服务器上的工作区上运行svn更新,瞧,您的应用程序指向最新版本。希望这会有所帮助。

对于本地工作空间,如果你是一个非常新的并且担心提交错误,可以一劳永逸地检查整个结构,只更新你提交的东西并且需要更改。上面的其他建议也是有效的。你可以查看检查任何给定文件夹的顶级目录strcuture,但要确保你保持一致的名称,以避免混淆。

走开:-)