VisualSVN Server的使用

要做新项目了,需要搭建服务器开发环境。oracle数据库和SVN Server是必不可少的。

svn的版本控制很好和强大,一般我们说的都是客户端,服务端一般是VisualSVN Server或者Subversion.

开始之前还是简单的了解一下这个东东到底是什么吧。

百科:

http://baike.baidu.com/view/9636511.htm

VisualSVN
VisualSVN Serve集成了Subversion和Apache,简化了手工配置Subversion的繁琐步骤。
VisualSVN Server是免费的,而VisualSVN是收费的。VisualSVN是SVN的客户端,和Visual Studio集成在一起, VisualSvn Server是SVN的服务器端,包括Subversion、Apache和用户及权限管理,优点在上面已经说过了。
1.为什么要用VisualSVN Server,而不用Subversion?
SVN 分为服务端和客户端,就服务端而言分为 Subversion和VisualSVN Server
因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Server为windws service,还要通过修改配置文件来控制用户权限,另外如果要想以Web方式【http协议】访问,一般还要安装配置Apache,如果是新手,岂不是很头痛?而VisualSVN Serve集成了Subversion和Apache,省去了以上所有的麻烦。安装的时候SVN Server已经封装为windws service,Apache服务器的配置也只是在图像界面上,指定认证方式、访问端口等简单操作;另外,用户权限的管理也是通过图像界面来配置。
2.为什么不用TFS?
因为我们一开始就是用Subversion和TortioseSVN,所以就没有更换其他的软件。至于TFS至今没有用过,其实,我只是看了一些的文章而已,对它也不了解。
3.VisualSVN Server是免费的吗?
是的,VisualSVN Server是免费的,而VisualSVN是收费的。VisualSVN是SVN的客户端,和Visual Studio集成在一起, VisualSvn Server是SVN的服务器端,包括Subversion、Apache和用户及权限管理,优点在上面已经说过了。

--------------------------------------------------------------------

如果你使用过apache服务器,你就知道VisualSVN Server的基本原理了。

下载地址 http://www.visualsvn.com/server/

现在开始搭建。

安装步骤很简单,基本上都是下一步,没什么好讲的,就算是有些需要设置的东西也可以在

安装完成后再去修改,所以安装我就不说了。

安装完成后,我们打开VisualSVN Server的manager

VisualSVN Server的使用_第1张图片

Repositories是库的意思,结构很简单,就是server,库,用户,组。

右击VisualSVN Server(local)查看属性,general和network比较重要。

general可以从新选定库的位置,network可以设置VisualSVN Server的网络地址。

VisualSVN Server的使用_第2张图片

注意,作为服务器,IP肯定是要固定的。这里的IP就是这台机器的实际IP。

端口一般是443或8443.

修改完以后,我们再看看首页的信息。

VisualSVN Server的使用_第3张图片

可以看见这个Server URL已经变了。

下面该创建用户来控制权限了,这个是必须的,不然svn就没什么意义了。

在设置之前,我们先看看库的目录下的文件结构。

VisualSVN Server的使用_第4张图片

在库的根目录下,我们看到了3个文件。

打开看看内容:

---  authz文件

# Default authorization settings
[/]
* = rw


--- authz-windows文件

# Default authorization settings
[/]
S-1-5-32-545=rw


--- htpasswd 文件 

里面没有任何内容


好,现在开始权限控制的设置:

右击Reposities,查看属性

VisualSVN Server的使用_第5张图片

可以看到,默认是有一个EveryOne用户的,他的权限是读写。

permission是允许的意思,下面有4个,分别是 继承父节点,没有访问权限,只读,读写。

我们需要把这个改成只读的,必然所有人都可以修改svn上的东西了。

保存后我们在看看authz文件:

[/]
*=r


现在开始添加用户:

右击Users,点击添加用户。

VisualSVN Server的使用_第6张图片

我们添加2个测试账户,2个开发账户。

VisualSVN Server的使用_第7张图片

现在我们开始添加Groups组,这个组把用户分成组,方便控制权限,其实也可以不用的,用户多的话,这样很好管理。

右击Groups:

VisualSVN Server的使用_第8张图片

我们添加2个组,一个测试组,一个开发组。

VisualSVN Server的使用_第9张图片

现在往组里添加用户,右击组,现则编辑:

VisualSVN Server的使用_第10张图片

VisualSVN Server的使用_第11张图片

添加完用户和组后,authz文件

[/]
*=r

[groups]
dev=dev2,dev1
test=test2,test1



同时,htpasswd 文件

