Linux下SVN命令使用大全

合集下载

Linux下SVN部署安全及权限配置,实现web同步更新

Linux下SVN部署安全及权限配置,实现web同步更新

[examPro:/]
@g_vip=rw
@g_fronter=r
@g_doc=r
[examPro:/protected/modules]
@g_vip=rw
@g_fronter=
*=
[examPro:/protected]
@g_doc=
对于以上代码的配置的详细说明,可以参考本文的参考文章[1]SVN权限配置,里面介绍的比较详细,这里就不多说,有疑问的请留言或mail;
Linux下SVN部署/安全及权限配置,实现web同步更新:
本文包含以下内容:
SVN服务器安装
SVN权限管理
SVN使用SASL加密
SVN上传时同步其它目录
需求
在WEB线上版本管理的基础上,能够在代码上传之后,立刻通过WEB访问,查看修改效果;同时,保证数据的安全性;
#export LANG=zh_CN.UTF-8
export LANG=en_US.UTF-8
2.设置SVN更新时需要同步更新的目录
svn update /alidata/www/examplePro --username yoursname --password yourpwd
以上这行表明,当svn服务器版本有更新时,则同步更新到/alidata/www/examPro目录下的对应文件;yoursname 和yourpwd是你在sasl中设置的用户名和密码;(这里还是涉及到了明文存放,对此,你可以分配一个用户对svn版本库只有全局的读权限)
现在,SVN就实现了版本管理的功能,同时,同步更新的目录有利于测试人员集成测试;
开发人员需要保证的是,任何时候签入到svn库中的版本是可运行的代码。

svn常用命令总结

svn常用命令总结

SVN命令总结1.检出svn co http://路径(目录或文件的全路径) [本地目录全路径]2.导出(导出一个干净的不带.svn文件夹的目录树)svn export http://路径(目录或文件的全路径) [本地目录全路径] 也可指定要导出的版本号:svn export [-r 版本号]3.添加新文件svn add 文件名注:告诉SVN服务器要添加文件了,还要用svn commit -m真实的上传上去!4.提交svn commit -m “提交备注信息文本”文件名svn ci -m “提交备注信息文本”文件名必须带上-m参数,参数可以为空,但是必须写上-m5.更新文件svn updatesvn update -r 修正版本文件名svn update 文件名6.删除文件svn delete 文件名svn ci -m “删除备注信息文本”7.加锁/解锁svn lock -m “加锁备注信息文本”[--force] 文件名svn unlock 文件名8.比较差异svn diff 文件名svn diff -r 修正版本号m:修正版本号n 文件名9.将两个版本之间的差异合并到当前文件svn merge -r m:n path10.查看文件或者目录状态svn st 目录路径/名svn status 目录路径/名目录下的文件和子目录的状态,正常状态不显示:【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】11.查看日志svn log 文件名svn log ./ | more 查看多条记录 -->按空格键即可显示12.查看文件详细信息svn info 文件名13.svn 帮助svn help <-全部功能选项svn help ci <-具体功能的说明14.递归提交一个路径的拷贝到版本库svn import [PATH] URL15.清除锁定svn cleanup16.查看版本库下的文件和目录列表svn list svn://路径(目录或文件的全路径)svn ls svn://路径(目录或文件的全路径)17.创建纳入版本控制下的新目录mkdir newsubdir 创建新目录svn add --non-recursive newsubdirsvn ci -m “提交备注信息文本”目录名18.恢复本地修改svn revert [--recursive] 文件名注意: 本子命令不会存取网络,并且会解除冲突的状况。

Svn Linux安装方法

Svn Linux安装方法

Svn 安装方法1.创建 svn linux 用户:a)使用root 用户登录后,创建svn 组 gsvn, 创建用户 svn .b)创建组命令: groupadd gsvnc)创建用户命令: useradd –s svn -p svn -r svn –g gsvnd)修改密码: passwd svn2.安装java 运行环境 : jdk1.6a)Jdk linux 安装文件jdk-6u23-linux-x64.binb)安装jdk命令: ./jdk-6u23-linux-x64.binc)配置环境变量:在 /ect/profile 文件中添加如下变量:export JAVA_HOME=/svnserver/jdk1.6.0_23export JRE_HOME=/svnserver/jdk1.6.0_23/jreexport CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/libexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH3.安装svn 服务器: CollabNetSubversionEdge-1.3.1_linux-x86_64.tar.gza)安装文件CollabNetSubversionEdge-1.3.1_linux-x86_64.tar.gz.b)安装命令:tar -zxfCollabNetSubversionEdge-1.1.0_linux-x86.tar.gz 4.启动svn 服务器:o Svn 解压后会生成一个csvn 文件夹 ,移动到csvn 文件夹下: cd csvno启动命令: bin/csvn start5.管理台a)安装完成后页面,登录用户名/密码: admin/adminb)启动完成后登录管理台进行服务器设置:http://localhost:3343/csvn/ c)设置svn 端口号:。

linux下常用的svn操作

linux下常用的svn操作

1:checkout命令:从svn版本库中取代码时可以先查看具体代码的路径,windows下右键单击Tortoise->repo_browser 可直接查看,linux下可以输入命令:svn list 版本库地址如图:Checkout时命令是:Svn checkout 版本库地址如图:注意在目前的svn版本中必须checkout一个文件夹下来,只checkout单个文件会提示失败。

