您的位置:首页 > 编程语言

SVN的安装和使用

2017-10-06 16:18 169 查看
一.什么是svn

全称 SubVersion

代码管理工具,在团队开发的时候使用,便于代码的管理

刚开发SubVersion时 开发团队用的CVS(CVS是在SVN出现之前的代码管理工具)

SubVersion1.0出现后 就使用SubVersion来管理SubVersion了

C/S程序

Server 服务器 用来管理代码(代码或者项目是在服务器的仓库repository里存放)

客户端 可以向服务器提交、从服务器下载最新的代码(检出checkout)、修改后提交(commit)

检出(checkout)

提交(commit)

客户端和服务器端通过svn这个私有的协议交互

svn://

每当版本库接受了一个提交,文件系统进入了一个新的状态,叫做

一次修订(revision),每一个修订版本被赋予一个无一无二的自然数,

一个比一个大,初始修订号是0,只创建了一个空目录,没有任何内容.

全局修订号:不像其他版本控制系统,svn的修订号是针对 整个svn目录树

的,不是针对特定文件的. 和cvs有较大差别

cvs: 每个文件都有1.0 1.1 1.2

svn :全局的 只有一个文件修改 修订号就改

二.下载并安装

1.下载svn-1.4.4

官方网站 http://subversion.tigris.org/

2.安装svn-1.4.4

(1)svn需要找到apache服务器 所以先装 apache_2.0.63-win32-x86-openssl-0.9.7m.msi

一路下一步

注: apache web目录在 htdocs下

(2)安装svn-1.4.4-setup.exe

一路下一步

3.准备工作和验证安装是否成功

将bin路径放置到path下

在cmd下输入svn验证是否安装完毕

出现 使用”svn help”得到用法

就是安装好了

常用命令

svnserve.exe svn服务器

svnadmin.exe 管理

svn.exe 客户端

三.仓库的创建和导入项目等

1.在服务器端创建仓库并启动svn服务器

c:\ 建立svn文件夹

svn文件夹下 建立repository文件夹

(1)在服务器端创建一个仓库

svnadmin create c:\svn\repository 把repository文件夹当成仓库

没出现提示表示创建成功

(2)启动svn服务器(服务器可以监听客户端的请求)

在命令行中输入如下命令:

svnserve -d -r c:\svn\repository 启动svn服务

让svn将此目录作为仓库,并侦听客户端的请求.

-d 为后台模式

-r 指定服务器的仓库路径

d daemon 后台进程

r repository 仓库

注意:不要关控制台 关了svn服务器就停了(可以通过查看svnserve进程来看服务器是否关闭了)

2.从客户端向服务器端import项目

建立 c:\svnclient\project1 文件夹

将project1作为一个项目

project1里面 建立

test目录

test.txt(模拟代码*.java)

将项目导入到服务器(仓库里),使用客户端命令svn,例如 svn import svn://localhost

演示代码:

cd svnclient 进入项目所在的路径

svn import svn://loclahost 将svnclient文件夹下的项目导入到svn服务器上,localhost为svn服务器的ip地址

问题1:出现一系列警告(没有成功)

svn:E205007:无法使用外部编辑器获得日志信息…

svn:E205007:没有设置SVN_EDITOR

原因:svn要指定日志变量SVN_EDITOR,用来保存日志

所以我们需要新建环境变量SVN_EDITOR

变量名:SVN_EDITOR

值:notepad

新建完毕以后从新启动cmd才生效

从新输入

cd c:\svnclient

svn import svn://localhost

*出现一个记事本

–此行及以下内容将会被忽略–

A

A表示Add

关了该记事本

控制台出现

日志信息未修改,或未指定

a>终止,c>继续,e>编辑:

选c 继续

问题2:

svn:E170001:认证失败

原因:我们没有指定好用户的用户名、密码,svn要保证

拥有权限的用户才能提交项目、检出项目,不能让任何人

提交、检出项目

[b]*********[/b]设置权限[b]***********[/b]

c:\svn\repository\conf

svnserve.conf 打开这个文件

匿名访问,不需要用户名就可以读

anon-access = read

授权访问,有权限才能写

auth-access = write

anon-access = read 的#去掉 这样可以匿名可以读了

不过现在客户端也只可以匿名读,我们的import操作是写操作,

所以我们在此行下增加一行 anon-access = write

最终

anon-access = read

anon-access = write

修改完毕以后 停掉服务器 重新启动(启动时会从新读取配置信息)

再重新把客户端的项目导入到服务器

svn import svn://localhost

关闭弹出来的记事本

日志信息未修改,或未指定

a>终止 c>继续 e>标记

选择c,出现以下提示

增加project1

增加加project1\test

增加加project1\test.txt

提交后的版本为1

3.在服务器端创建虚拟路径

导入的项目会放在svn服务器某个默认目录,如果再导入一个项目默认放到

这个目录就乱了,所以要在服务器端创建虚拟路径,以后在客户端导入

项目时,把项目导入到指定虚拟路径下即可

如何创建虚拟路径

svn mkdir svn://localhost/zzy

虚拟路径看不出来

实质存到一个单独的文件中 db\revprops db\revs中

和cvs不一样(svn是将整个项目放到一个文件中)

再导入另一个项目

新建svnclient2文件夹 在此文件夹下建立project2项目

cd c:\svnclient2

svn import svn://localhost/zzy

import项目时每次都出现一个文本文件很麻烦 如何解决(可以不做这个练习)

首先去掉SVN_EDITOR环境变量