test1:$apr1$ibg$JdsC/khoavJ8bfu88KViW/
test2:$apr1$id1$SJQ2HQgQoFxfTE7xu2kKf0
dev1:$apr1$ief$K3bq.t7EZFhbo.CHN3dEq1
dev2:$apr1$ifj$fjjGB6xxKZcttFNx5dJFn.



可以看出visualsvnserver自动把秘密加密了。

现在只是建立好权限关系而已,这些关系必须和实际的代码库关联才会起作用。

右击Reposities:

VisualSVN Server的使用_第12张图片

这就是刚才控制对库的权限控制的地方,在这里要把我们刚才建立好的权限关系添加进来。

在Security弹出框中,add组,并设置权限,也可以按照用户添加,
权限管理的东西都是差不多一样的。

VisualSVN Server的使用_第13张图片

VisualSVN Server的使用_第14张图片

修改完权限后,在查看authz文件:

[/]
*=r
@dev=rw
@test=r

[groups]
dev=dev2,dev1
test=test2,test1


现在我们对这个文件的功能和数据结构就很清楚了。
它就是管理用户和权限的。
[/]
*=r //everyone游客只有只读权限
@dev=rw //dev组中的用户有读写权限
@test=r //test组中的用户只有只读权限

[groups]
dev=dev2,dev1 //dev组的成员有dev2,dev1
test=test2,test1 //test组的成员有test2,test1


清楚了这些,我们就可以直接修改这些文件来修改用户和权限了

好,到此为止,权限已经设置好了,可以开始建立库了。

刚才的Reposities只是库的根目录,我们需要在这个目录下建立库和目录结构,管理项目。

结构你随便建,一般分两大部分,代码和文档。然后在这下面再分结构。

VisualSVN Server的使用_第15张图片

VisualSVN Server的使用_第16张图片

VisualSVN Server的使用_第17张图片

右击库可以看到有个Copy URL to Clipboad(拷贝到剪贴板)就是复制url多的意思,

内容如下:

https://10.55.15.66/svn/ccbank/

在这个库下,我们需要建立目录来管理项目:

VisualSVN Server的使用_第18张图片

修改完server的东西后,记得要重启服务器。

在这里要说一下:

我们在右击刚才库下的目录也可以设置权限的!所以权限的设置起始是可以精确到那个用户对哪个目录的读写。

一般我们只是这样简单的赋予读还是写的权限,在一些大的公司做大的项目,起始都是精确到目录的,也即是

一个用户只可以对某些目录下的东西进行读写,其他的可以使只读,或者没有权限读取。这样的管理才是

真正的管理,才能保证项目的安全。

/****************************************************svn客户端tortoiseSVN****************************************************************/

服务端构建好了,现在需要在客户端来上传和下载代码,客户端当然是用tortoiseSVN了。

这个很好用,我强烈建议用tortoiseSVN 1.6!!!

为什么呢?因为我在使用1.7时总是出现一些错误,我的操作系统是win7,使用时遇见过非法的参数,或者干脆svn无响应直接程序死了。

在网上查半天也没有一个解决方案,后来我重新安装了1.6,什么问题都没有出现!!!

看来1.6还是很稳定的版本,最新的版本不一定就是最好的!

安装完成后,右击一个文件夹,会看到:

VisualSVN Server的使用_第19张图片

在这里,我要说说Export和Import;Checkout和Checkin命令(这里没有Checkin)。

Export是把服务器上的东西下载到本地,但是不受svn版本控制,就是没有那个.svn文件夹。

Import是把本地文件上传到服务器,同样也不受svn版本控制。

而Checkout是把服务器上的东西下载到本地,并且有svn版本控制,目录下会有.svn文件夹。

Checkin这里没有,svn的插件会有这个命令。也是有版本控制的。

我们想往服务器上传,可以选择Import,把文件直接上传。

或者我们先Checkout把svn的目录下载下来(没有内容),这样有了版本控制后,

在往这个文件夹添加东西,然后右击这个文件夹选择SVN Commit命令吧文件提交上去。

1,Import

在本地建立一个文件夹,并吧需要上传的文件放在里面。

VisualSVN Server的使用_第20张图片

VisualSVN Server的使用_第21张图片

在服务器上刷新一下就可以看到,文件已经上传了。

但是本地的那个文件目录是不受svn控制的。

2,Checkout-----Commit

在本地建立一个文件夹,右击选择Checkout

VisualSVN Server的使用_第22张图片

VisualSVN Server的使用_第23张图片

VisualSVN Server的使用_第24张图片

这时这个文件夹已经受版本控制了,我们可以添加文件并提交。

VisualSVN Server的使用_第25张图片

这样服务器上就有文件了。

你可能感兴趣的:(server)