如图:若想查看svn上某个具体文件,从而决定是否要checkout当前版本下来,可以执行命令:svn cat 文件在版本库上的地址。

下载好代码后可以通过执行ll –a 命令查看文件信息,可以看到在下载好的文件夹下有一个.svn 文件夹,该文件夹是用来维护工作拷贝信息的,保证拥有该文件夹的读写权限,就可以对下载的代码进行commit等一系列操作。

如图:2:commit命令:将本地的修改工作拷贝上传到svn 服务器中,保证版本库的一致具体命令是:svn commit 要上传的文件路径–m “日志信息”如图:日志信息可以为空。

注意提交时需将该文件更新,在上传,否则出错。

若当前上传的文件不是从svn上checkout下来的文件,会提示不是工作副本,无法上传。

3:import 命令:将本地代码上传到版本库中进入到需要上传代码的目录,执行命令:Svn import 想要上传到svn的路径-m “上传的日志信息”–no-ignore如图:注意上传时需添加日志选项-m ,可以为空,并且需要添加选项—no-ignore因为svn上传时会默认屏蔽掉so .o 等文件,导致上传上去的代码不完整,若上传一半出错提示某些文件无法识别,最好将该文件的父文件夹打包上传,就可以成功传上去了。

4:log 命令查看svn版本库的日志信息,具体命令是:Svn log 查看日志信息的文件名如图:5:update命令:将当前文件更新到版本库上某个具体版本文件具体命令是:Svn update –r 要更新的版本号文件路径如图:6:add 命令:往版本库中添加新的文件add 功能:向文件拷贝所在的文件夹中添加新的文件,并作出标识,是新添加的,下一步提交时将一并提交到Subversion版本库中去。

linux的svn之checkout命令

linux的svn之checkout命令

linux的svn之checkout命令linux的checkout命令是linux的svn的常用命令之一。

下面由店铺为大家搜集整理了linux的svn之checkout命令的相关知识,希望对大家有帮助!linux的svn之checkout命令常用检出命令:svn co http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码svn co svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码svn checkout http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名svn checkout svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名注:如果不带--password 参数传输密码的话,会提示输入密码,建议不要用明文的--password 选项。

其中 username 与 password前是两个短线,不是一个。

不指定本地目录全路径,则检出到当前目录下。

svn的checkout命令实例svn co svn://192.168.0.3/测试工具/home/testtools --username lukesvn co http://192.168.0.3/test/testapp --username lukesvn checkout svn://192.168.0.3/测试工具 /home/testtools --username lukesvn checkout http://192.168.0.3/test/testapp --username luke标注自己实验过的代码:svn checkout http://XXXX/cxb/weijifen/code/trunk/web/XXX /home/cxb/src/XXXsvn checkout http://XXXXX/cxb/weijifen/code/trunk/web/trunk . /home/cxb/src/XXX检出指定具体版本:svn co http://路径(目录或文件的全路径) [本地目录全路径] [--revision] --username 用户名 --password 密码svn checkout svn://路径(目录或文件的全路径) [本地目录全路径] [--revision] --username 用户名svn co [--revision] http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码svn checkout [--revision] svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名svn checkout /svn/trunk/ siphon -r r791svn checkout -r r791 /svn/trunk/ siphon检出不包括源文件夹根目录:比如我要checkout trunk/ 下面的所有文件,但是不包括trunk 文件夹我们可以在svn文件夹后面打个空格,在加个“.”就行了svn co http://192.168.1.10/svn/project/trunk/ /home/DSP-OPEN改为:svn co http://192.168.1.10/svn/project/trunk/ . /home/DSP-OPEN查看更多关于checkout参数使用的命令:svn help checkout[root@ltegr ~]# svn help checkoutcheckout (co): Check out a working copy from a repository.usage: checkout URL[@REV]... [PATH]If specified, REV determines in which revision the URL is firstlooked up.If PATH is omitted, the basename of the URL will be used as the destination. If multiple URLs are given each will be checkedout into a sub-directory of PATH, with the name of the sub-directorybeing the basename of the URL.If --force is used, unversioned obstructing paths in the workingcopy destination do not automatically cause the check out to fail.If the obstructing path is the same type (file or directory) as thecorresponding path in the repository it becomes versioned but itscontents are left 'as-is' in the working copy. This means that anobstructing directory's unversioned children may also obstruct andbecome versioned. For files, any content differences between theobstruction and the repository are treated like a local modificationto the working copy. All properties from the repository are appliedto the obstructing path.See also 'svn help update' for a list of possible charactersreporting the action taken.Valid options:-r [--revision] ARG : ARG (some commands also takeARG1:ARG2 range)A revision argument can be one of:NUMBER revision number'{' DATE '}' revision at start of the date'HEAD' latest in repository'BASE' base rev of item's working copy'COMMITTED' last commit at or before BASE'PREV' revision just before COMMITTED-q [--quiet] : print nothing, or only summary information-N [--non-recursive] : obsolete; try --depth=files or --depth=immediates--depth ARG : limit operation by depth ARG ('empty', 'files', 'immediates', or 'infinity')--force : force operation to run--ignore-externals : ignore externals definitionsGlobal options:--username ARG : specify a username ARG--password ARG : specify a password ARG--no-auth-cache : do not cache authentication tokens--non-interactive : do no interactive prompting--trust-server-cert : accept unknown SSL server certificates withoutprompting (but only with '--non-interactive')--config-dir ARG : read user configuration files from directory ARG--config-option ARG : set user configuration option in the format:FILE:SECTION:OPTION=[VALUE]For example:servers:global:http-library=serf知识扩展:check out跟check in对应,export跟import对应check out导出获得文件后,导出的文件仍处于SVN版本控制中,与版本库保持关联,比如你可以进行Svn Update或者Svn Commit 操作。

