频道栏目
首页 > 资讯 > 其他综合 > 正文

svn命令行使用

17-09-14        来源:[db:作者]  
收藏   我要投稿

1.配置版本库路径,作为版本库根目录

D:\svnRepitory\devRep

2.在版本库目录下创建与具体项目对应的子目录,这样只开一个服务器就能同时管理多个项目

D:\svnRepitory\devRep\OA

D:\svnRepitory\devRep\CRM

3.用命令创建版本库

svnadmin create D:\svnRepitory\devRep\OA

4.创建成功后产生如下目录结构

 

conf 存放版本库所使用的配置文件的目录

db存放存储版本数据的数据库文件的目录

hooks存放版本库钩子程序的目录

locks存储锁目录,用来跟踪库的访问者

format存储一个整数的文件,此整数代表库层次结构版本

README.txt 版本库自述文件

5.启动svn服务器

svn服务器必须处于运行状态才能响应客户端请求,帮助我们管理项目文件

a.命令格式启动

svnserve -d -r D:\svnRepitory\devRep

验证服务器是否启动成功,svn服务器监听3690端口,netstat -an查看3690是否被监听

b.注册windows服务

命令格式:

主命令

子命令

参数1

参数2

参数3

参数4

sc

create

服务名

binPath= "运行服务所需的二进制文件

路径及运行该二进制文件的命令行参数"

start=auto

表示自动启动

depend=Tcpip 表示依赖Tcpip协议

注意:命令中等号左边没有空格,右边有一个空格

 

binPath组成格式说明

svnserve.exe路径

svnserve命令参数1

svnserve命令参数2

svnserve命令参数3

svn安装目录\bin\svnserve

--service 表示以服务方式启动

subversion

-r

表示版本库根目录

版本库根目录

 

 

sccreate SVNService binPath= "C:\Program Files\TortoiseSVN\bin\svnserve.exe--service -r D:\svnRepitory\devRep" start= auto depend= Tcpip

 

启动服务netstart SVNservice

停止服务net stop SVNService

删除服务sc delete SVNService

6.使用命令

6.1检出 先进入自己工作目录,然后检出

svn checkout svn://SVN服务器主机地址/具体仓库目录

svncheckout svn://localhost/OA

.svn文件夹用来保存与服务器交互的重要信息

6.2提交(需要有权限)

进入工作目录

svn add test.txt

svn commit -m "日志" test.txt

6.3更新

svn update

7.工作副本中几种常见状态

①没有修改,现行版本

本档案在工作目录中没有被修改,而且自当前版本之后,其他终端也没有任何该文件的修改被提交到服务器,即当前工作副本的版本和服务器端最新版本是一致的。对它执行svn commit和svn update都不会发生任何事。

②本地修改, 现行版本

这个文件被修改过,但这个修改还没有提交到服务器,而且自当前版本之后,其他终端也没有任何该文件的修改被提交到服务器,所以当前工作副本的版本和服务器端最新版本仍然是一致的。由于有尚未送交回去的本地修改,所以对它的 svn commit会成功提交你的修改,而 svn update 则不会作任何事。

③没有修改,过时版本

这个文件没有修改,但是版本库中有其他终端提交的修改。此时当前工作副本的版本比服务器端的版本落后了,我们称之为“过时”。对当前文件的 svn commit 不会发生任何事,而 svn update 会让工作目录中的文件更新至最新版本。

④本地修改,过时版本

服务器端存在没有更新到本地的修改,导致当前版本过时。如果这个文件在本地有未提交的修改,则无法提交,对它执行svn commit 会产生“out-of-date”错误。

此时应该先尝试更新本地文件。更新时SVN会尝试将服务器端的更新与本地文件进行合并,合并的结果有两种可能:一个是服务器端和本地修改位于文件的不同位置,合并成功;另一个是服务器端的修改正好和本地修改位于同一个位置,发生冲突。

8.将工作副本整体回复到某一个历史版本

svn update--revision 2

9.将某个文件恢复到某个版本的状态,不涉及其他文件

svn update pp.txt --revision 1

10.权限设置

打开svnserve.conf

anon-access = none 匿名访问设置为none

auth-access=write 打开版本库权限访问

password=db=passwd 表明同目录下的passwd文件保存用户信息

authz-db=authz 表明使用同目录下的authz文件保存权限信息

打开passwd创建用户

打开authz文件,#后面注释的是例子

创建用户组组名=用户名,用户名

[groups]

#harry_and_sally = harry,sally

#harry_sally_and_joe = harry,sally,&joe

 

canWrite=user1,user2

canRead=peo1,peo2

指定路径,给用户和用户组授权

#[/foo/bar]

#harry = rw

#&joe = r

# * = 屏蔽那些未设定的用户,让他们没有任何权限

[/]

@canWrite=rw

@canRead=r

user3=r 不加@表示用户,加@表示组

*=

 

 

11.多版本库共享配置

  1. 在版本库根目录D:\DevRepository\Subversion下创建commConf目录将未修改的authz和passwd文件拷贝到commConf目录下修改需要设置权限的版本库的svnserve.conf文件

    ①password-db = ../../commConf/passwd

    ②authz-db = ../../commConf/authz

    1. 在password中创建用户

      [users]

      # harry = harryssecret

      # sally = sallyssecret

       

      userERP = 123456

      userOA = 123456

      userCRM = 123456

      1. 在authz中针对不同版本库为不同用户授予权限

        # [repository:/baz/fuz]

        # @harry_and_sally = rw

        # * = r

         

        [ERP:/]

        userERP = rw

        * =

         

        [OA:/]

        userOA = rw

        * =

         

        [CRM:/]

        userCRM = rw

        * =

         

         

        12.查看工作副本信息

        svn info [某个文件]

        13.查看目录或文件日志信息

        svn log [某个文件]

        [注意:使用这个命令的前提是设置匿名访问为none,即:anon-access = none,

        否则会出现“svn: E220001: 条目不可读”错误]

         

         

         

         

         

         

         

         

         

         


相关TAG标签
上一篇:使用Python读写csv文件
下一篇:黑客怎样运用Facebook Messenger跨系统入侵攻击活动 深度研究
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站