好的,我正在为我的网络团队获取版本控制流程。
我知道每个用户在本地计算机上都有完整的代码副本。
不幸的是,对于我们的许多网络应用程序,他们有额外的服务器特定数据库或其他系统集成要求,无法在用户的工作站上复制(即某些服务器不会安装在XP,Vista等)。
我正在考虑在我的一台服务器上设置一个区域,作为每个用户的工作副本,但仍然驻留在网络上。
即
/SVRROOT/
- Dev1 Working Copy
- Dev2 Working Copy
- Dev3 Working Copy
这意味着每个用户都有自己的工作空间(根据SVN最佳实践),但它将驻留在网络上。
是否有人发现此型号存在问题?
答案 0 :(得分:4)
您可能会发现Subversion操作在网络上的性能远低于本地相同Subversion操作的性能。我在Unix版本中遇到了这个问题,在NFS上安装了工作目录,但我怀疑你可能会遇到使用Windows共享的相同情况。
值得比较不同情况下的表现,看看会产生什么影响。
答案 1 :(得分:0)
如果将网络文件夹映射到驱动器盘符,某些subversion操作会执行得更好一些。当您使用unc路径而不是驱动器号时,apache Apr库会执行一些额外的网络请求。
通常,您应该只使用本地文件夹作为工作副本,因为您只需备份服务器即可。
Visual Studio 2005和2008允许大多数Web服务器方案及其迷你Web服务器,大多数数据库都可以通过网络访问(或按开发人员设置)。这将开发人员从单点故障中分离出来。
每个人都在一台服务器上,一个开发人员可能会崩溃所有开发人员正在使用的Web服务器/数据库服务器......
答案 2 :(得分:0)
根据FAQ,至少在使用TortoiseSVN
时,强烈建议不要在网络共享上使用工作副本:
我可以在网络共享上存储工作副本吗?
这取决于网络份额。但是我们真的非常希望您不这样做!即使您使用Windows服务器并使用这些网络共享,fcntl()文件锁定也不是完全可靠的。对于基于Samba的股票,所有押注都是关闭的。这意味着您将获得损坏的工作副本,然后您将丢失数据!也许不是今天,也许不是明天,但是总有一天你会的。
我不确定这在一般情况下如何适用于SVN。
我们还在Windows网络共享上使用SVN工作副本,最近遇到了一些问题,例如偶尔更改文件/目录权限,从而使工作副本无法使用。
答案 3 :(得分:0)
在Win10开发人员机器和通过smb安装的AIX服务器之间,我们拥有与您完全相同的型号。 我使用此设置的经验是Windows的每个SVN操作都非常慢(特别是对svn进行的模版检查。对于大型项目,需要几分钟的时间)。 另外,如果您在同一工作副本上通过win和命令行AIX运行parallel svn操作,通常会导致WC损坏并不得不检出新的WC。
之所以这样做,是因为该项目是在AIX上编译的,并且我们希望在提交更改之前对其进行编译和测试。 我们通常要做的是使用常规IDE在Windows中编辑源代码,但直接使用AIX svn客户端从CLI直接执行每个svn命令(即Windows仅在AIX进行所有svn工作时修改文件)