(1). repository(源代码库),如何快速建立Sub

2020-01-05 19:23 来源:未知

SVN在Myeclipse下的配置

      如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,可以使用起来,这里配套有动画教程。
本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套可用的服务器环境,只需略加调整就可以应用到实际项目当中。
本教程分为以下几个部门,不仅仅是快速入门,最后我们还有一些高级功能的说明,为了说明简单,教程是在windows下使用的方式,以方便资源有限的项目使用,对于UNIX环境下,区别并不大。

SVN服务器端-------SVN版本控制器的安装和配置

一. SVN 简介

首先安装服务器和客户端软件  : 

软件下载

文章来源:Subversion中文站

Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库 (repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。

Setup-Subversion 和  Subversion的 Windows 客户端 TortoiseSVN

服务器和客户端安装

      如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,可以使用起来,这里配套有动画教程。
本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套可用的服务器环境,只需略加调整就可以应用到实际项目当中。
本教程分为以下几个部门,不仅仅是快速入门,最后我们还有一些高级功能的说明,为了说明简单,教程是在windows下使用的方式,以方便资源有限的项目使用,对于UNIX环境下,区别并不大。

SVN中的一些概念 :

这两个软件是必须安装的,这里给大家提供一下下载地址:

建立版本库(Repository)

软件下载

(1). repository(源代码库)

Setup-Subversion :

配置用户和权限

服务器和客户端安装

源代码统一存放的地方

运行独立服务器

建立版本库(Repository)

(2). Checkout (提取)

TortoiseSVN:

初始化导入

配置用户和权限

当你手上没有源代码的时候,你需要从repository checkout一份

基本客户端操作

运行独立服务器

(3). Commit (提交)

安装过程很简单直接下一步就行了 ,不过安装中会提示要你选择然后选择 Apache 2.0 或者 Apache 2.2 ,这两个都行,随便选一个就行了

1,软件下载

初始化导入

当你已经修改了代码,你就需要Commit到repository

其次建立版本库:  两种方式

下载Subversion服务器程序。

到官方网站的下载二进制安装文件,来到二进制包下载部分,找到 Windows NT, 2000, XP and 2003部分,然后选择" this directory",这样我们可以看到许多下载的内容,目前可以下载 svn-1.4.0-setup.exe 。

基本客户端操作

(4). Update (更新)

运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了Subversion服务器之后,可以直接运行,如:

下载Subversion的Windows客户端TortoiseSVN。

TortoiseSVN是扩展Windows Shell的一套工具,可以看作Windows资源管理器的插件,安装之后Windows就可以识别Subversion的工作目录。
官方网站是TortoiseSVN,下载方式和前面的svn服务器类似,在Download页面的我们可以选择下载的版本,目前的最高稳定版本的安装文件为TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi。

1,软件下载

当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更

svnadmin create E:svndemorepository

2,服务器和客户端安装

服务器安装,直接运行svn-1.4.0-setup.exe ,根据提示安装即可,这样我们就有了一套服务器可以运行的环境。

安装TortoiseSVN,同样直接运行TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi按 照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关,这里为了立刻看 到好的效果,还是重新启动机器。若是不习惯英文还可以选择安装客户端语言汉化包“LanguagePack-1.4.5.10425-win32- zh_CN.exe”(也需下载),安装后默认还是英文,需要在客户端工具中设置一下。

此外,在编译器中也可以使用SVN插件来代替客户端工具,使开发起来更加方便。详细介绍请见Eclipse中SVN版本控制插件的安装和使用

下载Subversion服务器程序。

到官方网站的下载二进制安装文件,来到二进制包下载部分,找到 Windows NT, 2000, XP and 2003部分,然后选择" this directory",这样我们可以看到许多下载的内容,目前可以下载 svn-1.4.0-setup.exe 。

日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) -->作出自己的修改并调试成功 --> Commit(大家就可以看到你的修改了) 。

就会在目录E:svndemorepository下创建一个版本库 。

3,建立版本库(Repository)

运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了Subversion服务器之后,可以直接运行,如:

svnadmin create E:svndemorepository

就会在目录E:svndemorepository下创建一个版本库。

我们也可以使用TortoiseSVN图形化的完成这一步:
在目录E:svndemorepository下"右键->TortoiseSVN->Create Repository here...“, 然后可以选择版本库模式, 这里使用默认即可, 然后就创建了一系列目录和文件。

下载Subversion的Windows客户端TortoiseSVN。

