2024年1月12日发(作者:)

KingTang源码管理SVN使用手册(2008-3-1)

有鉴于原有的VSS源代码管理系统存在的不足:

1. 速度慢,特别是文件越来越多,历史版本文件越来越多,导致VSS服务器速度变慢

2. 稳定性不好。PB操作VSS时,经常导致非法操作,影响工作。

3. 无远程的VSS功能。在离开公司网络后,不能使用公司的源代码服务器。

4. 离线操作不方便。当断离服务器后,不好编辑代码,并且在并入代码库时操作不便。

5. 只能实现单一的代码管理,而不能兼顾其他文档的管理。由于现在只能在PB中嵌入VSS,在PB之外,没有工具可以有效实施文档管理。

6. 不能与其他开发工具的源码管理一致

新方案将采用PB9的外部工具PBSCC Proxy与TortoiseSVN组合使用。通过PBSCC一个中间环节,来实现与SVN的关联。SVN不仅可以管理源代码,也可以把软件开发中的其他文件或目录并入到SVN中,进行版本管理。

需要准备如下(按顺序安装):

1.

2.

3.

4.

5.

6.

客户端基础软件,svn-1.4.6

客户端管理软件, 语言(英文)

PB9.0客户端工具,PBscc

Eclipse客户端,Subclipse released for Eclipse 3.x - 1.0.6

Viusl Stdio 平台客户端,Visual SVN 1.3.1

相关网站资料:

/

/

7. (注:以上工具都在:服务器工具目录源码管理)

安装TortoiseSVN

点安装程序,按正常步骤下去,安装TortoiseSVN完后,需要重启计算机,然后在操作系统的目录浏览器上,点右键,弹出菜单会多出一些SVN内容。如图:

SVN功能菜单,主要有。如下:

安装后,可设置一些参数,以方便使用,主要如下。

1.设置提示窗口的参数,在什么情况下,可自动关闭

PB使用SVN说明

安装方法:

1. 先安装svn ,再安培TortoiseSVN,最后安装PBscc,顺序不可反。

2. 在装PBscc时,需要选择原来的“SVN安装目录”。

3. PBscc的错误日志,存放在“TortoiseSVN目录”下的

PB使用SVN总步骤

1. 先要在“工作根目录”(例如:d:his2003)建立一个“源代码管理目录”(例如:source)

2. 然后从SVN服务器上,取出代码,SVN中叫Check Out

(注:跟原来VSS的称呼有所不同,此处签出表示获取之意)

3. 获取后,再到PB中,设置PB环境。

4. 把PB程序库加入到“SVN管理目录”(即此例的source目录)。如原来已加入过,就不用此步骤,直接“刷新”PBL库或其中的对象即可。

5. 使用PB的“签出”、“签入”、“取消签出”、“刷新状态”、“查看历史”功能

获取SVN代码库

1. 在“工作根目录”建立“源代码管理目录”后,获取SVN的“项目库”,称“repository”

2. 取好后,目录图标会改变

3. 在source目录下,建立多个目录,一个PBL库对应一个目录,文件名同与PBL库名。

4. 把建立的多个子目录,加入到(add)到SVN,图标变成一个“加号+”

5. 加入到SVN后,最后还需要提交到SVN(commit)

PB环境设置:

1. 与原来VSS的设置大致相同

2. 设置“Workspace”的属性的Source Control

3. 设置“源代码管理工具”,指定用户(User Id),源代码管理目录(Project),本地目录(Loacl

Root Directory),设置安后才能导入代码到SVN。

(注:用户名UserId,一定要使用SVN帐号,而千万不要用默认的本地系统用户)

(注:选择Project目录时,需先用SVN获取到本地)

选好“源代码目录”后的图:

如果选中未属于“源码管辖的目录”,选择中时会提示出错:

4. 点击《Connect》,登录SVN系统,有可能会出现提示,输入用户密码

(注:可以记住用户名和密码,免去每次输入)

5. 一定要选上“删除PB自动生成的临时对象文件”和“允许覆盖只读文件”,如下:

PB程序加入到SVN:

1. 可对整个wordspace,或一个应用,或一个PBL,或一个对象。

建议先把单个的应用(*.pbt)文件加入,然后再按PBL库,一个一个的加入。

2. 如要加入时,出现错误,或死机,需要特殊处理。

对于PB的应用项目文件(*.pbt),或整个PBL的对象,加入时可能会死机,出现此情况,要强行中断PB,再调出“任务管理器”,中断和两个进程,然后在操作系统的目录中,点中“代码根目录”(如source),点《SVN Clean Up》,再《SVN的Commit》,用手工提交,而不用PBsccProxy,当再打开PB时,查看Wordspace中的应用项目,其状态会变成“源码托管”(即一个绿点)。