linux ubuntu下svn命令使用指南

linux ubuntu下svn命令使用指南

Linux ubuntu下svn的命令使用指南Svn简介:Svn的全名是Subversion,它使用服务端—客户端的结构,当然服务端与客户端可以都运行在同一台服务器上。

在服务端是存放着所有受控制数据的Subversion仓库,另一端是Subversion 的客户端程序,管理着受控数据的一部分在本地的映射(称为工作副本)。

在这两端之间,是通过各种仓库存取层(Repository Access,简称RA)的多条通道进行访问的。

这些通道中,可以通过不同的网络协议,例如HTTP、SSH等,或本地文件的方式来对仓库进行操作。

Subversion是一种开放源码的全新版本控制系统,支持可在本地访问或通过网络访问的数据库和文件系统存储库。

不但提供了常见的比较、修补、标记、提交、回复和分支功能性,Subversion 还增加了追踪移动和删除的能力。

此外,它支持非ASCII文本和二进制数据,所有这一切都使Subversion不仅对传统的编程任务非常有用,同时也适于Web 开发、图书创作和其他在传统方式下未采纳版本控制功能的领域.Subversion的官方网站是:/大部分的发行版都已经提供Subversion套件,ubuntu下安装subversion客户端:sudo apt-get install subversion使用SubversionSubversion一般使用两种后台服务模式:一种是其自己实现的svnserve,可以通过svn协议访问,另一种是借助mod_dav_svn模块,由Apache http服务器来实现,然后通过HTTP或HTTPS协议来访问。

1、通过svn协议访问svn协议客户端若要通过svn协议访问仓库,必须在存放仓库的机器上运行svnserve服务程序。

启动该程序后,会监听在3690端口,以响应客户端的访问工作。

2、通过HTTP协议访问版本库通过HTTP协议访问版本库是Subversion的亮点之一,这种方式具备许多svnserve服务器所没有的特性,使用上更加灵活。

svn linux下常用命令

svn linux下常用命令

在Linux下使用Subversion(SVN)进行版本控制,你可以使用以下常用命令:1. `svn checkout`:从服务器上检出(checkout)一个目录,作为你本地的副本。

语法为`svn checkout path`,其中`path`是服务器的目录路径。

例如:`svn checkout svn://192.168.1.1/pro/domain`。

2. `svn update`:将本地的目录更新到最新的版本。

如果在提交的时候提示过期的话,是因为冲突,需要先`update`,修改文件,然后清除`svn resolved`,最后再提交`commit`。

例如:`svn update test.php`。

3. `svn add`:将新的文件添加到版本库。

语法为`svn add filename`,其中`filename`是要添加的文件名。

例如:`svn add test.cpp`。

4. `svn commit`:将修改的内容提交到版本库。

语法为`svn commit -m "注释"`,其中`-m "注释"`是提交的注释信息。

例如:`svn commit -m "注释" test.cpp`。

5. `svn lock`:给文件加锁,防止其他用户修改。

语法为`svn lock -m "注释" path`,其中`path`是要锁定的文件路径,`-m "注释"`是锁定的注释信息。

例如:`svn lock -m "注释" test.cpp`。

6. `svn unlock`:解锁文件,允许其他用户修改。

语法为`svn unlock path`,其中`path`是要解锁的文件路径。

例如:`svn unlock test.cpp`。

7. `svn status`:查看文件或者目录状态。

可以查看正常状态(例如`svn status path`)和详细状态(例如`svn status -v path`)这些是Linux 下使用Subversion 的常用命令,可以根据实际情况选择适合的命令来操作。

svn move用法

svn move用法

svn move用法
svnmove命令用于将文件或目录从一个位置移动到另一个位置,并在版本库中保留其历史记录和属性。

该命令可以用于重命名文件或目录,并将它们移动到不同的目录中。

使用svn move命令的基本语法如下:
svn move SOURCE TARGET
其中,SOURCE表示要移动的文件或目录的路径,TARGET表示移动后的目标路径。

如果TARGET已经存在,则会将SOURCE的内容合并到TARGET中。

svn move命令还支持一些选项,例如:
-m MESSAGE:指定提交时的提交信息。

-F FILE:从指定文件中读取提交信息。

--force:强制移动文件或目录,即使它们已经被修改。

--parents:如果目标路径不存在,则创建其所有父目录。

--version:显示版本信息。