在c盘下建立log.txt

svn commit hello.txt -f c:/log.txt

这样就不会每次输入完命令 弹出文本文件再关闭了

四.使用checkout检出项目

把项目checkout到指定目录svnclient3

cd c:\svnclient3

svn checkout svn://localhost/zzy

*取出指定版本

先查看帮助 svn help checkout

svn checkout -r 4 svn://localhost/zzy 检出版本4

五.客户端修改项目后 从新提交到服务器

修改项目中的test.txt文件后

cd c:\svnclient3\zzy\project2\test

svn commit test.txt

如果提交时 提示锁定

可以使用svn cleanup 清除锁定后 再提交就行了

可以在另一个svnclient4文件夹检出一下刚提交的project2看一下是否提交成功

六.更新 update

从服务器下载最新的文件(不是第一次下载)

第一次下载叫检出checkout

例如客户端4 更新了文件test.txt 然后提交到服务器上

客户端3可以使用如下命令更新

cd c:\svnclient3\zzy\工程名

svn update test.txt

更新算读操作

七.检索出jboss的源代码

http://anonsvn.jboss.org/repos/jbossas/

1.c盘 新建jboss文件夹

2. <
4000
br>
cd jboss

svn checkout http://anonsvn.jboss.org/repos/jbossas/

八.svn高级操作 权限管理

用户名和密码在 svn\repository\conf下的三个文件中

svnserve.conf

authr

passwd

把svnserve.conf中的这两行都注释掉

anon-access = read

anon-access = write

1.把svnserve.conf文件中的这行注释打开

password-db = passwd

2.在passwd中指定用户名和密码

zhangsan = 123

lisi = 456

注意:在一次登录后,SVN会将我们的登录信息保存起来存放在硬盘上的文件中,

其存放位置为:C:\Documents and Settings[您的登录系统用户名]\

Application Data\Subversion,如果想要删除该信息,只需要将该目录中

的auth文件夹删除即可.

如果把auth删除掉,下次还要从新输入用户名、密码

3.客户端可以修改test.txt 然后重新commit 这时需要输入用户名和密码

[b]****TortoiseSVN的使用*******[/b]

一.什么是TortoiseSVN

TortoiseSVN(图形化的SVN客户端)

Tortoise乌龟的意思

TortoiseSVN-1.6

这个客户端可以标示哪个文件是新增的、改过的等等

随便在一个目录上单击右键会多出两个选项

SVN Checkout

TortoiseSVN

说明它已经和资源管理器进行了集成

二.使用TortoiseSVN

(一)服务器端

创建一个仓库并启动

(二)客户端

1.新建一个工程导入

客户端新建 c:\myclient文件夹

在里面建立

test.txt

test2.txt

可以在工程右键(也可以进入工程后 在空白处右键)—选择TortoiseSVN–import

URL of repository:

MiddleBk 为虚拟路径名

输入用户名和密码即可

2.从服务器上检出项目

新建myclient2文件夹 在myclient2文件夹右键-SVN checkout

Checkout Depth

Fully recursive(完全递归 目录和子目录都会导出) 不需要改

对勾表示项目已经和服务器关联起来了

3.修改文件并提交

修改过的文件 会变成 红色感叹号! 右键-SVN commit 提交后又变成绿色

4.新建文件test3.txt 加入到工程

TortoiseSVN-add

新增加的项目是 用 + 号图标表示

增加完后还要提交一次才可以哦!!

5.不想让匿名用户读取服务器上的文件anon-access = none

6.删除文件

客户端中删除一个文件(例如test3.txt)后可以在空白处右键-提交

服务器里的该文件也没有了

解决TortoiseSVN不显示绿色图标问题

[b]*****svn整合Apache********[/b]

整合后,使用浏览器访问仓库

安装apache服务器

整合后apache的权限管理比svn服务器本身的权限管理更好、粒度更细

Apache 不是指Apache tomcat

Apache是一个应用服务器(搜狐、新浪都是用的Apache)

http://www.apache.org/

拉到下面找到HTTP Server超链接 点击该链接

Download !

from a mirror 点击该超链接

选择apache2.0

complete list of mirrors

archive download site 归档下载站点

binaries-win32

下载apache 2.0.63-win32-x86-openssl-0.9.7m.msi

安装Apache Http Server

admin.com

admin.com

admin@admin.com

选择第一个

for All Users,on Port 80,as a Service–Recommended.

安装完apache服务器 在服务管理器中启动Apache服务

右键桌面apache图标–Open Apache Monitor

start后监听本机的80端口了

客户端浏览器输入http://localhost/

出现:

这不是你想看见的页面吧?

apache安装成功

apache能集成各种各样的功能,如何集成功能?

答:以模块化的形式集成

在apache的如下目录中集成功能

C:\Program Files\Apache Group\Apache2\modules

svn和apache服务器集成

1.把svn的两个so文件拷贝到apache的 modules目录下

svn的so文件所在路径为 C:\Program Files (x86)\Subversion\bin

mod_dav_svn.so

mod_authz_svn.so

这两个文件为svn和apache整合的必须的文件

但这样放进去不会被apache自动识别出来

还需要在apache里面配置一下

找到%apache安装路径%\conf\httpd.conf

找到145 146两行(apache2.2在83 84行)把前面的#去掉

LoadModule dav_module modules/mod_dav.so

LoadModule dav_fs_module modules/mod_dav_fs.so

2.在174行加入(如果安装完后自动帮你加上就不用加了)

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

3.

在最后一行加入
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息