2013-03-12 21:22:23 JenMinZhang 阅读数 41470
  • 带你玩转SVN

    SVN是版本控制利器,团队协作工具之一。本课程主要面向开发人员,帮助初学者意识到版本控制的重要性,掌握SVN环境的搭建,以及SVN客户端工具的使用。

    19392 人正在学习 去看看 刘运强

1 Linux下创建svn仓库 

1.1 启动SVN服务

 svnserve -d -r  /SVNRootDirectry   

其中SVNRootDirectry是你的SVN 根目录,例如192.85.1.2上的是:/SVN-d 表示以后太服务方式执行,-r就表示root

1.2 创建仓储

1.2.1 在SVN根目录下建立版本仓库

svnadmin create study

  命令 :svnadmin create  msm

其中msm是版本仓库的名字,仓库建立好了以后会有出现一个仓库名字的文件夹,文件夹下面有conf等几个目录和文件,

如下图。接下来就需要设置版本仓库的权限了。这里说明一下:版本库之间是独立的。

文件目录如下:

其中conf文件夹下的目录为:

1.2.2 增加用户 

   修改conf文件夹下的authz文件:

 指令简介:此配置文件采用“基于路径的授权”策略,中括号里指定路径,以下列出对各用户的授权。

包括只读r,读写rw。没有列出的用户,则不允许访问。还可以对用户分组,具体请参考svn手册,以下是简单例子: 

<!--[if !supportLineBreakNewLine]-->       用户组格式:

    [groups]

    <用户组名> = <用户1>,<用户2>

    其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。

    版本库目录格式:

    [<版本库>:/项目/目录]

    @<用户组名> = <权限>

    <用户名> = <权限>

    其中,方框号内部分可以有多种写法:

     /,表示根目录(仓储目录)及以下。根目录是svnserve启动时指定的,我们指定/opt/svndata。这样,/就是表示对全部版本库设置权限。

     权限主体可以是用户组、用户或*,用户组在前面加@*表示全部用户。权限可以是wrwr和空,空表示没有任何权限。

[groups]下增加你的用户组(记得等号前后留空格)

[/]下面增加对用户或者用户组的权限设置;最后如下图:

1.2.3 修改用户密码

添加了用户以后就需要给用户设置密码了,打开conf/passwd文件:

输入以下内容: 

[users] 

<用户1> = <密码1> admin = admin

<用户2> = <密码2> username2 = password2

可以添加多个,此为用户名密码对。

取消[users]的注释,并在下面加上你的用户的密码设置(记得等号左右的空格),如下图:

1.2.4   对启动SVN对用户权限、密码的控制

需要启动SVN对用户权限、密码的控制,不然的话你就只能读而不能写了。

修改svnserve.conf文件

  各参数功能在配置文件的注释中有说明此处配置如下

[general] 

anon-access = none # 使非授权用户无法访问 

auth-access = write # 使授权用户有写权限 

password-db = /opt/svndata/repos/conf/passwd  # 指明密码文件路径 

authz-db = /opt/svndata/repos/conf/authz    # 访问控制文件

realm = /opt/svndata/repos   # 认证命名空间,subversion会在认证提示里显示,

并且作为凭证缓存的关键字。 

取消下面几条前面的#号注释就OK了:

anon-access = read 

auth-access = write 

password-db = passwd 

authz-db = authz 

重新启动svn服务 :

启动svn服务命令    svnserve -d -r  /svn

如果报:svnserve: Can't bind server socket: Address already in use

解决办法:

使用  “ ps -e|grep svnserve ” 找到服务对应进程编号 ,使用kill 命令,之后再使用启动命令 ,如图 

使用地址访问,如果出现“svnserve.conf:12: Option expected”,导致原因是:subversion读取配置文件

svnserve.conf时,无法识别有前置空格的配置文件

修改改为 

1.2.5  给SVN 仓储空间中的 DB目录分配写权限 

 cd     /svn
  sudo     chmod 777 -R 仓储名称  

                     不然不能提交文件

2 SVN标准目录结构

2.1 目录结构概述