例如,使用svn move命令将文件file1.txt移动到目录dir1中,可以输入以下命令:
svn move file1.txt dir1/file1.txt
如果要将整个目录dir1移动到目录dir2中,并将其重命名为dir3,则可以输入以下命令:
svn move dir1 dir2/dir3
使用svn move命令可以方便地管理版本库中的文件或目录,避
免了手动复制和删除的麻烦。

同时,其保留历史记录和属性的特性也确保了版本库的完整性和稳定性。

linux下svn的import命令

linux下svn的import命令

linux下svn的import命令linux svn的import命令主要是将文件导入版本库的功能。

下面由店铺为大家搜集整理了linux svn的import命令的相关知识,希望对大家有帮助!linux svn的import命令svn import是将未版本化文件导入版本库的最快方法,会根据需要创建中介目录。

svn import不需要一个工作拷贝,你的文件会直接提交到版本库,这通常用在你希望将一组文件加入到Subversion版本库时,例如:linux svn的import命令实例1)首先,服务器管理员在SVN服务器上创建项目版本库newrepos$ svnadmin create /usr/local/svn/newrepos2)然后,在客户端使用svn命令把本地文件导入到服务器上的项目版本库$ svn import mytree file:///usr/local/svn/newrepos/some/project -m "Initial import"Adding mytree/foo.cAdding mytree/bar.cAdding mytree/subdirAdding mytree/subdir/quux.hCommitted revision 1.在上一个例子里,将会拷贝目录mytree到版本库的some/project下:$ svn list file:///usr/local/svn/newrepos/some/projectbar.cfoo.csubdir/注意,在导入之后,原来的目录树并没有转化成工作拷贝,为了开始工作,你还是需要运行svn checkout导出一个工作拷贝。

推荐的版本库布局尽管Subversion的灵活性允许你自由布局版本库,但我们有一套推荐的方式,创建一个trunk目录来保存开发的“主线”,一个branches目录存放分支拷贝,tags目录保存标签拷贝,例如:$ svn list file:///usr/local/svn/repos/trunk/branches/tags。

linux下搭建SVN

linux下搭建SVN

linux下搭建SVN查看系统下有没有安装过⽼版本的svn:rpm -qa subversion,如果没安装过则什么都不显⽰如果有⽼版本先运⾏⼀下yum -y remove subversion,删除⽼版本。

第⼀步:通过yum命令安装svnserve,命令:yum -y install subversion此命令会全⾃动安装svn服务器相关服务和依赖,安装完成会⾃动停⽌命令运⾏若需查看svn安装位置,可以⽤命令:rpm -ql subversion第⼆步:创建版本库⽬录(此仅为⽬录,为后⾯创建版本库提供存放位置,subversion默认是把/var/svn作为数据根⽬录的,开机启动默认也是从这⾥):mkdir /var/svn/svnrepos第三步:创建svn版本库在第⼆步建⽴的路径基础上,创建版本库:svnadmin create /var/svn/test(test为⽬录(项⽬或版本库)名称,后⾯checkout项⽬时会⽤到。

)创建成功后,进⼊test⽬录下,可以看见如下⽂件信息:cd /var/svn/testconf:是这个仓库配置⽂件(仓库⽤户访问账户,权限)format:是⼀个⽂本⽂件,⾥边只放了⼀个整数,表⽰当前⽂件库配置的版本号hooks:放置hook脚步⽂件的⽬录locks:⽤来放置subversion的db锁⽂件和db_logs锁⽂件的⽬录,⽤来追踪存取⽂件库的客户端第四步:配置修改进⼊conf,conf⽬录下,⼀共存放三份重要的配置⽂件,如下:authz:负责账号权限的管理,控制账号是否读写权限passwd:负责账号和密码的⽤户名单管理svnserve.conf:svn服务器配置⽂件修改svnserve.conf:vim svnserve.conf原始⽂件内容,都被注释掉的,我们只需要去掉指定内容前注释即可,如下:[general]anon-access = none #控制⾮鉴权⽤户访问版本库的权限auth-access = write #控制鉴权⽤户访问版本库的权限password-db = passwd #指定⽤户名⼝令⽂件名,即访问时要输⽤户名和密码realm = test #指定版本库的认证域,即在登录时提⽰的认证域名称,改成⾃⼰的版本库修改authz⽂件信息:vim authz在⽂件内容的末尾,添加如下:rw表⽰赋予此账号可读写的权限,r为读,w为写,注意[/]中的斜杠,这⾥如果斜杠反了,authz-db = authz ⼀直会提⽰“认证失败”第⼀种⽅式:单个添加:# 按账号分权限[test/]admin = rwtest = r第⼆种⽅式(后⾯采⽤此⽅式配置):⽤户分组,再设权限[groups]# 按⽤户组分权限admin = admin,admin1 # admin为⽤户组,等号之后的为⽤户test = test1, test2 # test为⽤户组,等号之后的为⽤户[/] # 表⽰svn仓库⽬录(/var/svn/test),test: 对应前⾯配置的realm = test@admin = rw # 表⽰admin组对仓库(/var/svn/test)⽬录有读写权限,r为读,w为写@test = r # 表⽰test组的⽤户对对仓库(/var/svn/test)⽬录只有读的权限[/test1] # 表⽰test1⽬录(/var/svn/test/test1)@test = rw # 表⽰test组对test1⽬录有读写权限* =备注:版本库的⽬录格式如下:[<版本库>:/项⽬/⽬录]@<⽤户组名> = 权限<⽤户名> = 权限其中[]內容有許多写法:[/],表⽰根⽬录及其⼀下的路径,根⽬录是svnserver启动时指定好的,上述实例中我们指定为:/svn/svndata([/]=/svn/svndata).[/]就是表⽰对全部版本设置的权限[test:/],表⽰对版本库test设置权限;[test:/svnadmin],表⽰对版本库test中的svnadmin项⽬设置权限;[test:/svnadmin/second],表⽰对版本库test中的svnadmin项⽬的⽬录设置权限;权限的主体可以是⽤户组,⽤户或者*,⽤户组在前⾯要以@开头,*表⽰全部⽤户权限分为:r ,w, rw和null ,null空表⽰没有任何权限。