TortoiseSVN是扩展Windows Shell的一套工具,可以看作Windows资源管理器的插件,安装之后Windows就可以识别Subversion的工作目录。
官方网站是TortoiseSVN,下载方式和前面的svn服务器类似,在Download页面的我们可以选择下载的版本,目前的最高稳定版本的安装文件为TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi。

如果两个程序员同时修改了同一个文件呢,  SVN可以合并这两个程序员的改动,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。如果是同一行,SVN会提示文件Confict, 冲突,需要手动确认。

我们也可以使用TortoiseSVN 图形化的完成这一步:
在目录E:svndemorepository 下 " 右键 ->TortoiseSVN->Create Repository here...“ , 然后可以选择版本库模式, 这里使用默认即可, 然后就创建了一系列目录和文件

4,配置用户和权限

svn的权限管理涉及到一下文件:
passwd文件   --   /conf目录下   用于存放本svn库的用户名和密码,用 = 分割,左边是用户名,右边是密码(明文)。
authz   --   /conf目录下   用于存放本svn库的访问授权信息。
svnserve.conf   -- /conf目录下   用于存放本svn库的全局访问控制信息。

来到E:svndemorepositoryconf目录,修改svnserve.conf:
# [general]
# password-db = passwd
改为:
[general]
password-db = passwd 然后修改同目录的passwd文件(设置用户密码),去掉下面三行的注释再加两个用户:
# [users]
# harry = harryssecret
# sally = sallyssecret
最后变成:
[users]
harry = harryssecret
sally = sallyssecret
svnadmin = admin
zgz = zgz0809
最后修改同目录的authz文件,它定义了两部分的内容:
1,对组成员的定义,
2,对目录的授权定义,
可以针对一个单一用户授权,也可以针对在[groups]里面定义的一个组授权,还可以用*通配符来对所有的用户授权,
授权的选项有:只读访问('r'),读写访问('rw'),或者无权防问('').
authz文件中可以对任意多个目录进行权限控制,一下是一个例子:

[groups]
harry_and_sally = harry,sally
#设定权限组

[/]
svnadmin = rw
[/truck]
zgz = rw
harry = rw
sally = r
* = r

[/sanguo]
zgz = rw
harry = r
sally = rw
* = r