2.1.1 目录 trunk 

 trunk是主分支,是日常开发进行的地方,一般包含 : 

0-Src                       源码

1-DevelopDoc         开发文档

2-ProductDoc           产品文档

3-ThirdPartyTools     第三方工具(插件)

4-Testing                   测试

5-DeployDoc             部署文档

2.1.2 目录branches

 ranches是分支。一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中。

又比如为不同用户客制化的版本,也可以放在分支中进行开发。

2.1.3 目录  tags 

tags目录一般是只读的,这里存储阶段性的发布版本,只是作为一个里程碑的版本进行存档。

2.2 权限分配:修改authz文件

2019-04-01 10:32:57 xinyflove 阅读数 1051
  • 带你玩转SVN

    SVN是版本控制利器,团队协作工具之一。本课程主要面向开发人员,帮助初学者意识到版本控制的重要性,掌握SVN环境的搭建,以及SVN客户端工具的使用。

    19392 人正在学习 去看看 刘运强

假设已经Linux搭建了svn服务器

创建仓库

语法:svnadmin create /directory
我是在 /data/svnrepos下新建myproject仓库

cd /data
mkdir svnrepos
svnadmin create /data/svnrepos/myproject

仓库创建成功以后,会出现一个仓库名字的文件夹 文件夹下面有以下几个文件和目录

myproject
|-conf
|-db
|-format
|-hooks
|-locks
|-README.txt

其中conf文件夹下面包含三个重要文件 authz passwd svnserve.conf

conf
|-authz
|-passwd
|-svnserve.conf

修改配置文件

增加用户

修改passwd文件
passwd的配置语法格式: 用户名=密码

# vi passwd

### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.

[users]
# harry = harryssecret
# sally = sallyssecret
xiaozhang = 123 #修改处

之后可以通过帐号xiaozhang密码123进行操作。

配置用户权限

修改authz文件
注意:

  • 权限配置文件中出现的用户名必须已在用户配置文件中定义。
  • 对权限配置文件的修改立即生效,不必重启svn。

用户组格式:

[groups]
<用户组名> = <用户1>,<用户2>

其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
版本库目录格式:

[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>

其中,方框号内部分可以有多种写法:
/表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/data/svnrepos/myproject。这样,/就是表示对全部版本库设置权限。
repos1:/ 表示对版本库1设置权限
repos2:/a 表示对版本库2中的a项目设置权限
repos2:/a/b 表示对版本库2中的a项目的b目录设置权限
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。

# vim authz 
### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
###  - a single user,
###  - a group of users defined in a special [groups] section,
###  - an alias defined in a special [aliases] section,
###  - all authenticated users, using the '$authenticated' token,
###  - only anonymous users, using the '$anonymous' token,
###  - anyone, using the '*' wildcard.
###
### A match can be inverted by prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').

[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe

# [/foo/bar]
# harry = rw
# &joe = r
# * =

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

[/] #修改处
xiaozhang = rw #修改处

意思是,在根目录下xiaozhang用户拥有读写权限。

修改svn启动项参数

修改svnserve.conf文件
svn服务配置文件为版本库目录中的文件conf/svnserve.conf。该文件仅由一个[general]配置段组成

[general]配置段中配置行格式如下:
<配置项> = <值>

配置项分为以下5项:
1.anon-access 控制非鉴权用户访问版本库的权限。取值范围为"write"、“read"和"none”。
即"write"为可读可写,"read"为只读,"none"表示无访问权限。
缺省值:read

2.auth-access 控制鉴权用户访问版本库的权限。取值范围为"write"、“read"和"none”。
即"write"为可读可写,"read"为只读,"none"表示无访问权限。
缺省值:write

3.password-db 指定用户名口令文件名。除非指定绝对路径,否则文件位置为相对conf
目录的相对路径。
缺省值:passwd

4.authz-db 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。
除非指定绝对路径,否则文件位置为相对conf目录的相对路径。
缺省值:authz

5.realm 指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的
认证域相同,建议使用相同的用户名口令数据文件。
缺省值:一个UUID(Universal Unique IDentifier,全局唯一标示)

# vim svnserve.conf 
### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository.  (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)

### Visit http://subversion.tigris.org/ for more information.

[general]
### These options control access to the repository for unauthenticated
### and authenticated users.  Valid values are "write", "read",
### and "none".  The sample settings below are the defaults.
anon-access = none #修改处
auth-access = write #修改处
### The password-db option controls the location of the password
### database file.  Unless you specify a path starting with a /,
### the file's location is relative to the directory containing
### this configuration file.
### If SASL is enabled (see below), this file will NOT be used.
### Uncomment the line below to use the default password file.
password-db = passwd #修改处
### The authz-db option controls the location of the authorization
### rules for path-based access control.  Unless you specify a path
### starting with a /, the file's location is relative to the the
### directory containing this file.  If you don't specify an
### authz-db, no path-based access control is done.
### Uncomment the line below to use the default authorization file.
authz-db = authz #修改处
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa.  The default realm
### is repository's uuid.
# realm = My First Repository

[sasl]
### This option specifies whether you want to use the Cyrus SASL
### library for authentication. Default is false.
### This section will be ignored if svnserve is not built with Cyrus
### SASL support; to check, run 'svnserve --version' and look for a line
### reading 'Cyrus SASL authentication is available.'
# use-sasl = true
### These options specify the desired strength of the security layer
### that you want SASL to provide. 0 means no encryption, 1 means
### integrity-checking only, values larger than 1 are correlated
### to the effective key length for encryption (e.g. 128 means 128-bit
### encryption). The values below are the defaults.
# min-encryption = 0
# max-encryption = 256

启动服务

语法:svnserve -d -r svn仓库目录
svnserve -d -r /data/svnrepos/myproject/
如果启动提示svnserve: Can't bind server socket: Address already in use,是由于已经启动了svn,你的配置文件应该已经生效了。

查看svn进程
ps -ef|grep svn

访问svn服务

使用svn客户端 输入地址 svn://ip/myproject 就可以访问到这个仓库。

2018-03-22 18:38:12 xyz846 阅读数 3718
  • 带你玩转SVN

    SVN是版本控制利器,团队协作工具之一。本课程主要面向开发人员,帮助初学者意识到版本控制的重要性,掌握SVN环境的搭建,以及SVN客户端工具的使用。

    19392 人正在学习 去看看 刘运强

1 Linux下创建svn仓库 

1.1 启动SVN服务

 svnserve -d -r  /SVNRootDirectry   

其中SVNRootDirectry是你的SVN 根目录,例如192.85.1.2上的是:/SVN-d 表示以后台服务方式执行,-r就表示root

1.2 创建仓储

1.2.1 在SVN根目录下建立版本仓库

svnadmin create study

  命令 :svnadmin create  msm

其中msm是版本仓库的名字,仓库建立好了以后会有出现一个仓库名字的文件夹,文件夹下面有conf等几个目录和文件,

如下图。接下来就需要设置版本仓库的权限了。这里说明一下:版本库之间是独立的。

文件目录如下:

其中conf文件夹下的目录为:

1.2.2 增加用户 

   修改conf文件夹下的authz文件:

 指令简介:此配置文件采用“基于路径的授权”策略,中括号里指定路径,以下列出对各用户的授权。

包括只读r,读写rw。没有列出的用户,则不允许访问。还可以对用户分组,具体请参考svn手册,以下是简单例子: 

<!--[if !supportLineBreakNewLine]-->       用户组格式:

    [groups]

    <用户组名> = <用户1>,<用户2>

    其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。

    版本库目录格式:

    [<版本库>:/项目/目录]

    @<用户组名> = <权限>

    <用户名> = <权限>

    其中,方框号内部分可以有多种写法:

     /,表示根目录(仓储目录)及以下。根目录是svnserve启动时指定的,我们指定/opt/svndata。这样,/就是表示对全部版本库设置权限。

     权限主体可以是用户组、用户或*,用户组在前面加@*表示全部用户。权限可以是wrwr和空,空表示没有任何权限。

[groups]下增加你的用户组(记得等号前后留空格)

[/]下面增加对用户或者用户组的权限设置;最后如下图:

1.2.3 修改用户密码

添加了用户以后就需要给用户设置密码了,打开conf/passwd文件:

输入以下内容: 

[users] 

<用户1> = <密码1> admin = admin

<用户2> = <密码2> username2 = password2

可以添加多个,此为用户名密码对。

取消[users]的注释,并在下面加上你的用户的密码设置(记得等号左右的空格),如下图:

1.2.4   对启动SVN对用户权限、密码的控制

需要启动SVN对用户权限、密码的控制,不然的话你就只能读而不能写了。

修改svnserve.conf文件

  各参数功能在配置文件的注释中有说明此处配置如下

[general] 

anon-access = none # 使非授权用户无法访问 

auth-access = write # 使授权用户有写权限 

password-db = /opt/svndata/repos/conf/passwd  # 指明密码文件路径 

authz-db = /opt/svndata/repos/conf/authz    # 访问控制文件

realm = /opt/svndata/repos   # 认证命名空间,subversion会在认证提示里显示,

并且作为凭证缓存的关键字。 

取消下面几条前面的#号注释就OK了:

anon-access = read 

auth-access = write 

password-db = passwd 

authz-db = authz 

重新启动svn服务 :

启动svn服务命令    svnserve -d -r  /svn

如果报:svnserve: Can't bind server socket: Address already in use

解决办法:

使用  “ ps -e|grep svnserve ” 找到服务对应进程编号 ,使用kill 命令,之后再使用启动命令 ,如图 

使用地址访问,如果出现“svnserve.conf:12: Option expected”,导致原因是:subversion读取配置文件

svnserve.conf时,无法识别有前置空格的配置文件

修改改为 

1.2.5  给SVN 仓储空间中的 DB目录分配写权限 

 cd     /svn
  sudo     chmod 777 -R 仓储名称  

                     不然不能提交文件

2 SVN标准目录结构

2.1 目录结构概述

2.1.1 目录 trunk 

 trunk是主分支,是日常开发进行的地方,一般包含 : 

0-Src                       源码

1-DevelopDoc         开发文档

2-ProductDoc           产品文档

3-ThirdPartyTools     第三方工具(插件)

4-Testing                   测试

5-DeployDoc             部署文档

2.1.2 目录branches

 ranches是分支。一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中。

又比如为不同用户客制化的版本,也可以放在分支中进行开发。

2.1.3 目录  tags 

tags目录一般是只读的,这里存储阶段性的发布版本,只是作为一个里程碑的版本进行存档。

2.2 权限分配:修改authz文件

2019-03-24 22:38:34 weixin_42337937 阅读数 324
  • 带你玩转SVN

    SVN是版本控制利器,团队协作工具之一。本课程主要面向开发人员,帮助初学者意识到版本控制的重要性,掌握SVN环境的搭建,以及SVN客户端工具的使用。

    19392 人正在学习 去看看 刘运强
  • Subversion
    • Subversion是一个自由,开源的版本控制系统,这个版本库就像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。这样就可以很方面恢复到以前的版本,并可以查看数据更改细节。目前,Subversion已成为主流的开源代码版本管理软件之一,简称SVN。
    • SVN相关命令了解
      svn:命令行客户端
      svnadmin:用来创建、调整或修复版本库的工具
      svnserve:svn服务程序
      svndumpfilter:过滤svn版本库转储数据流的工具
      svnsync:svn数据同步工具,实现另外存一份相同的
      svnlook:用来查看办本科中不同的修订版和事务
  • 1、查看是否安装
    svn
    在这里插入图片描述
    -y 参数 安装时遇到选择Y/N? 默认选择yes
    apt-get -y install subversion
  • 安装完毕查看安装版本信息,验证是否安装成功
    svnserve --version
  • 2、创建SVN版本仓库
#进入文件
cd /usr
mkdir svn
#进入 
cd /svn
mkdir repository
#给 repository 权限 
chmod -R 777 /repository
#创建svn仓库
svnadmin create /usr/svn/repository
  • 执行命令后,会在repository下生成以下文件:
    在这里插入图片描述

  • 对db进入权限设置

    chmod -R 777 db

  • 3、设置访问权限

    • 修改配置文件conf/svnserve.conf
      在这里插入图片描述
  • 添加访问用户
    vim passwd
    用户名 xxx 密码 xxx
    在这里插入图片描述

  • 设置用户权限
    vim authz
    在这里插入图片描述

  • 4、测试服务器

    • 启动SVN服务器
      svnserve -d -r /usr/svn/
    • -d:表示在后台运行
    • -r:指定服务器的根目录
  • 查看是否启动成功
    ps aux | grep svnserve

    • 如下图 成功启动
      在这里插入图片描述
  • 停止服务器
    killall svnserve

  • 5、WindowsCMD命令操作,或者TortoiseSVN(图形化界面操作,更加便捷)

  • 本地cloneSVN仓库
    svn://服务器IP/repository
    在这里插入图片描述
    在这里插入图片描述

  • Windows上传一个文件到Linux服务器测试
    在这里插入图片描述
    在这里插入图片描述
    TortoiseSVN 和 CMD命令两者选一下就可以

  • 安装了TortoiseSVN,CMD报错svn不是内部或者外部命令
    在这里插入图片描述

  • 1、首先先看自己本地环境变量是否配置了,如下图是我的svn配置的路径
    在这里插入图片描述

  • 2、如果本地环境变量配置了,还是报这个错误,那么就是安装时候有个选项没有进行更改,默认情况下安装svn是不安装 command line client tools ,解决就是重新打开安装svn的.exe文件。在进行安装的时候选择Modify,到下面图片显示的地方,更改为容许安装
    在这里插入图片描述
    这样就解决了这个报错问题

  • CMD命令(使用之前先配置svn客户端环境path)
    svn checkout svn://机器IP/repos/media /svn --username 用户名 --password 密码

  • CMD命令上传
    svn add filename
    svn commit -m "注释说明" filename

    • 将代码目录所有文件更新到最新版本
      svn update
    • 其他命令可以 svn --help 查询
      LinuxSVN远程仓库搭建完毕
2019-04-25 14:44:52 codeaftercode 阅读数 884
  • 带你玩转SVN

    SVN是版本控制利器,团队协作工具之一。本课程主要面向开发人员,帮助初学者意识到版本控制的重要性,掌握SVN环境的搭建,以及SVN客户端工具的使用。

    19392 人正在学习 去看看 刘运强

摘要:记录一下向svn仓库添加项目的命令。

 

1.将本地项目A、项目B交由版本库控制。(在svn服务器中已建立仓库myRepository,用于存储项目文件)

svn import ./ProjectA https://192.168.x.x/svn/myRepository/ProjectA  -m "first commit"

svn import ./ProjectB https://192.168.x.x/svn/myRepository/ProjectB  -m "first commit"

2.项目签出

(1)终端签出

用svn co命令签出,命令格式:

svn co 项目远程地址   本地存储路径

如:

svn co https://192.168.x.x/svn/myRepository/ProjectA ./ProjectA

(2)用QtCreator签出

打开QtCreator-File-New File or Project,在Projects中选择Import Project-Subversion Checkout,

输入仓库地址,本地目录后,仓库中的项目就签出到本地目录了。

在QtCreator中选择Tools,可以看到Subversion工具可以使用了。(之前是灰色的,不可用状态)

 

插曲:执行svn import命令时报错:

svn:E175013:Unable to connect to a repository at URL 'https://192.168.x.x/svn/myRepository/ProjectA'

svn:E175013:禁止访问'/svn/myRepository/ProjectA'

查svn服务器myRepository仓库的权限,原来我使用了旧的svn帐号没有访问权限。

删除本地保存的svn帐号:

rm ~/.subversion/auth/svn.simple/*

然后重新执行svn  import命令,输入新的svn帐号密码。

linux下创建svn仓库

阅读数 3778

没有更多推荐了,返回首页