linux下安装svn详解

linux下安装svn详解

前言SVN服务器有2种运行方式:独立服务器和借助apache。

2种方式各有利弊,独立SVN服务器不结合Apache安装使用,连接独立SVN服务器也不用HTTP协议。

这是比较快捷的SVN服务器配置方法。

本次安装时使用的是独立用品方式。

SVN存储版本数据也有2种方式:BDB和FSFS。

因为BDB方式在服务器中断时,有可能锁住数据所以还是FSFS方式更安全一点,我安装时也使用的是FSFS方式。

一下载工具1. subversion-1.6.17.tar.gz2. subversion-deps-1.6.17.tar.gz这两个包可以直接到CSDN去下载,版本要一样,都是必须下载的,否则单独下载第一个包编译时就会提示缺少模块。

这两个包下载解压后会解压到同一个目录下,不需要特别指定。

二解压安装1. 解压两个包:在此之前,我已经创建了一个用户svnadmin专门用来安装管理svn的,就解压在/home/svnadmin/目录下tar -xzvf subversion-1.6.17.tar.gztar -xzvf subversion-deps-1.6.17.tar.gz2. 编译安装./configure --prefix=/home/svnadmin/subversion --without-berkeley-db //prefix指定安装的目录,without-berkeley-db表明不使用berkeley数据库//在这一步有可能不成功,是因为有一些依赖的软件没装,具体见下面“遇到的问题”makemake install//也许要sudo,看情况3. 查看是否安装成功/home/svnadmin/subversion/bin/svnserve --version//如果出现SVN的版本则证明安装成功三添加环境变量可以在/etc/profile中添加,这是全局的。

其实最好是专门添加一个svnadmin 用户,在~/.bashrc中添加即可:exprot PATH=$PATH:/home/svnadmin/subversion/bin四建立仓库1. 创建目录mkdir -p /home/svnadmin/svndata/repos1加上参数P,是如果没有父目录则自动创建注意: /home/svnadmin/svndata在这里将是所有仓库的根目录,repos1是其中的一个仓库。

svn常用命令

svn常用命令

svn常⽤命令命令的使⽤1、检出3、添加新⽂件svn add ⽂件名注:告诉SVN服务器要添加⽂件了,还要⽤svn commint -m真实的上传上去!例⼦:svn add test.php <-添加test.phpsvn commit -m “添加我的测试⽤test.php“test.phpsvn add *.php <-添加当前⽬录下所有的php⽂件svn commit -m “添加我的测试⽤全部php⽂件“*.php4、提交svn commit -m “提交备注信息⽂本“ [-N] [--no-unlock] ⽂件名svn ci -m “提交备注信息⽂本“ [-N] [--no-unlock] ⽂件名必须带上-m参数,参数可以为空,但是必须写上-m例⼦:svn commit -m “提交当前⽬录下的全部在版本控制下的⽂件“ *<-注意这个*表⽰全部⽂件svn commit -m “提交我的测试⽤test.php“test.phpsvn commit -m “提交我的测试⽤test.php“-N --no-unlock test.php<-保持锁就⽤–no-unlock开关svn ci -m “提交当前⽬录下的全部在版本控制下的⽂件“ *<-注意这个*表⽰全部⽂件svn ci -m “提交我的测试⽤test.php“test.phpsvn ci -m “提交我的测试⽤test.php“-N --no-unlock test.php<-保持锁就⽤–no-unlock开关5、更新⽂件svn updatesvn update -r 修正版本 ⽂件名svn update ⽂件名例⼦:svn update <-后⾯没有⽬录,默认将当前⽬录以及⼦⽬录下的所有⽂件都更新到最新版本svn update -r 200test.cpp <-将版本库中的⽂件 test.cpp还原到修正版本(revision)200 svnupdate test.php<-更新与版本库同步。

linux环境svn使用方法

linux环境svn使用方法

linux环境svn使用方法摘要:1.SVN简介与安装2.配置SVN客户端3.创建与克隆仓库4.提交与更新代码5.合并与解决冲突6.团队协作与权限管理7.常见问题与解决方法8.实战案例分享正文:一、SVN简介与安装1.SVN(Subversion)是一个开源的版本控制系统,用于管理分布式团队之间的源代码。

2.安装SVN:在Linux环境下,可以通过软件包管理器(如apt、yum 等)安装SVN。

