版本管理软件VisualSVN、TortoiseSvn、AnkhSvn 后记

原文: 版本管理软件VisualSVN、TortoiseSvn、AnkhSvn 后记

前些天我写了几篇关于VisualSVN 、TortoiseSVN、AnkhSvn这几个软件配置管理的文章,但是当时没有做后续的介绍了。

然后昨天我再看一下我自己写的文章发现有些地方错误,还有一些要补充的地方,所以今晚想把这些内容补上,以免自己日后忘记了

我之前写的文章的地址:VisualSVN 、TortoiseSVN、AnkhSvn软件配置管理

下面说一下要补充的内容

1、当时我在 系列三VisualSvn Server 里说

如果不选择Use secure connection ,Server Port那里,默认端口有80/81/8080三个;如果选中最后面的CheckBox,则表示使用安全连接【https协议】,端口只有433/8433二个可用。
默认是选用的。(Server Port那里,我选择的是端口80,没有勾选Use secure connection,本人觉得没有必要使用secure connection)至于授权Authentication,
默认选择 VisualSVN Server自带的用户和用户组。

实际上应该勾选Use secure connection,如果不这样做的话你写的代码有可能被人偷取,由于当时本人想事情太轻浮了(不好意思各位),因为回家了,不能回公司测试,

所以在家里放置了VisualSvn Server,在网吧使用TortoiseSVN。然后勾选 Use secure connection ,端口是8443,我使用TortoiseSVN下载代码的时候 ,TortoiseSVN提示我需要凭据,

然后我点击 确定,然后 提示我输入VisualSvn Server上的用户名跟密码,我输入了,其中需要凭据的那个对话框有两个要求是符合的,估计是没有证书的关系。输入了用户名、密码后就开始下载代码了。

我估计由于没有证书的关系,所以就算下载成功了,可以使用VisualSvn Server来进行项目的版本管理了,但是传输的数据应该不是加密的,希望懂的人能给我提示怎麽安装证书。

对于这个问题由于本人在网吧没有截图,而今晚在家里试验的时候TortoiseSVN报错,真的很抱歉

版本管理软件VisualSVN、TortoiseSvn、AnkhSvn 后记

 

2、补充 :在 系列五AnkhSvn里面漏了说的,如果你修改了VisualSvn Server里面的URL,比如你原来的URL是https://joe:8443/svn/GPOS/

,然后你修改为公网的域名:https://joe.xicp.net:8443/svn/GPOS (joe是我的计算机名),那么你原来在VS里面的项目跟原来已经签出的文档

就要全部重新下载了,比如你下载的代码的项目文件夹在 GPOS文件夹里面 路径:D:\GPOS,那么你就要删除了这个文件夹里面的所有东西,重新

在VS里面选择新的URL,重新下载到D:\GPOS 里面,原来的文档也是,在TortoiseSVN里选择新的URL,并新建文件夹重新下载到新建的文件夹

里面

 

版本管理软件VisualSVN、TortoiseSvn、AnkhSvn 后记

 

 

最后附上今天我测试VisualSvn Server 的一些数据 

测试环境:网吧(安装了TortoiseSVN) 家里(安装了VisualSvn Server 、VS2008、AnkhSvn)

网络:网吧带宽:8M  家里带宽:4M

整个公司项目文件夹的大小是大约160MB

(1)使用了15分钟下载完公司的项目的源代码 包括bin文件夹 resharper文件夹(我们使用了 resharper这个VS2008的代码提示工具插件,所以在项目文件夹下会有 resharper这个文件夹)

(2)在网吧里更新了代码文件,在家里立刻update一下就可以看到在网吧里的修改

(3)下载完成后TortoiseSVN提示一共下载了40多50M的文件,这个需要请教一下高手,整个公司项目文件夹的大小是大约160MB,为什麽TortoiseSVN会提示一共下载了40多50M的文件

 

最最后,谢谢大家看完我的文章,衷心的感谢。

(如果还有什么不对,欢迎大家拍砖)

 说错了,整个公司项目文件夹的大小是大约99MB,上传整个公司项目文件夹到visual svn server需要使用8分钟

