在开发服务器上使用Subversion的最佳实践?

时间:2009-01-20 14:30:51

标签: svn version-control

我在我用来“暂存”我写的Web应用程序的服务器上安装了VisualSVN - 目前这些应用程序是Classic ASP / VBScript。我编写代码的开发工作站安装了TortoiseSVN,我可以连接到我创建的存储库文件夹 - 我使用以下结构:

development (repository)
  -- my_application
     -- branches
     -- tags
     -- trunk
  -- another_application
     -- branches
     -- tags
     -- trunk

我还配置了IIS并指向服务器硬盘上的另一个文件夹来存储提供的文件。是否有“最佳实践”将提交推送到链接到IIS的文件夹,因此在提交/迭代后,我可以为我的用户提供一个URL来查看演示站点(以及自己测试)?我很惭愧地说我之前从未真正使用过版本控制,所以我对使用它的最佳方式有点无能为力。

3 个答案:

答案 0 :(得分:4)

首先,我会同意其他评论,您的存储库格式是带有分支,标签和主干的书。我还建议按照提到的每个项目拆分存储库。我参与了具有一个共享存储库和拆分存储库的项目,并且拆分存储库工作得更好。另外,如果有理由限制对其中一个存储库的访问(即,您让其他人访问存储库,并且您只希望他们看到这两个项目中的一个),则它们更容易分开。

无论如何,我建议您使用MSBuild进行部署。您可以创建一个MSStild项目文件,该文件从SVN签出,构建您的解决方案文件,然后将其部署到网站。您可以在MSBuild项目文件中添加这样的行来进行结帐:

<Exec command="svn checkout %22https://server:8443/svn/Project/Trunk/%22 %22c:\Project%22"/>

您还可以执行诸如在发布版本后制作项目以签出特定版本/标记之类的操作。在部署此路由时可以采取的措施具有相当大的灵活性。

有关MSBuild的更多详细信息,请参阅Microsoft MSBuild参考指南here

答案 1 :(得分:2)

我可以看到你完成了你的作业,你的存储库布局是由本书设置的。我不确定VisualSVN在结账方面做了什么,但是如果你想将更改推送到网站,那么交互式或预定都很容易。

cd to webhome

svn co [svn-project-uri]

答案 2 :(得分:0)

首先,我建议您将不同的应用程序保存在不同的存储库中。

每次提交都会增加修订版号,因此您可能会遇到下一种情况:第一个应用程序很长时间没有更新,但由于第二次应用程序更新,它的修订版号不断增加。