二、配置SVN客户端1.设置SVN代理:在客户端机器上配置SVN代理,以便访问远程仓库。

2.配置SVN用户名和密码:在客户端机器上设置SVN用户名和密码,以备后续使用。

三、创建与克隆仓库1.创建本地仓库:在本地机器上创建一个新的SVN仓库。

2.克隆远程仓库:通过SVN客户端克隆远程仓库到本地机器。

四、提交与更新代码1.提交代码:将本地仓库的修改提交到远程仓库。

2.更新代码:从远程仓库拉取最新代码到本地仓库。

五、合并与解决冲突1.合并代码:将不同团队成员的修改合并到同一个分支。

2.解决冲突:在合并过程中遇到冲突时,学会使用SVN的冲突解决机制。

六、团队协作与权限管理1.创建分支:为不同团队成员创建单独的分支,以便并行开发。

2.权限管理:通过SVN对仓库和分支进行权限控制,保障团队协作的安全性。

七、常见问题与解决方法1.无法连接远程仓库:检查网络连接、SVN服务器配置等问题。

2.代码冲突:使用SVN的冲突解决机制,或切换到其他分支进行开发。

八、实战案例分享1.以实际项目为例,分享SVN在团队协作中的具体应用。

2.介绍SVN在不同场景下的优势和劣势。

通过以上步骤,您可以更好地在Linux环境下使用SVN进行版本控制和团队协作。

Linux部署SVN详解(含备份与还原)

Linux部署SVN详解(含备份与还原)

Linux部署SVN详解1安装操作系统安装系统采用CentOS-6.2/Database Server2安装配置apache与SVN1)数据包安装顺序:(安装包在CentOS-6.2盘的Packages目录下均可找到)a)apr-1.3.9-3.el6_1.2.i686.rpmb)apr-util-1.3.9-3.el6_0.1.i686.rpmc)httpd-2.2.15-15.el6.centos.i686.rpm依赖文件:httpd-tools-2.2.15-15.el6.centos.i686.rpm与apr-util-ldap-1.3.9-3.el6_0.1.i686.rpmd)sqlite-3.6.20-1.el6.i686.rpme)subversion-1.6.11-2.el6_1.4.i686.rpm依赖文件:neon-0.29.3-1.2.el6.i686.rpmneon依赖文件:pakchois-0.4-3.2.el6.i686.rpm与libproxy-0.3.0-2.el6.i686.rpm安装libproxy命令:三个包同时安装rpm -ivh libproxy-0.3.0-2.el6.i686.rpm libproxy-bin-0.3.0-2.el6.i686.rpm libproxy-python-0.3.0-2.el6.i686.rpmf)mod_dav_svn-1.6.11-2.el6_1.4.i686.rpm安装后将生成文件:/etc/httpd/conf.d/subversion.conf2)修改apache(即httpd)配置文件#vi /etc/httpd/conf/httpd.conf执行上述命令后,对文件进行以下修改:ServerName localhost:80localhost表示自己的IP地址(找到上面一行并做类似修改后保存退出)#service httpd start#chkconfig httpd on文件修改完成后,启动http服务并使用chkconfig命令设置开机自启动。

svn的用法

svn的用法

svn的用法
SVN是一种版本控制系统,它可以管理和跟踪软件开发过程中的变化和修改。

以下是SVN的常用用法:
1. 检出代码:使用svn checkout命令从远程仓库中下载代码到本地。

2. 添加文件:使用svn add命令将新文件或目录添加到版本控制系统中。

3. 更新代码:使用svn update命令从远程仓库中获取最新版本的代码。

4. 查看修改:使用svn diff命令查看本地修改的代码与最新版本的区别。

5. 提交代码:使用svn commit命令将本地修改的代码提交到远程仓库中。

6. 撤销修改:使用svn revert命令撤销本地修改的代码。

7. 分支和合并:使用svn branch和svn merge命令进行代码分支和合并操作。

8. 查看日志:使用svn log命令查看代码提交历史和版本信息。

以上就是svn的常用用法,通过它可以更好地管理和控制软件开发过程中的变化和修改。

- 1 -。

linux下svn的配置及svn常用命令

linux下svn的配置及svn常用命令

linux下svn的配置及svn常用命令SVN是Subversion的简称,是一个开放源代码的版本控制系统,svn服务器有两种运行方式:独立服务器和借助apache运行。

右图是一个svn的工作流程,它可以很方便用户的代码编写。

1.首先安装SVN:”sudo apt-get install subversion”.查看svn的版本和确定是否安装成功:”svnserve –version”.2.创建svn仓库:“svnadmin create msm”,其中msm是版本仓库的名字,仓库建立好了以后会有出现一个仓库名字的文件夹,文件夹下面有conf等几个目录和文件.接下来就需要设置版本仓库的权限了。

这里说明一下:版本库之间是独立的。

(下图为msm的目录)3.增加用户修改conf文件夹下的authz文件,该配置文件采用”基于路径授权”的策略,中括号里指定路径,以下列出对各用户的授权。

包括只读r,读写rw。

没有列出的用户,则不允许访问。

还可以对用户分组,列子如下用户组格式:[groups]<用户组名>=<用户1>,<用户2>其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。

