用Delphi进行软件开发,一直使用VSS+VSSConneXion进行源代码的版本控制,感觉VSS局域网共享的的不安全性;而,最流行的源代码版本控制软件似乎不能很顺利的使用在Delphi的环境中;故,亲身经历下到底能不能使用SVN。首先,安装配置好Subversion和TortoiseSVN,均使用最新版本,可以在官方网站下载;Delphi与SVN连接的插件,经千辛万苦的查找,在http://www.2ccc.com/article.asp?articleid=3644(或http://delphiaddinfortortoisesvn.tigris.org/)上找到具有该插件功能的单元文件,创建dpk工程对其进行封装,然后安装dpk,That's all。。。
看来什么都自己亲自试验下,那样体会更深。。。
参考如下资料:
<1> subversion 作为源码管理的好处已经不容多说了,以前在eclipse下使用CVS感觉很是方便快捷,现在要用
delphi7来写软件,我还不知道delphi 下是使用什么工具进行源码管理的,据说是有的但网上也没找什么评论和介绍使用
的文章,想想算了还是使用subversion吧。
我使用的 windows端文件是:svn-1.4.6-setup.exe(http://subversion.tigris.org/)客户端的工具使用的 是:
TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi(http: //tortoisesvn.net/downloads )这两个文件去网上下载吧。至
于这两个文件的安装只需要一路next下去就可以了。下面
1. 建立代码仓库 在你希望建立代码仓库的文件夹(我的机器上是D:/workSource/delphi/svn)下单击鼠标右键,选中菜
单“TortoisesSVN” 选项“Create repository here”。 在弹出的窗体中选择默认的FSFS选项。单击OK,就发现在该
目录下多了好几个文件,至于这些文件的说明可以去查看相关文档。
2.修改配置文件 首先修改的是D:/workSource/delphi/svn/conf/svnserve.conf文件
将 ## password-db = passwd修改为password-db = passwd,就是去掉#
修改同目录下的passwd文件添加用户名和密码:admin = 123456
3.开通svn服务 在命令行下可以使用sc来建立windwos端的服务,如下
sc create svnservice binpath= "C:/Program Files/Subversion/bin/svnserve --service -r
D:/workSource/delphi/svn/" displayname= "SVNService" depend= Tcpip start= auto
成功建立服务有这样提示:[SC] CreateService Success.
可以查看下当前的svn系统信息。在命令行下输入:svn info svn://localhost
路径: localhostURL: svn://localhost
版本库根: svn://localhost
版本库 UUID: e4ce80a8-1132-2b4f-bed1-973d4c8614e0
版本: 1
节点种类: 目录
最后修改的作者: admin
最后修改的版本: 1
最后修改的时间: 2008-05-30 15:32:19 +0800 (星期五, 2008-05-30)
注: 其中C:/Program Files/Subversion/bin/svnserve代表svnserve.exe文件所在的位置。-r
D:/workSource/delphi/svn/是将以后在用Repo- browser访问时不需要这样填写
“svn://localhost/workSource/delphi/svn/”直接这样就可以svn: //localhost/了。
记得顺便启动该项服务。用sc创建服务的那条指令一定要注意空格,否则创建的服务要么不能使用,要么出现莫名的错误
。
4. 倒入项目到代码仓库 选中要导入到仓库中的代码文件夹,单击右键,选中菜单“TortoisesSVN”选项“Import”,在弹
出的窗体中的URL of repository:中填写:svn://localhost/project1,第一次使用是会弹出用户密码的输入框,依次输
入。单击Ok就将项目导 入到仓库中。接下来就是svn客户端的使用了
5.取出项目(check out)取出版本库到一个工作拷贝:在任意一个空目录下,比如在f盘建立一个空文件夹
f:/worksource 。单击鼠标右键选中“SVN Checkout”。在“URL of repository”中输入 “svn://localhost/project1
”,这样我们就得到了一份 project1 中内容的工作拷贝。
6、存入(check in)/提交(commit)在工作拷贝中作出修改并提交:在 project1 工作拷贝中随便打开一个文件,作出
修改,然后单击鼠标右键选中“SVN Commit... ”。这样就把修改后的信息提交到了版本库,版本库根据情况存储提交的
数据。
7.在修改过的文件上单击鼠标右键选中 “TortoiseSVN -> Show Log” ,可以看到对这个文件所有的提交。在不同的
revision 条目上单击鼠标右键选中“Compare with working copy”,我们可以比较工作拷贝的文件和所选 revision 版
本的区别。
等有时间再将项目代码提交到公司的171机器上。
<2>参考:
Subversion安装成service (2007-07-12 19:06:22)
标签:svn 分类:IPTV
作者:Rock Sun, Subversion中文站。
如有转发请注明出处:http://www.subversion.org.cn/index.php?option=com_content&task=view&id=83&Itemid=9
以前的svnserve要想成为windows服务,必须依赖于svnservice或其他工具。从Subversion1.4开始,Subversion本身就集
成Windows服务的工具。
1,安装svnservice
在Windows NT中(包括Windows XP, Windows 2000, Windows 2003 Server)本身包含了一个安装服务的工具,叫
做"Service Control",也就是sc.exe。
例如我的Subversion安装在"D:/Subversion",版本库在"D:/svnroot",而我希望对应的Subversion服务名为svnservice,
安装这个svn服务的命令就可以这样写:
sc create svnservice
binpath= "D:/Subversion/bin/svnserve.exe --service -r D:/svnroot"
displayname= "SVNService"
depend= Tcpip
请注意,因为便于察看,上面的命令分为多行,但在实际执行时应该在一行里。另外,在以前启动svnserve时会使用"-d"
选项,也就是守护进程模式,在这里不能使用,会导致服务无法启动。同样,"-i"和"-t"选项也不能使用。
在命令行窗口执行完这个命令之后,服务还没有启动,你可以继续运行"net start svnservice"启动这个服务,然后使
用"net stop svnservice"停止服务。
另外还有两点需要小心处理。首先,如果路径中包括空格,一定要用“/”处理“"”号,例如上面的例子中如果
svnserve.exe在“c:/ program files/subversion/”中,则命令应该写为“binpath= "/"c:/program
files/subversion/bin/svnserve.exe/"”(“”中的内容),整个命令如下,红色部分是改变部分:
sc create svnservice
binpath= "/"D:/program files/Subversion/bin/svnserve.exe/" --service -r D:/svnroot"
displayname= "SVNService"
depend= Tcpip
其次,sc对选项的格式还有要求,例如“depend= Tcpip”不能写为“depend = Tcpip”或“depend=Tcpip”,也就是“=
”前不能有空各,而后面必须有空格。
2,删除服务
如果服务安装的有问题,你可能需要删除服务。要删除前面添加的服务,只需要运行"sc delete
svnservice","svnservice"就是我们创建服务时使用的名字。
3,配置服务是自动启动
默认情况下安装的服务不会随Windows的启动而启动,为了使svn服务能够随Windows启动而启动,需要修改一下"sc
create"命令(首先要删除),增加"start= auto"选项:
sc create svnservice
binpath= "D:/Subversion/bin/svnserve.exe --service -r D:/svnroot"
displayname= "SVNService"
depend= Tcpip
start= auto
当然你也可以使用图形化的工具修改服务的属性,你可以在“开始->运行...”中执行"services.msc",然后在界面中修改
。