每个程序员都知道代码的管理是的重要性,如果一不小心把自己辛苦写了很久的代码搞丢了,那估计把电脑砸了想法都有了。我之前就干过这样的事情,调试了2天的代码,Copy来Copy去,最后竟然把最新的代码给覆盖了,苍天啊,当时真的想把电脑砸了。
说起SourceSafe,我以前所在公司是强制要求的使用,每周要求必须CheckIn几次,否则会找你谈话或扣钱。其实我们这些程序员也很想使用版本控制软件来管理自己的代码,毕竟安全很多。但是我们就是不喜欢用SourceSafe。离开公司之后,SourceSafe就没有再怎么用了。我没有仔细研究过SourceSafe的各种优缺点,但就是感觉不方便,不喜欢。
-
SubVersion是后台服务。
-
TrotoiseSVN是进行可视化操作的前台,和资源管理是集成在一起的。
-
SVNService是一个把SubVersion转换成Windows服务方式运行的软件,有了这个东西,你就不用老是开着一个命令行窗口运行SubVersion的后台了。不过据说1.4版以后的SubVersion好像可以直接设置为Windows服务模式,这样就不需要这个软件了。我之前一直用它,也懒得去研究新的东东,还是继续用它做服务好了。
-
SubVersion: http://subversion.tigris.org/
-
TortoiseSVN: http://tortoisesvn.tigris.org/ 中文语言包,需单独下载。
-
SVNService: 这个文件比较小,而且也不会怎么更新,就直接放在这里吧。
-
使用SubVersion的命令:进入命令行,CD到SubVersion/bin目录,运行命令:svnadmin create D:/repository 。其中红色部分是要创建的仓库目录名,根据你的要求自己修改。
-
使用TortoiseSVN的命令:自己新建一个目录,在上面点击右键,TortoiseSVN->Create Repository->OK,仓库建好了。
-
dav目录是提供给Apache与mod_dav_svn使用的目录,让它们存储内部数据,我之前使用的版本没有这个目录
-
db目录就是所有版本控制的数据文件
-
hooks目录放置hook脚本文件的目录
-
locks用来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端
-
format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号
-
conf目录是这个仓库的配置文件
-
对svnserve.conf文件作如下修改,找到以下三行:
#anon-access = read
#auth-access = write
#password-db = passwd
将这三行前的“#”号去掉! -
打开passwd文件:
在[users]下面增加用户名,例如:
mark123 = 45678 (前面是用户名,后面是密码) -
关于authz文件,主要是做复杂的群组权限控制,我是单机个人使用,不用设置,只要上面passwd的用户名和密码就可以了
-
svnservice -install –daemon –root "D:/repository"
-
sc config svnservice start= auto (特别注意,start后面必须紧跟=,不能有空格,这个问题浪费了几分钟的时间)
-
net start svnservice
7. 建多个仓库
svnadmin create "c:/svnrepos/rolex"
svnadmin create "c:/svnrepos/omega"
使用 svnserve -d -r "c:/svnrepos" 启动。这样你的项目的url是:
svn://IP/rolex
svn://IP/omega
在 客户端新建一个目录,作为import的内容,比如c:/svnimport/rolex,然后在里面建立branches,tags,trunk子目 录,把你需要源代码管理的项目放入trunk目录,注意删除垃圾文件。在c:/svnimport/rolex上点击Import...,选择url为 svn://IP/rolex,导入。你可以使用仓库浏览器查看导入的效果。
[3] 由于每个仓库的独立的,记得给每个仓库配置用户和密码哦。
Subversion 从1.4版本开始,可以以windows系统服务的形式在开机时自动运行。但Subversion安装程序还不能把自己安装成windows服务,需要我们自己进行手动安装,方法如下:打开一个DOS命令窗口,执行如下命令:
sc create svnserve binPath= "/"C:/Program Files/Subversion/bin/svnserve.exe/" --service --root e:/svn" displayname= "Subversion Repository" depend= Tcpip start= auto
其中,sc是windows自带的服务配置程序,参数binPath表示svnserve可执行文件的安装路径,由于路径中的"Program Files"带有空格,因此整个路径需要用双引号引起来。而双引号本身是个特殊字符,需要进行转移,因此在路径前后的两个双引号都需要写成/"
--service参数表示以windows服务的形式运行,--root指明svn repository的位置,service参数与root参数都作为binPath的一部分,因此与svnserve.exe的路径一起被包含在一对双引号当中,而这对双引号不需要进行转义。
displayname表示在windows服务列表中显示的名字, depend =Tcpip 表示svnserve服务的运行需要tcpip服务,start=auto表示开机后自动运行。
安装服务后,svnserve要等下次开机时才会自动运行。
若要卸载svn服务,则执行 sc delete svnserve 即可