版本库目录格式:[<版本库>:/项目/目录]@<用户组名>=<权限><用户名>=<权限>,其中,方框号内部分可以有多种写法:/,表示根目录(仓储目录)及以下。

根目录是svnserve启动时指定的,我们指定/opt/svndata。

这样,/就是表示对全部版本库设置权限。

权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。

权限可以是w、r、wr和空,空表示没有任何权限。

下图是我增加的用户组:(注意:等号后留有空格)增加后:4.修改用户密码添加用户后就要为用户设置密码了,打开conf/passwd文件:输入格式为,[users]<用户1> = <密码1> 如: admin = admin<用户2> = <密码2> 如: username2 = password2…...左边是我的添加:5.启动svn对用户权限、密码的控制需要启动SVN对用户权限、密码的控制,不然的话你就只能读而不能写了。

linux svn客户端安装及使用

linux svn客户端安装及使用

测试是否已经可以在用户目录下使用svn:
svn help 如果出现命令列表,则表示已经链接成功。
5. 使用chmod命令,使 list checkout commit这三个命令脚本有执行权限:
chmod 777 list checkout commit
cp list checkout commit /usr/bin
# svn up 更新本地工作目录
D)删除库上一个文件夹(demo) 进入DemoProject/src/目录
# svn up 更新本地工作目录
# svn del demo 删除demo文件夹
# commit demo 将删除提交到库
3、 本地与库之间的操作
A) 查看库上目录结构(查看DemoProject目录结构)
# svn st
如果你的 hello.cpp修改后还没有提交,则使用svn st会在第一列显示hello.cpp的状态为M,表示项目已经修改但没有提交到库。
B) 查看svn命令的帮助
# svn help update 查看update命令的帮助.
C) 提交时冲突(没有更新本地工作目录而修改文件导致冲突)处理:
B) 提交修改过的整个文件夹到库(修改了文件夹include
# svn up
# commit include
# svn up
C) 新增一个文件夹到库(DemoProject/lib)
进入DemoProject目录:
# svn mkdir lib 创建lib包
# commit lib 提交到库
D)checkout下来库的老版本
首先查看你需要checkout下来的DemoProject老版本,然后再checkout下来:

SVN命令大全

SVN命令大全

目录1、将文件CHECKOUT到本地目录 (2)2、往版本库中添加新的文件 (2)3、将改动的文件提交到版本库 (2)4、加锁/解锁 (2)5、更新到某个版本 (2)6、查看文件或者目录状态 (2)7、删除文件 (3)8、查看日志 (3)9、查看文件详细信息 (3)10、比较差异 (3)11、将两个版本之间的差异合并到当前文件 (3)12、SVN帮助 (3)13、版本库下的文件和目录列表 (4)14、创建纳入版本控制下的新目录 (4)15、恢复本地修改 (4)16、代码库URL变更 (4)17、解决冲突 (4)18、输出指定文件或URL的内容。

(5)1、将文件CHECKOUT到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2、往版本库中添加新的文件svn add file例如:svn add test.php(添加test.php)svn add *.php(添加当前目录下所有的php文件)3、将改动的文件提交到版本库svn commit -m “LogMessage” [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock 开关)例如:svn commit -m “add test file for my test” test.php简写:svn ci4、加锁/解锁svn lock -m “LockMessage” [--force] PATH例如:svn lock -m “lock test file” test.phpsvn unlock PATH5、更新到某个版本svn update -r m path例如:svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。

svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)svn update test.php(更新,于版本库同步。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux下SVN命令使用大全版本号V0.1 修订内容详细修订日期文件性质备注正在继续添加和完善...1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2、往版本库中添加新的文件、目录或符号链svn add PATH...例如:svn add test.php(添加test.php)svn add *.php(添加当前目录下所有的php文件)●文件、目录或符号链到你的工作拷贝并且预定添加到版本库。

它们会在下次提交上传并添加到版本库,如果你在提交之前改变了主意,你可以使用svn revert取消预定。

●是否访问版本库否●选项--targets FILENAME--non-recursive (-N)--quiet (-q)--config-dir DIR--no-ignore--auto-props--no-auto-props--force●例子添加一个文件到工作拷贝:$ svn add foo.cA foo.c当添加一个目录,svn add缺省的行为方式是递归的:$ svn add testdirA testdirA testdir/aA testdir/bA testdir/cA testdir/d你可以只添加一个目录而不包括其内容:$ svn add --non-recursive otherdirA otherdir通常情况下,命令svn add *会忽略所有已经在版本控制之下的目录,有时候,你会希望添加所有工作拷贝的未版本化文件,包括那些隐藏在深处的文件,可以使用svn add的--force递归到版本化的目录下:$ svn add * --forceA foo.cA somedir/bar.cA otherdir/docs/baz.doc…3、将改动的文件提交到版本库svn commit -m ―LogMessage― [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock 开关)例如:svn commit -m ―add test file for my test― test.php简写:svn ci4、加锁/解锁svn lock -m ―LockMessage― [--force] PATH例如:svn lock -m ―lock test file― test.phpsvn unlock PATH5、更新到某个版本svn update -r m path例如:svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。

svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)svn update test.php (更新,于版本库同步。

如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)简写:svn up6、查看文件或者目录状态1)svn status path(目录下的文件和子目录的状态,正常状态不显示)【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】2)svn status -v path(显示文件和子目录状态)第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。

