`
mmdev
  • 浏览: 12913512 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

使用SubVersion+TortoiseSVN多仓库方式进行版本控制

 
阅读更多

是个好东西,好好运用。


每个程序员都知道代码的管理是的重要性,如果一不小心把自己辛苦写了很久的代码搞丢了,那估计把电脑砸了想法都有了。我之前就干过这样的事情,调试了2天的代码,Copy来Copy去,最后竟然把最新的代码给覆盖了,苍天啊,当时真的想把电脑砸了。

那时候,项目进度很急,发生这样的事情,心理很窝火又不敢告诉老板让他给我延期。我知道告诉他肯定没有好果子吃。毕竟他经常在我们耳边唠叨要及时把代码checkin到公司的sourcesafe上面。
说起SourceSafe,我以前所在公司是强制要求的使用,每周要求必须CheckIn几次,否则会找你谈话或扣钱。其实我们这些程序员也很想使用版本控制软件来管理自己的代码,毕竟安全很多。但是我们就是不喜欢用SourceSafe。离开公司之后,SourceSafe就没有再怎么用了。我没有仔细研究过SourceSafe的各种优缺点,但就是感觉不方便,不喜欢。
后来再次想启用版本控制,在网上搜了一下,CVS好像是用的最多的。自己也下来试了一下,搞了很久,感觉实在是不习惯,放弃。直到最后看到SubVersion和TortoiseSVN,看介绍好像很不错,网上评价也很好,于是决定试一下。测试的感觉真的很不错,TortoiseSVN和资源管理器集成,使用方便,于是就正式启动了SubVersion + TortoiseSVN作为我的版本控制系统了。
最近系统从XP换了2003,要重新安装SVN,当时怎么装的都不记得了,在网上搜了好一会儿才搞定,于是决定把安装过程记录下来,以便以后容易找。
1. 简单说明
Windows下最方便的SVN组合应该就是SubVersion + TrotoiseSVN + SVNService 了。
  • SubVersion是后台服务。
  • TrotoiseSVN是进行可视化操作的前台,和资源管理是集成在一起的。
  • SVNService是一个把SubVersion转换成Windows服务方式运行的软件,有了这个东西,你就不用老是开着一个命令行窗口运行SubVersion的后台了。不过据说1.4版以后的SubVersion好像可以直接设置为Windows服务模式,这样就不需要这个软件了。我之前一直用它,也懒得去研究新的东东,还是继续用它做服务好了。
2.各个软件的下载地址
3.安装
[1] SubVersion
按照默认安装,不停next就可以了。
[2]TortoiseSVN
好像也没有什么要设置的,默认安装。由于和资源管理器集成的,所以装后要重启。
[3]SVNService
把那个SVNService.exe拷贝到SubVersion安装目录的bin目录里面,使用方法后面介绍。
4. 配置
[1]创建仓库,也就是创建一个保存你的代码历史的目录,有两种方法来:
  • 使用SubVersion的命令:进入命令行,CD到SubVersion/bin目录,运行命令:svnadmin createD:/repository。其中红色部分是要创建的仓库目录名,根据你的要求自己修改。
  • 使用TortoiseSVN的命令:自己新建一个目录,在上面点击右键,TortoiseSVN->Create Repository->OK,仓库建好了。
[2] 仓库说明:
打开刚刚建立的仓库目录,你会发现里面有几个目录:
  • dav目录是提供给Apache与mod_dav_svn使用的目录,让它们存储内部数据,我之前使用的版本没有这个目录
  • db目录就是所有版本控制的数据文件
  • hooks目录放置hook脚本文件的目录
  • locks用来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端
  • format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号
  • conf目录是这个仓库的配置文件
[3] 创建密码:
进入conf目录,你会看到三个文件:authz、passwd和svnserve.conf,这些文件就是用来管理svn的登录名和相应的用户分组、密码、权限等功能。以下分别是三个文件的配置方法。
  • 对svnserve.conf文件作如下修改,找到以下三行:
    #anon-access = read
    #auth-access = write
    #password-db = passwd
    将这三行前的“#”号去掉!
  • 打开passwd文件:
    在[users]下面增加用户名,例如:
    mark123 = 45678 (前面是用户名,后面是密码)
  • 关于authz文件,主要是做复杂的群组权限控制,我是单机个人使用,不用设置,只要上面passwd的用户名和密码就可以了
5. 将SVN作为服务运行
如果不把SVN做为service运行,那你每次都要手动启动,并且总是有个命令行的黑窗口在那里。如果你关闭了命令行窗口,那SubVersion也就停止运行了。所以如果你想Windows启动后SVN自动运行,就把它设置为服务把,下面是操作步骤。
从命令行进入到SubVersion/bin目录,依次运行以下命令:
  • svnservice -install –daemon –root "D:/repository"
  • sc config svnservicestart=auto (特别注意,start后面必须紧跟=,不能有空格,这个问题浪费了几分钟的时间)
  • net start svnservice
查看Windows的服务,SVNService已经启动,而且是自动运行的服务了。
6.测试运行
在任意目录,右键TortioseSVN->Repo broswer->URL输入:svn://localhost
如果出现密码提示,那就输入上面设置的用户名和密码。如果在Repository Broswer能看到svn://localhost,那就说明安装成功,大功告成了。

7.建多个仓库

使用上面的方法只创建了一个仓库,把所有程序都放入一个仓库看起来有点混乱,我喜欢按照项目给每个项目建立一个仓库,同一个项目的代码组件放入同一个仓库,这样看起来就清爽很多。
下面介绍一下我的做法:
建多个仓库:
[1]新建一个放置项目仓库的目录,比如D:/SVN。只是个目录,不要在这个目录创建仓库。
[2]创建项目1的仓库:svnadmin createD:/SVN/Project1
[3]创建项目2的仓库:svnadmin createD:/SVN/Project2
[4]依次类推,把每个项目的仓库建立在D:/SVN目录里面就OK了。
使用多个仓库:
[1]使用 svnserve -d -r "D:/SVN" 启动
[2]如果你还是按照svn://localhost访问仓库就会发现仓库是空的。
[3]要访问你的项目仓库,只要在URL后面加上仓库目录名就可以了,比如可以通过svn://localhost/Project1来访问项目1的仓库,里面放置的都是项目1相关的代码。用同样的方法就可以把项目仓库分开访问了,是不是整洁清爽不少啊!
建多个仓库:
在server端,新建一个目录用来存放所有的仓库。比如c:/svnrepos。然后在这个目录下建立每个项目独立的仓库。
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] 由于每个仓库的独立的,记得给每个仓库配置用户和密码哦。

8.附上我的过滤列表,这些类型的文件不纳入版本管理:
Debug DebugUnicode DebugStatic Release ReleaseUnicode ReleaseStatic vssver.scc mssccprj.scc _private _vti_cnf _vti_pvt *.pch *.bak *.???~ *.obj Thumbs.db
9. 设置开机自动windows启动服务

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指明svnrepository的位置,service参数与root参数都作为binPath的一部分,因此与svnserve.exe的路径一起被包含在一对双引号当中,而这对双引号不需要进行转义。

displayname表示在windows服务列表中显示的名字, depend =Tcpip 表示svnserve服务的运行需要tcpip服务,start=auto表示开机后自动运行。

安装服务后,svnserve要等下次开机时才会自动运行。

若要卸载svn服务,则执行sc delete svnserve即可

总结:SubVersion是一个很优秀的版本控制软件,功能性,易用性都很不错,现在也已经有不少CVS的项目转换到SubVersion了。这个好东西希望每个程序员都不要错过,不要等文章开始一幕的悲剧发生的时候才后悔。SubVersion的功能是很强大的,我这里只是介绍了最简单一种的安装使用方法。如果以后项目做大了,需要多人合作,甚至通过Internet合作开发,那就需要做一些高级的配置了。同时SubVersion具体的使用我也没有提及,主要是自己也没什么了解,平时就只作几个简单的Check out、Commit几个命令。以后用到高级命令的时候我会再整理一篇关于使用方法的文章。
分享到:
评论

相关推荐

    TortoiseSVN-1.6.7.18415-win32(版本控制 含简体中文语言包)

    SVN,是SubVersion的简称。它是CVS的替代产物,同时也支持 SSL。...SVN作为跨平台多人协作的版本的管理方法,在多个团队成员管理同一段代码的过程中显得尤为重要,使用SVN可以方便的进行分支、合并,记录下所有的版本。

    TortoiseSVN客户端程序

    简单点来说,版本控制就是数据仓库,它可以记录你对文件的每次更改。这样,就算你在昏天黑地的改了几个月后老板说不要了,还是按照过去那样,你也不会抓狂,简单的恢复版本操作就搞定一切。 2.2、什么是 Subversion ...

    SVN——TortoiseSVN安装使用

    因为,如果你的要求不高,只是想在本机,或者是可信任的局域网络中使用SVN版本控制,可以不需要安装SVN,而只使用TortoiseSVN即可。接下来就来讲讲TortoiseSVN的使用。1、下载TortoiseSVN。下载地址:...

    TortoiseSVN-1.7.10.23359-win32中文

    SVN,是SubVersion的简称。它是CVS的替代产物,同时也支持 SSL。...SVN作为跨平台多人协作的版本的管理方法,在多个团队成员管理同一段代码的过程中显得尤为重要,使用SVN可以方便的进行分支、合并,记录下所有的版本

    Slik-Subversion-1.9.7-x64.msi

    windows下的svn服务器 svn 服务端安装包 要建立仓库必须先安装此包 Slik-Subversion-1.9.7-x64.msi ,可以配合 TortoiseSVN 使用

    subversion服务器配置

    subversion服务器的一些基本配置,包括使用TortoiseSVN建立仓库,配置用户权限等等。

    svn-1.4.3-setup.exe.7z

    如果你使用 Subversion 1.3 或更高版本,可以使用 SVNListParentPath on 指示,这样当你使用浏览器访问父路径而不是具体某个版本库时 Apache 就会显示所有版本库列表。 路径为基础的授权 mod_authz_svn 模块可以...

    SVN安装使用手册 SVN 安装 使用 手册

    Subversion 是一个自由/开源的,专门针对CVS的不足而开发的版本控制系统。Subversion是版本管理的后台系统,其核心是保存数据的档案库-repository。档案库用分层的“文件-目录”文件系统数来存储数据。连接到档案库...

    tortoiesSVN客户端+Ubuntu上SVN安装配置步骤

     apt-get install subversion 2. 建立svn仓库  1). 建立svn目录:mkdir /home/.svn(使用隐藏目录)  2). cd /home/.svn  3). mkdir astar  4). 创建仓库astar:svnadmin create /home/.svn/astar,执行完毕后...

    tortoisesvn安装包64位英文版

    很多的企业都是将它们的代码集中管理的,如此说来所有(重要)政府项目估计都使用的是集中式数据仓库的版本控制系统。 2.安全机制, 不会每个人都拷贝一份, 可以对组员限制, 也可以分配不同组 3.团队合作开发起来传递的...

    Subversion--Apache提供服务

    也许大家在《Subversion以及TortoiseSVN(svnServe提供的服务)》一文中发现,我们在用SVN进行客户端迁出时,用的是svn://localhost/svnDB01,因为不是http协议,所以在穿越防火墙时可能会有限制。如果用Apache提

    VisualSVN Server 2.7.3

    TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去...

    SVN安装配置与使用(完美版)

    1、所选服务器安装包:VisualSVN-Server-2.1.3.msi、2、客户端安装包:TortoiseSVN-1.6.2.16344-win32-svn-1.6.2.msi注意:location:为安装文件位置,Repositories:为管理的代码仓库的位置,若选中...

Global site tag (gtag.js) - Google Analytics