[/ts]
@harry_and_sally = rw
# 以@为键值意味着对前面定义的组进行授权
* = r

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
用户svnadmin权限最大,他可以进行根目录(注意:是服务器目录svn://localhost/,下边会介绍的)下所有文件(包括子目录下的文件)的读写操作,而/truck,/sanguo,/ts是在服务器的根目录下创建的三个子目录。
用户zgz 和harry对 /truck具有读写权限,sally 只有读的权限。
用户zgz 和sally对 /sanguo具有读写权限,harry 只有读的权限。
用户harry 和sally对 /ts具有读写权限,zgz只有读的权限。(* = r 表示所有用户都具有读的权限,当然zgz也就自然具有了。注意这里 @harry_and_sally = rw 表示给harry_and_sally组所有用户授权,该组在上边[groups]标签中已定义)
注意:如果用户对一个目录具有某种权限,那么他对其子目录也有同样的权限(例如:svnadmin),所以在授权时要特别注意,尽量只付给满足用户需要的最小的权限。

2,服务器和客户端安装

服务器安装,直接运行svn-1.4.0-setup.exe ,根据提示安装即可,这样我们就有了一套服务器可以运行的环境。

安装TortoiseSVN,同样直接运行TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi按 照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关,这里为了立刻看 到好的效果,还是重新启动机器。若是不习惯英文还可以选择安装客户端语言汉化包“LanguagePack-1.4.5.10425-win32- zh_CN.exe”(也需下载),安装后默认还是英文,需要在客户端工具中设置一下。

此外,在编译器中也可以使用SVN插件来代替客户端工具,使开发起来更加方便。详细介绍请见Eclipse中SVN版本控制插件的安装和使用

客户端软件:

第三步就是配置用户权限了

5,运行独立服务器

在任意目录下运行:
svnserve -d -r E:svndemorepository 我们的服务器程序就已经启动了。注意不要关闭命令行窗口,关闭窗口也会把svnserve停止。为了方便,可以把svnserve作为服务,在2000下控制台窗口可以运行,创建服务命令:

sc.exe create SVNService binpath= "D:Subversionbinsvnserve.exe --service -r E:svndemorepository" depend= tcpip
如果加错了可以用:sc delete "SVNService" 命令删除服务。
加好后可以在控制面板的服务选项中找到它,把它启动类型设为手动,然后启动一下看看有没有问题。

注意:

1."D:Subversion"是SVN服务器端的安装路径,"E:svndemorepository"是版本库的路径,视具体情况而定。

  1. 等号前无空格后有空格。
  2. 应使用参数“--service”而不是“-d”,参数前面的横线不是一个是两个。
    4. binpath内套的路径如果包含空格,也需要使用双引号,此时需要使用转义符表示内部的引号(")。
    5.使用“SVNService.exe”将SVN作为Window服务运行(Subversion1.4之前版本也可使用)
    SVNService.exe -install -d -r E:svndemorepository

3,建立版本库(Repository)

运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了Subversion服务器之后,可以直接运行,如:

svnadmin create E:/svndemo/repository

就会在目录E:/svndemo/repository下创建一个版本库。

我们也可以使用TortoiseSVN图形化的完成这一步:
在目录E:/svndemo/repository下"右键->TortoiseSVN->Create Repository here...“, 然后可以选择版本库模式, 这里使用默认即可, 然后就创建了一系列目录和文件。

(1)Windows下常用的客户端软件常用TortoiseSVN。它是一个免费的开源的客户端。 下载地址:http://tortoisesvn.net/downloads.html

对三个文件进行配置,在E:svndemorepository conf目录下,分别为svnserve.conf,passwd,authz

6,初始化导入

来到我们想要导入的项目根目录,在这个例子里是E:svndemowc1,目录下有一个readme.txt文件:

右键->TortoiseSVN->Import...
URL of repository输入“svn://localhost/” ,如果服务安装在其他机器则将localhost改换为目标机器的IP地址“svn://10.8.6.87/”。
ok
完成之后目录没有任何变化,如果没有报错,数据就已经全部导入到了我们刚才定义的版本库中。

需要注意的是,这一步操作可以完全在另一台安装了TortoiseSVN的主机上进行。例如运行svnserve的主机的IP是 10.8.6.87,则URL部分输入的内容就是“svn://10.8.6.87/”,一般为了便于管理不会导入到服务的根目录下,而是导入到工程的子 目录,如/truck,/sanguo,/ts。导入的URL就添svn://localhost/truck。

4,配置用户和权限

svn的权限管理涉及到一下文件:
passwd文件   --   /conf目录下   用于存放本svn库的用户名和密码,用 = 分割,左边是用户名,右边是密码(明文)。
authz   --   /conf目录下   用于存放本svn库的访问授权信息。
svnserve.conf   -- /conf目录下   用于存放本svn库的全局访问控制信息。

来到E:/svndemo/repository/conf目录,修改svnserve.conf:
# [general]
# password-db = passwd
改为:
[general]
password-db = passwd 然后修改同目录的passwd文件(设置用户密码),去掉下面三行的注释再加两个用户:
# [users]
# harry = harryssecret
# sally = sallyssecret
最后变成:
[users]
harry = harryssecret
sally = sallyssecret
svnadmin = admin
zgz = zgz0809
最后修改同目录的authz文件,它定义了两部分的内容:
1,对组成员的定义,
2,对目录的授权定义,
可以针对一个单一用户授权,也可以针对在[groups]里面定义的一个组授权,还可以用*通配符来对所有的用户授权,
授权的选项有:只读访问('r'),读写访问('rw'),或者无权防问('').
authz文件中可以对任意多个目录进行权限控制,一下是一个例子:

[groups]
harry_and_sally = harry,sally
#设定权限组

[/]
svnadmin = rw

[/truck]
zgz = rw
harry = rw
sally = r
* = r

[/sanguo]
zgz = rw
harry = r
sally = rw
* = r

[/ts]
@harry_and_sally = rw
# 以@为键值意味着对前面定义的组进行授权
* = r

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r

用户svnadmin权限最大,他可以进行根目录(注意:是服务器目录svn://localhost/,下边会介绍的)下所有文件(包括子目录下的文件)的读写操作,而/truck,/sanguo,/ts是在服务器的根目录下创建的三个子目录。
用户zgz 和harry对 /truck具有读写权限,sally 只有读的权限。
用户zgz 和sally对 /sanguo具有读写权限,harry 只有读的权限。
用户harry 和sally对 /ts具有读写权限,zgz只有读的权限。(* = r 表示所有用户都具有读的权限,当然zgz也就自然具有了。注意这里 @harry_and_sally = rw 表示给harry_and_sally组所有用户授权,该组在上边[groups]标签中已定义)

注意:如果用户对一个目录具有某种权限,那么他对其子目录也有同样的权限(例如:svnadmin),所以在授权时要特别注意,尽量只付给满足用户需要的最小的权限。

 

(2)向Myeclipse,也有一些SVN的插件。

< 1 > 文件svnserve.conf中把下面前面的#号去掉,修改如下:

7,基本客户端操作

取出版本库到一个工作拷贝:
来到任意空目录下,在本例中是E:svndemowc1,运行右键->Checkout,在URL of repository中输入svn://localhost/,这样我们就得到了一份工作拷贝。
在工作拷贝中作出修改并提交:
打开readme.txt,作出修改,然后右键->Commit...,这样我们就把修改提交到了版本库,我们可以运行。

察看所作的修改:
readme.txt上右键->TortoiseSVN->Show Log,这样我们就可以看到我们对这个文件所有的提交。在版本1上右键->Compare with working copy,我们可以比较工作拷贝的文件和版本1的区别。功能挺强大,具体使用不做详解。

相关资源 Subversion
TortoiseSVN
Svn1ClickSetup
Subclipse
Subversion中文站

5,运行独立服务器

在任意目录下运行:
svnserve -d -r E:/svndemo/repository 我们的服务器程序就已经启动了。注意不要关闭命令行窗口,关闭窗口也会把svnserve停止。为了方便,可以把svnserve作为服务,在2000下控制台窗口可以运行,创建服务命令:

sc.exe create SVNService binpath= "D:/Subversion/bin/svnserve.exe --service -r E:/svndemo/repository" depend= tcpip
永利平台娱乐,如果加错了可以用:sc delete "SVNService" 命令删除服务。
加好后可以在控制面板的服务选项中找到它,把它启动类型设为手动,然后启动一下看看有没有问题。

注意:

1."D:/Subversion"是SVN服务器端的安装路径,"E:/svndemo/repository"是版本库的路径,视具体情况而定。

  1. 等号前无空格后有空格。
  2. 应使用参数“--service”而不是“-d”,参数前面的横线不是一个是两个。
    4. binpath内套的路径如果包含空格,也需要使用双引号,此时需要使用转义符表示内部的引号(/")。
    5.使用“SVNService.exe”将SVN作为Window服务运行(Subversion1.4之前版本也可使用)
    SVNService.exe -install -d -r E:/svndemo/repository

    6,初始化导入

来到我们想要导入的项目根目录,在这个例子里是E:/svndemo/wc1,目录下有一个readme.txt文件:

右键->TortoiseSVN->Import...
URL of repository输入“svn://localhost/” ,如果服务安装在其他机器则将localhost改换为目标机器的IP地址“svn://10.8.6.87/”。
ok
完成之后目录没有任何变化,如果没有报错,数据就已经全部导入到了我们刚才定义的版本库中。

需要注意的是,这一步操作可以完全在另一台安装了TortoiseSVN的主机上进行。例如运行svnserve的主机的IP是 10.8.6.87,则URL部分输入的内容就是“svn://10.8.6.87/”,一般为了便于管理不会导入到服务的根目录下,而是导入到工程的子 目录,如/truck,/sanguo,/ts。导入的URL就添svn://localhost/truck。

Subversion提供以下主要功能:

anon-access = none

7,基本客户端操作

取出版本库到一个工作拷贝:
来到任意空目录下,在本例中是E:/svndemo/wc1,运行右键->Checkout,在URL of repository中输入svn://localhost/,这样我们就得到了一份工作拷贝。
在工作拷贝中作出修改并提交:
打开readme.txt,作出修改,然后右键->Commit...,这样我们就把修改提交到了版本库,我们可以运行。

察看所作的修改:
readme.txt上右键->TortoiseSVN->Show Log,这样我们就可以看到我们对这个文件所有的提交。在版本1上右键->Compare with working copy,我们可以比较工作拷贝的文件和版本1的区别。功能挺强大,具体使用不做详解。

 

(1)目录版本控制

auth-access = write

CVS 只能跟踪单个文件的历史, 不过 Subversion 实作了一个 “虚拟” 的版本控管文件系统, 能够依时间跟踪整个目录的变动。 目录和文件都能进行版本控制。

password-db = passwd

(2)真实的版本历史

authz-db = authz

自从CVS限制了文件的版本记录,CVS并不支持那些可能发生在文件上,但会影响所在目录内容的操作,如同复制和重命名。除此之外,在CVS里你不能用拥有同样名字但是没有继承老版本历史或者根本没有关系的文件替换一个已经纳入系统的文件。在Subversion中,你可以增加(add)、删除(delete)、复制(copy)和重命名(rename),无论是文件还是目录。所有的新加的文件都从一个新的、干净的版本开始。

<2> 文件passwd增加用户,修改如下:

(3)自动提交

[users]

一个提交动作,不是全部更新到了档案库中,就是完全不更新。这允许开发人员以逻辑区间建立并提交变动,以防止当部分提交成功时出现的问题。

yao = 123(随用户自己命名和取的密码)

(4)纳入版本控管的元数据

<3> 文件authz修改如下:

每一个文件与目录都附有一組属性关键字并和属性值相关联。你可以创建, 并儲存任何你想要的Key/Value对。 属性是随着时间来作版本控管的, 就像文件內容一样。

[groups]

(5)选择不同的网络层

admin = yao

Subversion 有抽象的档案库存取概念, 可以让人很容易地实作新的网络机制。 Subversion 可以作为一个扩展模块嵌入到Apache HTTP 服务器中。这个为Subversion提供了非常先进的稳定性和协同工作能力,除此之外还提供了许多重要功能: 举例来说, 有身份认证, 授权, 在线压缩, 以及文件库浏览等等。还有一个轻量级的独立Subversion服务器, 使用的是自定义的通信协议, 可以很容易地通过 ssh 以 tunnel 方式使用。

[/]

(6)一致的数据处理方式

@admin = rw

Subversion 使用二进制差异算法来异表示文件的差异, 它对文字(人类可理解的)与二进制文件(人类无法理解的) 两类的文件都一视同仁。 这两类的文件都同样地以压缩形式储存在档案库中, 而且文件差异是以两个方向在网络上传输的。

*=  r

(7)有效的分支(branch)与标签(tag)

 

在分支与标签上的消耗并不必一定要与项目大小成正比。 Subversion 建立分支与标签的方法, 就只是复制该项目, 使用的方法就类似于硬连接(hard-link)。所以这些操作只会花费很小, 而且是固定的时间。

第四步就是启动服务

(8)Hackability

在任意目录下运行:
svnserve -d -r E:svndemorepository 我们的服务器程序就已经启动了。注意不要关闭命令行窗口,关闭窗口也会把 svnserve 停止。

Subversion没有任何的历史包袱; 它主要是一群共用的 C 程序库, 具有定义完善的API。这使得 Subversion 便于维护, 并且可被其它应用程序与程序语言使用。

下面一大块就是安装MyEclipse SVN 插件了

二.  SVN 服务器搭建

MyEclipse 6.X

2.1 使用yum 安装SVN包

6.x的操作比较简单,可通过官方提供的链接,利用MyEclipse内置的Find and Install功能来安装。

关于YUM 服务器的配置参考:

  1. 打开Myeclipse,在菜单栏中选择Help→Software Updates→Find and Install;
  2. 选择Search for new features to install,点击Next进入下一步;
  3. 点击“New Remote Site”按钮,在弹出的对话框中输入:
           name:svn
           url:
           点击OK,关闭对话框,并点击Finish按钮,Myeclipse自动下载插件安装程序;
  4. 下载完插件之后,进入安装画面。
  5. 选择所要安装的SVN插件内容,这里去掉第二个选项Subclipse Integrations,点击下一步;
  6. 选择 “I accept the terms in the license agreements”并点击Next,直到点击Finish即可,进入下一步。
  7. 开始安装SVN插件,安装完成之后,重启Myeclipse。
    以下为安装完成后的配置过程:
  8. 在菜单栏中选择Window→Open Perspective→Other打开Myeclipse试图列表。这个时候Myeclipse的视图列表中,就出现了“SVN Repository Exploring”一项。
  9. 打开“SVN Repository Exploring”视图。在左边空白区域,单击右键→New→Repository Location。
  10. 在Url一栏中输入svn://localhost, 点击Finish按钮。
  11. 输入用户名和密码,点击OK即可看到SVN下的目录结构了。

Linux 搭建 YUM 服务器

12..可以再工程上依次单击 team-->share project... 依次 下一步 就可以了

http://blog.csdn.net/tianlesoftware/archive/2011/01/03/6113902.aspx

 

[root@singledb ~]# yum install -y subversion

以上是参考别人的文档的,在一切配置好,服务器也启动之后,结果在Myeclipse下碰到了

Loaded plugins: rhnplugin, security

“ 错误信息 Malformed file svn: E:svnrepositoryconfsvnserve.conf:12: Option expected ”,不要慌,原因是在修改配置文件里多了不必要的空格,只要去掉就好。

This system is not registered with RHN.

RHN support will be disabled.

Setting up Install Process

Resolving Dependencies

TAG标签:
版权声明:本文由永利平台娱乐发布于每日更新,转载请注明出处:(1). repository(源代码库),如何快速建立Sub