注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn 在本地的.svn中保留了本地版本的原始拷贝。

简写:svn st7、删除文件svn delete path -m ―delete test fle―例如:svn delete svn://192.168.1.1/pro/domain/test.php -m ―delete test file‖或者直接svn delete test.php 然后再svn ci -m ‗delete test file‗,推荐使用这种简写:svn (del, remove, rm)8、查看日志svn log path例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化9、查看文件详细信息svn info path例如:svn info test.php10、比较差异svn diff path(将修改的文件与基础版本比较)例如:svn diff test.phpsvn diff -r m:n path(对版本m和版本n比较差异)例如:svn diff -r 200:201 test.php简写:svn di11、将两个版本之间的差异合并到当前文件svn merge -r m:n path例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)12、SVN 帮助●svn help [SUBCOMMAND...]当手边没有这本书时,这是你使用Subversion最好的朋友!●别名?, h●使用-?、-h和--help选项与使用help子命令效果相同。

●是否访问版本库否●选项 --config-dir DIR名称svn merge —应用两组源文件的差别到工作拷贝路径。

概要svn merge [-c M | -r N:M] SOURCE[@REV] [WCPATH]svn merge sourceURL1[@N] sourceURL2[@M] [WCPATH]svn merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH]描述第一种和第二种形式里,源路径(第一种是URL,第二种是工作拷贝路径)用修订版本号N和M指定,这是要比较的两组源文件,如果省略修订版本号,缺省是HEAD。

-c M选项与-r N:M等价,其中N = M-1,使用-c -M则相反:-r M:N,其中N = M-1。

第三种形式,SOURCE可以是URL或者工作拷贝项目,与之对应的URL会被使用。

在修订版本号N和M的URL 定义了要比较的两组源。

WCPATH是接收变化的工作拷贝路径,如果省略WCPATH,会假定缺省值“.”,除非源有相同基本名称与“.”中的某一文件名字匹配:在这种情况下,区别会应用到那个文件。

不像svn diff,合并操作在执行时会考虑文件的祖先,当你从一个分支合并到另一个分支,而这两个分支有各自重命名的文件时,这一点会非常重要。

别名无改变工作拷贝2是否访问版本库只有在对URL操作时会选项--revision (-r) REV--change (-c) REV--non-recursive (-N)--quiet (-q)--force--dry-run--diff3-cmd CMD--extensions (-x) ARG--ignore-ancestry--username USER--password PASS--no-auth-cache--non-interactive--config-dir DIR例子将一个分支合并回主干(假定你有一份主干的工作拷贝,分支在修订版本250创建):$ svn merge -r 250:HEAD /repos/branches/my-branch U myproj/tiny.txtU myproj/thhgttg.txtU myproj/win.txtU myproj/flo.txt如果你的分支在修订版本23,你希望将主干的修改合并到分支,你可以在你的工作拷贝的分支上这样做:$ svn merge -r 23:30 file:///tmp/repos/trunk/vendorsU myproj/thhgttg.txt…合并一个单独文件的修改:$ cd myproj$ svn merge -r 30:31 thhgttg.txtU thhgttg.txt在同一个版本库进行回滚韩捷对SystemUI的修改分别在46和47版本,现在要将其回滚到未修改之前的状态,则可以这样来做。

进入到SystemUI目录,然后运行:svn merge -r 46:45 svn://localhost/MG701/alps/frameworks/base/packages/SystemUI svn merge -r 47:45 svn://localhost/MG701/alps/frameworks/base/packages/SystemUI13、版本库下的文件和目录列表svn list path显示path目录下的所有属于版本库的文件和目录简写:svn ls14、创建纳入版本控制下的新目录svn mkdir: 创建纳入版本控制下的新目录。

用法:1)mkdir PATH…2)mkdir URL…创建版本控制的目录。

1)每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增调度,以待下一次的提交。

2)每个以URL指定的目录,都会透过立即提交于仓库中创建。

在这两个情况下,所有的中间目录都必须事先存在。

15、恢复本地修改svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。

revert:用法: revert PATH…注意: 本子命令不会存取网络,并且会解除冲突的状况。

但是它不会恢复被删除的目录16、代码库URL变更svn switch (sw): 更新工作副本至不同的URL。

用法:1)switch URL [PATH]2)switch -–relocate FROM TO [PATH...]1)更新你的工作副本,映射到一个新的URL,其行为跟―svn update‖很像,也会将服务器上文件与本地文件合并。

这是将工作副本对应到同一仓库中某个分支或者标记的方法。

2)改写工作副本的URL元数据,以反映单纯的URL上的改变。

当仓库的根URL变动(比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用这个命令更新工作副本与仓库的对应关系。

17、解决冲突svn resolved: 移除工作副本的目录或文件的―冲突‖状态。

用法: resolved PATH…注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的相关文件,然后让 PATH 可以再次提交。

svn resolved上一页 svn子命令下一页--------------------------------------------------------------------------------名称svn resolved —删除工作拷贝文件或目录的“冲突”状态。

相关文档
最新文档