注意:整个公司项目文件夹跟visual svn server都在同一台电脑上

 

还有最后一点忘记说了,导入了项目文件夹之后,就可以把那个项目文件夹删除了,服务器上只保存经过svn编码过的代码

只能使用svn软件才能打开的,如果要备份整个项目文件夹,那就要在客户端把自己的项目文件夹上传到服务器的代码备份的

文件夹里

如果所有的开发人员的代码都丢失,然后服务器里的代码备份的文件夹里没有备份代码,只能使用VS或者TortoiseSvn来下载

visual svn server上的代码了

我估计项目代码会保存在db文件夹里面,然后svn软件自己解码出来

版本管理软件VisualSVN、TortoiseSvn、AnkhSvn 后记

 

 说一下今天2012-11-16日的问题:

visual svn sever在公司服务器上竟然装不起来

在Windows2003 上安装visual svn sever不能启动svn服务安装失败

visual svn sever版本是2.1.4

Windows2003 standard SP1 32位

网上说要安装一个补丁

windowsinstaller-kb893803-v2-x86.exe

但是我下载下来安装的时候说:当前环境的版本比我这个补丁要新不用安装

在Windows事件查看器里
VisualSVN Server 服务因 1 (0x1) 服务性错误而停止。
在服务列表里,自己手动启动也失败,服务已经设置为自动启动

--------------------------------------------------------------------------------------------------

操作系统打了SP2补丁还是不行

最后我把svn服务的启动帐户设置为本地帐户就可以了

版本管理软件VisualSVN、TortoiseSvn、AnkhSvn 后记

在visual svn server的网站上找到这句话

VisualSVN Server stores all repositories (and any related data) in a single folder on the local disk (C:\Repositories by default). This article describes how to configure VisualSVN Server to store repositories on a network share.

Configuring required access permissions

 Required access permissions for the repositories folder stored on a local disk are configured automatically by VisualSVN Server during the installation. If repositories are stored on a network share, you should configure access permissions manually

By default, built-in system Network Service account is used to run VisualSVN Server service. This account has minimum privileges on the local computer and acts as the computer on the network, so you should simply grant access to the computer where VisualSVN Server is installed.

这句话大概是说,如果你把代码仓库放在本机Repositories,那么不需要network service帐户来启动svn服务,如果Repositories代码仓库放在局域网里的其他

机器上,就需要network service帐户来启动svn服务,因为network service帐户才有访问网络文件的权限

幸亏代码仓库是放在本机,否则用不上了!!!

文章地址:http://www.visualsvn.com/support/topic/00022/

 

项目终于做完了,总结一下使用SVN的感受,感觉SVN没有VSS好,本来以为可以合并代码解决冲突的,但是我们的项目是winform项目,在一个窗体的

designer文件里的代码是VS自动生成的,有几次发生过designer文件里的代码冲突,因为两个人同时编辑一个窗体,A程序员删除了窗体中的一个控件

B程序员没有删除窗体中的任何一个控件,那么当代码合并的时候问题就来了,有几次发生了XX控件调用了begininit()方法而没有endinit(),本以为

随便加一个endinit()方法就可以了,但是试过这种方法不行,endinit()方法不能随便添加,endinit()的添加是有规律的,而且VS的添加的begininit()

和begininit()不是 XX控件.begininit  XX控件.endinit() 而是

1           ((System.ComponentModel.ISupportInitialize)(this.superTab_SerList)).BeginInit();

2             ((System.ComponentModel.ISupportInitialize)(this.superTab_SerList)).EndInit();

 

每次遇到designer文件里的代码冲突都是灾难,我们都要重新把前一日备份代码放回到项目里,然后然后删除SVN项目里的代码库,又重新建代码库

然后重新导入代码,虽然SVN也提供了像VSS的 “锁” 的功能,但是需要手动在文件上按右键,加锁,不像VSS,一开始所有文件都已经加锁

希望大家使用过的,分享一下SVN的重要地方和使用方法

 

你可能感兴趣的:(tortoiseSVN)