2009-02-26 54 views
2

我有许多不同的项目,大约5个,以及大约15个不同的开发人员,其中一些项目在颠覆,有些则不是。所有的开发人员都在使用TortoiseSVN开发基于Windows的机器,并且这些项目的代码是经典asp和asp.net的混合体。什么是最好的,就像在大多数响应,有用和易于管理的情况下一样,让所有项目都受到颠覆,并为所有开发人员(包括读取和写入)验证访问权限?颠覆称重设置因子

需要考虑的一些事情是通过svnserve或apache提供,这意味着有速度问题,易于管理访问/用户密码以及需要打开额外的防火墙端口(如果svnserve)

另外要考虑在一个存储库中有多个项目而不是每个存储库有一个项目的好处/缺点。版本差异不是一个问题,但是如果多个项目在一个存储库中,获取日志的时间过长可能会是这样,但是,这是否被更简单的用户管理所抵消?

回答

4

•我会建议为您的所有项目使用一个存储库。它使得为开发者设置访问变得更加容易。另外你只需要备份一个存储库。不仅如此,它还使您能够轻松复制项目之间的文件(并保留这些文件的历史记录)。这可能不会经常发生,但它确实很好。创建新项目就像'svn mkdir'一样简单。

而且,通过使用单个存储库并不会真的损失太多。不过,您仍然可以为每个项目配置访问权限。

你的svn目录结构可能如下所示:

projects/ 
    proj1/ 
     trunk/ 
     branches/ 
     tags/ 
    proj2/ 
     trunk/ 
     branches/ 
     tags/ 
    ... 

•有多大你的项目?通过HTTPS使用svn效果很好,尤其是在网络连接速度很快的情况下。 HTTPS也是一个相当普遍的访问系统。除非您经常查看数百或数千个文件(或者除非您试图对数千个修订版的文件进行指责),否则速度差异可能不值得您这样做。在我们公司,我们使用svnserve并通过kerberos门票进行身份验证,但是这很难安装。

0

我能想到的只有两种安全方式:通过SSH隧道使用svn,或者使用svn通过Web服务器通过启用了SSL的HTTP进行推送/推送。

我会将每个项目保存在自己的存储库中,对每个项目使用标准的trunk/branches/tags格式作为存储库布局。这是一个更清晰的布局,因为每个东西都有自己的容器,并且如果其中一个Subversion数据库被损坏或破坏,它不会影响所有项目的所有工作。

1

如果你们都比较快,通过Apache 2通过SSL运行SVN是一个不错的选择。没有防火墙麻烦和用户认证可以通过几种方法完成。

我在另一个大陆上有一个托管的SVN帐户,因为SSL没有那么快但可以接受,因为它是我们正在讨论的源代码,没有太多的数据传输正在进行。如果你有更近的服务器,我相信性能会相当好。

多个存储库:我会说配置问题比可能的性能问题更糟糕。通过只保留一个存储库,可以最大限度地减少配置

3

我会建议

  1. 阿帕奇,不svnserve--它的速度不够快,防火墙 - 和代理友好,用户管理是同样的工作无论哪种方式。我还发现能够通过浏览器浏览我的存储库非常有用。

  2. 只有一个存储库,每个项目的文件夹包含trunk/branches/tags。这比我想象的要灵活得多,在很多情况下,你不需要trunk/branches/tags的子目录。管理单个存储库更容易,而且您拥有版本控制功能,因此您无需担心用户搞乱了其他项目或其他任何内容。

0

多个项目VS单人项目:

如果代码是常见的文件会绕着,使用一个存储库。如果代码是孤立的,请使用很多。记住:

  1. 一个信息库,使文件移动&目录重命名方便,控制
  2. 存储库中的变化无处不在颠簸的修订版本号在仓库
  3. 开发商物理目录结构可以是不同的SVN结构

认证

使用apache,并且如果您将apache配置为始终进行身份验证,则不需要使用SSL。

<Location /svn/test> 
    DAV svn 
    SVNPath /svn/test 
    <LimitExcept GET PROPFIND OPTIONS REPORT> 
     AuthType Basic 
     AuthName "Authorization Realm" 
     AuthUserFile /svn/passwd 
     Require valid-user 
    </LimitExcept> 
</Location> 

您可以使用这些规则来在结帐时要求输入密码。并且你的密码存在于一个文件/ svn/passwd中。

和...

使用TRAC为好。它很好地与颠覆集成,并为开发人员提供了一个远离颠覆的界面来查看他们的文件/更改集等。

+0

将Trac附加到现有的Subversion回购有多容易? – cdeszaq 2009-02-27 14:11:28