如何搭建svn本地服务器,管理本地的代码
搭建SVN服务器端:
1 解压缩svn到一个目录, 例如c:\svn
2 解压缩svnservice的压缩包, 将svnserviceexe放入c:\svn\bin
3 安装TortoiseSVN, 安装完毕时会提示重新启动计算机, 重启完毕后安装简体中文语言包, 然后在随便一个目录右击, 就会发现多出了一些SVN相关菜单, 选择其中的TortoiseSVN, 再选择子菜单"Settings", 设置Language为"中文(简体)"
4 打开"我的电脑", 建立一个存放svn信息的目录, 例如c:\svnhome, 然后返回在c盘, 右击这个svnhome目录, 在出现的菜单中选择TortoiseSVN, 再选择子菜单"在此创建文件库", 选择fsfs方式即可 (注: 这里选择创建文件库实际上就相当于让TortoiseSVN代替你进行了svnadmin create c:\svnhome的操作)
5 在dos控制台状态下cd c:\svn\bin 然后svnservice -install -d -r c:\svnhome 再net start svnservice来将其作为服务运行, 建议你再到控制面板-管理工具-服务中找到SVNService, 右击选择"属性", 再将其启动类型设置为"自动"
6 打开c:\svnhome, 你会发现已经多了一些目录和文件, 打开conf子目录, 打开svnserveconf文件, 这里行前凡是有#的都等于是被注释忽略了, 你可以把#去掉让那一行生效, 或者自己新添加行 里面的英文注释已经详细说明了各种设置的含义, 最后你设置[general]小节中行前没有#号的内容为:
anon-access = none
auth-access = write
password-db = passwd
含义是:
未验证用户无任何权限 (如果把none修改为read就是给予读权限)
已验证用户给予写权限 (当然也能读)
密码数据存放到passwd文件中
然后打开同目录的passwd文件来设置帐户:
同样, 设置[users]小节中行前没有#号的内容, 例如:
snowman=abc123
含义是:
用户snowman的密码为abc123
6 打开"我的电脑", 在你需要进行版本控制的目录上右击, 选择TortoiseSVN, 再选择子菜单"导入", 设置"文件库url"为svn://localhost 点确定后就会提示文件正在导入 (注: 这里是svn文件库与svn服务是同一台计算机的情况, 所以可用localhost, 其它机器如果要访问svn服务, 应该用svn://svn服务器的IP地址, 例如svn://100052)
至此, SVN服务器配置完成
客户端配置:
1 没安装TortoiseSVN的计算机先安装它并重启计算机 (注: 具体步骤参照前面搭建服务器端的第3步)
2 创建一个准备用来存放版本控制工程的目录, 例如d:\project, 然后在"我的电脑"中右击这个目录, 选择"SVN取出", 设置"文件库url"为svn://svn服务器的IP地址, 接下来会问你用户名和帐号, 你就填写前面搭建服务器端所设置的用户snowman密码abc123
(文件库url可参照前面搭建服务器端第6步的注解)
点确定后就会提示文件正在取出到d:\project
至此, SVN客户端配置完成, 你会看到d:\project及其下面的文件都被标记了绿色对勾
客户端的简单日常使用:
1 要取得工程的当前的最新版本, 右击d:\project, 选择"SVN更新"
2 你更改工程后, 要将你的修改更新到SVN, 右击d:\project, 选择"SVN提交" (谨慎的话请先更新到SVN最新版本后再提交)
如果要建立SVN服务器的话,推荐你使用Collabnet的Subversion Edge服务器安装包,内置了Apache,比官方原版在安装配置方面省心的多,几乎傻瓜式安装了,装好简单配一下就能用,也是免费的。 到Collabnet的官方网站下载wwwcollabnetcom
客户端的话,一般用TortoiseSVN,华军、天空等网站都有下载。
cvs, git, svn都用过,以下完全是主观感受:
1 git比svn快,用起来更流畅。
2 git在本地就可以用,可以随便保存各种历史痕迹,不用担心污染服务器。svn commit就到服务器了,有时候发现commit错了或不全就得再来一遍,有review更吐血了。(git commit --amend太好用了)
3 git拉branch和在branch之间切换都非常简单,可以随便折腾。svn一个branch就是一个copy。
4 git绝对不会有被lock了不能commit的情况。。
5 svn老版本每个目录都有一个svn目录,非常繁琐。(新版本svn也只在最上层有svn目录了,不过仍然比较难用,不在svn同目录下很多命令不给用,比如svn info)
TortoiseSVN是windows下其中一个非常优秀的SVN客户端工具。通过使用它,我们可以可视化的管理我们的版本库。不过由于它只是一个客户端,所以它不能对版本库进行权限管理。
TortoiseSVN不是一个独立的窗口程序,而是集成在windows右键菜单中,使用起来比较方便。
TortoiseSVN每个菜单项都表示什么意思
01、SVN Checkout(SVN取出)
点击SVN Checkout,弹出检出提示框,在URL of repository输入框中输入服务器仓库地址,在Checkout directory输入框中输入本地工作拷贝的路径,点击确定,即可检出服务器上的配置库。
02、SVN Update(SVN更新)
如果配置库在本地已有工作拷贝,则取得最新版本只是执行SVN Update即可,点击SVN Update,系统弹出更新提示框,点击确定,则把服务器是最新版本更新下来
03、Import(导入)
选择要提交到服务器的目录,右键选择TortoiseSVN----Import,系统弹出导入提示框,在URL of repository输入框中输入服务器仓库地址,在Import Message输入框中输入导入日志信息,点击确定,则文件导入到服务器仓库中。
04、Add(加入)
如果有多个文件及文件夹要提交到服务器,我们可以先把这些要提交的文件加入到提交列表中,要执行提交操作,一次性把所有文件提交,如图,可以选择要提交的文件,然后点击执行提交(SVN Commit),即可把所有文件一次性提交到服务器上
05、Resolving Conflicts(解决冲突)
有时你从档案库更新文件会有冲突。冲突产生于两人都修改文件的某一部分。解决冲突只能靠人而不是机器。当产生冲突时,你应该打开冲突的文件,查找以<<<<<<<开始的行。冲突部分被标记:
<<<<<<< filename
your changes
=======
code merged from repository
>>>>>>> revision
Subversion为每个冲突文件产生三个附加文件:
filenameextmine
更新前的本地文件。
filenameextrOLDREV
你作改动的基础版本。
filenameextrNEWREV
更新时从档案库得到的最新版本。
使用快捷菜单的编辑冲突Edit Conflict命令来解决冲突。然后从快捷菜单中执行已解决Resolved命令,将改动送交到档案库。请注意,解决命令并不解决冲突,而仅仅是删除 filenameextmineandfilenameextr文件并允许你送交。
06、Check for Modifications(检查更新)
点击Check for Modifications,系统列表所以待更新的文件及文件夹的状态
07、Revision Graph(版本分支图)
查看文件的分支,版本结构,可以点击Revision Graph,系统以图形化形式显示版本分支
08、Rename(改名)
SVN支持文件改名,点击Rename,弹出文件名称输入框,输入新的文件名称,点击确定,再把修改提交,即可完成文件改名
09、Delete(删除)
SVN支持文件删除,而且操作简单,方便,选择要删除的文件,点击Delete,再把删除操作提交到服务器
10、Moving(移动)
选择待移动的文件和文件夹;按住右键拖动right-drag文件(夹)到跟踪拷贝内的新地方;松开左键;在弹出菜单中选择move files in Subversion to here
11、Revert(还原)
还原操作,如刚才对文件做了删除操作,现在把它还原回来,点击删除后,再点击提交,会出现如上的提示框,点击删除后,再点击Revert,即已撤销删除操作,如果这时候点击提交,则系统弹出提示框:没有文件被修改或增加,不能提交
12、Branch/Tag(分支/标记)
当需要创建分支,点击Branch/Tag,在弹出的提示框中,输入分支文件名,输入日志信息,点击确定,分支创建成功,然后可查看文件的版本分支情况
13、Switch(切换)
文件创建分支后,你可以选择在主干工作,还是在分支工作,这时候你可以通过Switch来切换。
14、Merge(合并)
主干和分支的版本进行合并,在源和目的各输入文件的路径,版本号,点击确定。系统即对文件进行合并,如果存在冲突,请参考冲突解决。
15、Export(导出)
把整个工作拷贝导出到本地目录下,导出的文件将不带svn文件标志,文件及文件夹没有绿色的”√”符号标志。
16、Relocate(重新定位)
当服务器上的文件库目录已经改变,我们可以把工作拷贝重新定位,在To URL输入框中输入新的地址
17、Add to Ignore List(添加到忽略列表)
大多数项目会有一些文件(夹)不需要版本控制,如编译产生的obj, lst,等。每次送交,TortoiseSVN提示那些文件不需要控制,挺烦的。这时候可以把这些文件加入忽略列表。
0条评论