找到:和进程,删除之。

清除SVN的非法状态

3. 导入PBL库中的程序对象

4. 由于在Workspace中加入可能会出错,所以最好是在PB的Library中进行操作,选中所有对象,批量操作。为保险起见,按单个PBL,只选中一小部分,分批操作。

注意:在进行大量的对象“add to source control”时,PB会出错!

5. 在此操作时,会反复出现“PBSCC Proxy”对话框,此问题还未解决!

可从下拉框中选中随便选中上次输入的内容。但在以后的正式工作中,在“签入”时,需要完全填写此“修改日志”信息。

6. 导入后,会在his2003source 生成很多PB程序文件,一个文件对应PB中的一个程序对象。每个文件的图标都是 “源代码托管”状态(绿色的勾)。

PB中SVN工作:

1. 操作与原来的VSS相近。PB通过PBscc代理,调用SVN的功能,自动进行相应处理。

2. 签出操作

签出后,PB中对象状态,与,浏览器中文件状态,比较:

其实,文件的源码状态还是不变,为“在库”状态/

3. 签入操作

4. 查看历史变更“Show History”

查看文件内容,点《Open》

5. 文件版本比较,也在PB的“Show History”,而PB中的“Show Differences”将不再使用!

6. 第一次用PB连接SVN,如果PBL库的对象很多(即SVN中文件很多),速度会很慢!请耐心等待。

PB问题处理

1. 如果密码改变,有可能打开PB,连接SVN时,源码管理会没有反映(即菜单出不来)

查看PB的提示信息,及错误信息,发现如下:

在DOS下执行Pberr的出错的代理命令:

先要去除:Authentication data 《Clear》

再到“d:his2003source”目录下,点出《SVN Update》,重新输入用户密码(可保存)

2. 关于各目录的权限问题。如对某些文件只有读,没有写的权限;或;对某些目录下没有读写权限。都会出现提示“Access denied”。请与管理员联系。

3. 有关错误日志文件的设置和查看

a) 如何设置PB错误日志

运行 注册表管理程序,找到:

[HKEY_LOCAL_MACHINESOFTWAREFM2iPBSCC Proxy] ""

例如:设置 = D:,即可把错误日志保存在此目录。

此值默认为空,表示不保存错误日志。

b) 保存错误日志,会影响速度和性能,在找出问题后,请关闭日志。

4. End second

SVN主要功能介绍:

1. 目录归档

在“源代码管理目录中”(注:非PB工作根目录),建立目录,再加入SVN,再提交。

2. 文件归档

新建文件后(如:word、excel、文本、图片…),或从其他地方拷贝到“源代码管理目录”或其下的子目录(注:其下的子目录也必有归档),文档也要先加入SVN,再提交。

3. 刷新目录或文件。点《SVN Update》从SVN取得最新版本。

4. 删除文件或目录。在目标上,点出删除菜单后《SVN Delete》,再提交《SVN Commit》

5. 查看文件或目录的日志。在目标上,点出《SVN Show log》

6. 重命名文件。可直接修改。或在文件上点出《SVN Rename…》

7. 远程访问SVN。使用主机地址:端口号/svn/项目名称 ,输入用户密码之后方可访问。

(注:公司内网访问 10.1.51.100:90/svn/项目名称/

公司外网访问 60.190.25.222:90/svn/项目名称/

用户密码 使用原来服务器上,操作系统的帐户)

8.

更新出错的处理。

如果你更新到指定版本,再送交是将出现out of date 错误!如果你想撤销修改并从以前的版本开始工作,你必须使用从“显示记录”对话框中选择复原自此版本以来的变更Revert changes from this revision 命令或使用快捷菜单中的合并 菜单命令。

更新至版本Update 命令允许复原至低版本。比如你的工作目录版本是100,你想复原至版本50-直接填写在复原对话框中填写复原至版本50。通常,不复原单个文件,确实需要,从记录对话框(Log)选择储存版本至Save 命令。

解决冲突Resolving Conflicts

有时你从档案库更新文件会有冲突。冲突产生于两人都修改文件的某一部分。解决冲突只能靠人而不是机器。当产生冲突时,你应该打开冲突的文件,查找以<<<<<<<开始的行。冲突部分被标记:

<<<<<<< filename

your changes

=======

code merged from repository

>>>>>>> revision

Subversion为每个冲突文件产生三个附加文件:

更新前的本地文件。

V

你作改动的基础版本。

9.

V

更新时从档案库得到的最新版本。

使用外部合并工具或使用快捷菜单的编辑冲突Edit Conflict 命令来解决冲突。然后从快捷菜单中执行已解决Resolved 命令,将改动送交到档案库。请注意,解决命令并不解决冲突,而仅仅是删除 and .r* 文件并允许你送交。

10.