Monday, February 26, 2007

Subversion 十分钟上手

Subversion 十分钟上手
一. 什么是Subversion?
Subversion是一个被设计成为CVS继任者的新版本控制系统。
二. 软件下载
首先到http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91下载安装包,这是windows系统下的,其他系统的请到 http://subversion.tigris.org/project_packages.html 去找对应的来下载。
三. 搭建服务器
如果你并不关心服务器端,那你可以直接看第四.章四.使用客户端。
STEP 1:创建版本库(repository)
命令行运行:
svnadmin create d:\svndatabase
D:\svndatabase 就是我指定的版本库的位置了
STEP2:建立用户
打开d:\svndatabase\conf 目录,这个conf目录是第一步建立版本库时创建的。打开svnserve.conf 找到以下两句:
#[general]
#[password-db = passwd]
去掉每行开头的注释符#,其中第二行是指定身份验证的文件名,即passwd文件。打开passwd文件,找到
#[users]
# harry = harryssecret
# sally = sallyssecret
去掉#[users]前的#,下面就是用户了,一行一个,格式是 用户名 = 密码。
STEP3:启动SVN服务
命令行执行
svnserve --daemon --root d:\svndatabase
开着个command窗口总是让人不爽,没关系,你可以用 svnservice.exe 这个程序把svnserve作成服务。
STEP4:把svn作为服务运行(Windows NT)
写到这里发现svnservice.exe 官方网站居然没有了,原来 subversion 从1.4开始本身就集成了Windows服务的工具。详细介绍请参看http://www.subversion.org.cn/index.php?option=com_content&task=view&id=83&Itemid=9http://svn.collab.net/repos/svn/tags/1.4.0/notes/windows-service.txt

四. 使用客户端
客户端有纯命令行客户端,也有GUI客户端。
作为初学者,我认为首先应该使用命令行方式,这样有助于理解,在命令行方式比较熟悉之后再转用GUI客户端。
STEP1:建立项目
首先在一个临时目录下规划好项目的主目录结构:
\temp\project
\temp\project\branches\
\temp\project\tags\
\temp\project\trunk\
\temp\project\trunk\main.cpp
\temp\project\trunk\toolbar.cpp
…………
makefile

现在可以将目录结构和数据导入版本库了
svn import project svn://svnserveraddress/project –m “init import”
如果服务器就是你的本地机器你也可以这样写
svn import project file:///d:/svndatabase/project -m”init import”
执行上面的命令,你当然都要在temp 下。第一次使用 svn 命令时,由于你没有指定username,所以会提示你输入用户名和密码,当然你也可以通过 –username 和 –password 参数来提供。Subversion 会在本机缓存你的用户名和密码,下次使用时就无需再提供用户名和密码了,如果你觉的这样不安全,可以通过 –no-auth-cache参数指定不要缓存用户名和密码。注意上面提到的几个参数都是两个横杠哦。
当屏幕出现
Committed revision 1
说明版本库已经包含你的目录和数据了。现在可以删除这个temp目录了。现在进入下一步了。
STEP2:获取工作拷贝
选择你的工作目录,比如 d:\myproject,命令行执行:
svn checkout svn://svnserveraddress/project/trunck AppName
这样在d:\myproject 目录下就有了一个AppName的目录,他对应的就是版本库里project\trunk目录。现在你就可以在这个目录下开始修改文件了。修改完成以后就可以进入下一步。
STEP3:提交修改
在d:\project\appname 目录下执行
svn commit

当另外的用户对这个项目作了修改并提交后,你就使用下面的命令使你的工作拷贝和版本库同步。
svn update
当你增加了新的文件和目录时可以使用 svn add 命令。

警告
你可以使用任何你喜欢的工具编辑文件,但你不可以在修改目录结构时不通知subversion,需要使用 svn copy 、svn delete、svn move命令修改工作拷贝的结构,使用 svn add 增加版本控制的新文件或目录。
至于GUI客户端,我目前使用TortoiseSVN
五. 分支、标签和合并
为什么要在这里讲分支、标签和合并?很多人包括一些使用版本控制系统有一段时间的人,几乎从来没有用过分支和标签功能,他们实际上只是把版本控制系统当成一个代码备份系统再使用。
以下两种情况都需要使用分支
u 大多数软件存在这样一个生命周期:编码、测试、发布然后重复。这样有两个问题,第一,开发者需要在质量保证小组测试假定稳定版本时继续开发新特性,新工作在软件测试时不可以中断;第二,小组必须一直支持老的发布版本和软件,如果一个bug在最新的代码中发现,它一定也存在已发布的版本中,客户希望立刻得到错误修正而不必等到新版本发布。
u 你可能要对项目做一些复杂的修改,整个修改可能会持续一周或更长的时间,这时团队中其他人还要继续工作,不能应为你的修改导致团队其他人只能停止工作。
上面两种情况版本控制都可以帮助你。具体的介绍请看svn-book. .

六. 网上资源
官方网站
Subversion官方网站
Subversion中文站
客户端
TortoiseSVN

注:本文部分内容摘抄于 http://www.duduwolf.com/post/setting_up_subversion.asp

cabwiz 不能处理中文 - royer的专栏 - CSDNBlog

cabwiz 不能处理中文 - royer的专栏 - CSDNBlog: "Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1515339"

自己的文章,试试Trackback 是怎么回事

中文版安装包的制作问题

问题来了!

我的Roulette Analyzer cab安装包时,悲惨的发现cabwiz 居然不能做中文的。 google了一下,发现到处都在说这个问题,但没有一个是能真正解决的,看来还只能继续搜索。

 

为了解决这个问题,我甚至手工修改了cab 包里的 _setup.xml,<characteristic type="Roulette Analyzer.lnk" translation="install"> 改成了<characteristic type="轮盘分析家.lnk" translation="install">,为了安全起见,在文件头上还加上了<?xml version="1.0" encoding="GB2312" ?>。结果安装的结果是程序组里显示的是一个 我不死心,跑到windows目录下,手工把这个lnk,改成了中文,但是在卸载时这个lnk没有删除。

Search This Blog