常用linux svn命令

合集下载

Linux下SVN全量与增量备份shell脚本

Linux下SVN全量与增量备份shell脚本

Linux下SVN全量与增量备份shell脚本1.全量#!/ 垃圾箱/垃圾箱##subversion的安装目录及执行文件svn_home=/usr/local/subversion/binsvn_admin=$svn_home/svnadminsvn_look=$svn_ho me/svnlooksvn_back=/home1/svnbackups/full##配置库根目录svn_reporoot=/home1/svnroot/hxz##增量备份文件存储路径日期=$(日期'+%Y-%m-%d')rar_uu存储=$svn_uuuuback/$dateif[!-d\mkdir-p$rar_ustorefi##读取项目库列表cd$svn_reporootfornamein$(ls)do##启动完全备份$svn_adminhotcopy$svn_reporoot/$name$rar_store/$namecd$svn_uuu返回/$datetarzcvf$name.tar.gz$namerm rf$rar_uuu商店/$namedone##备份打包压缩#packagethebackupfolder#cd$svn_back/$date#tarzcvf$name。

焦油gz$name#rm-rf$rar_store/$name2.增量#!/bin/sh#Subversion安装目录和执行文件SVN_uuhome=/usr/local/Subversion/binsvn_uadmin=$SVN_uuuhome/svnadminsvn_uulook =$SVN_uuhome/svnlooksvn_back=/home1/svnbackups/increment##配置库根目录svn_reporoot=/home1/svnroot/hxz##增量备份文件存储路径日期=$(日期'+%Y-%m-%d')rar_uu存储=$svn_uuuuback/$dateif[!-d\mkdir-p$rar_ustorefi##日志存放目录log_upath=/home1/svnbackups/logif[!-d\mkdir-p$log_pathfi##读取项目库列表cd$svn_reporootfornamein$(ls)do如果[!-d\mkdir$rar_store/$nameficd$rar_store/$name如果[!-d\mkdir$log\u path/$namefiecho******startingbackupfrom$date******>>$log_path/$name/$name.logecho******svnrepository$namestingtobackup******>>$log_uu路径/$name/$name。

Linux下SVN命令使用大全

Linux下SVN命令使用大全

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常用命令总结

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服务器所没有的特性,使用上更加灵活。

Linux下多项目SVN配置方法

Linux下多项目SVN配置方法

1. 安装SVN服务器软件2. 在home下创建svn根目录mkdir /home/svnroot3. 在/home/svnroot下创建Project1 , Project 2, Project3 三个项目文件夹,这三个文件夹要存放不同项目的SVN版本库。

4. 同样在/home/svnroot中创建CodeAuth 文件夹,该文件夹将保存passwd 和authz文件,在第6步中实现。

5. 创建项目cd /home/svnrootsvnadmin create Project1svnadmin create Project2svnadmin create Project3分别创建了三个项目的版本库,版本库目录conf中存在passwd 、authz、和svnserve.conf 文件passwd - 用于存放本svn库的用户名和密码authz - 存放本svn库的访问授权信息svnserve.conf 文件为存放本svn库的全局访问控制信息6. 将passwd 、authz文件拷贝到/home/svnroot/CodeAuth中,将三个项目下conf目录中的passwd 和authz文件删除7. 修改三个项目中conf目录下的svnserve.conf 文件,最快的办法是修改一个项目下的svnserve.conf 文件,使用它覆盖其他两个项目下的svnserve.conf 文件。

svnserve.conf 修改为[general]anon-access = none auth-access = writepassword-db = /CodeAuth/passwdauthz-db = /CodeAuth/authz 8. 修改/home/svnroot/CodeAuth下的passwd文件为[users] admin=admin0019. 修改/home/svnroot/CodeAuth下的Authz文件为[groups] admin_group=admin[Project1:/]@admin_group=rw*=[Project2:/]@admin_group=rw*=[Project3:/]@admin_group=rw*=10. 启动SVN服务svnserve -d -r /home/svnrootOK,服务器端配置完毕!。

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全部命令与中文详细解释

svn全部命令与中文详细解释

----------------------------------------------------------------------SVN 全部命令与中文详细解释:----------------------------------------------------------------------C:\Documents and Settings\Administrator>svn ?用法: svn <subcommand> [options] [args]Subversion 命令行客户端,版本 1.6.6。

使用“svn help <subcommand>”显示子命令的帮助信息。

使用“svn --version”查看程序的版本号和版本库访问模块,或者使用“svn --version --quiet”只查看程序的版本号。

大多数的子命令可接受文件或目录参数,对目录进行递归处理。

如果没有指定参数,默认对当前目录(包含当前目录)递归处理。

可用的子命令:add:把文件和目录纳入版本控制,通过调度加到版本库。

它们会在下一次提交时加入。

blame (praise, annotate, ann):输出指定文件或URL的追溯内容,包含版本和作者信息。

cat:输出指定文件或URL的内容。

changelist (cl):耦合(或解耦)文件与修改列表 CLNAME。

checkout (co):从版本库签出工作副本。

cleanup:递归清理工作副本,删除锁,继续未完成操作,等等。

commit (ci):把工作副本的修改提交到版本库。

copy (cp):在工作副本或版本库中复制数据,保留历史。

delete (del, remove, rm):从版本库中删除文件和目录。

diff (di):显示两个版本或路径的差异。

export:产生一个无版本控制的目录树副本。

help (?, h):描述本程序或其子命令的用法。

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安装操作系统安装系统采用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命令设置开机自启动。

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客户端常用命令:
1.svnadmin create path创建一个新的版本库,(path为你想创建版本库的目录路径,如创建版本库目录为cellsms:svnadmin create /home/c7mon/svn/cellsms)。

2.svn mkdir URL 创建目录,向版本库新添加一个目录,(立即提交,所以需要日志信息):如新增trunk目录:svn mkdir file:///home/c7mon/svn/cellsms/trunk -m "此目录的说明信息"。

svn mkdir newdir在工作拷贝下新建一个目录,如新增hello目录,即在工作拷贝(svn checkout数据的目录下):svn mkdir hello。

3.svn import URL向版本库导入数据,需要日志信息。

如导入当前目录下wwm目录到版本库trunk目录中:svn import file:///home/c7mon/svn/cellsms/trunk/wwm -m "日志说明信息"
4.svn checkout URL导出一个工作拷贝,cd到你要存放导出数据的目录,如导出wwm 目录:svn checkout file:///home/c7mon/svn/cellsms/trunk/wwm,或svn checkout
svn://192.168.3.33/home/c7mon/svn/cellsms/trunk/wwm。

svn://方式需要用户名和密码,(svn co为svn checkout简写)。

5.svn commit 提交工作拷贝的修改到版本库中,如对wwm下的文件进行修改后提交:svn commit -m "",""可以为空,最好加上日志说明。

svn ci 为其简写。

6.svn add file/dir新添加的文件或目录,此处dir为linux命令mkdir在工作拷贝下创建的目录,不是svn mkdir命令创建的目录,所以需要svn add预订添加。

svn add需要在工作拷贝下执行,如在4中svn co出的工作拷贝目录wwm下新添加了hehe.c:svn add hehe.c。

然后执行svn commit提交到版本库。

7.svn copy URL URL完全的服务器端拷贝,通常用在分支和标签。

如wwm项目完成后发布版本wwm_1.0:
svn copy file:///home/c7mon/svn/cellsms/trunk/wwm
file:///home/c7mon/svn/cellsms/trunk/tags/wwm_1.0 -m "it's the wwm_1.0 for
anhui" 。

或svn copy svn://192.168.3.33/home/c7mon/svn/cellsms/trunk/wwm svn://192.168.3.33/home/c7mon/svn/cellsms/trunk/tags/wwm_1.0 -m "it's the wwm_1.0 for anhui"。

(tags目录需提前在版本库中建好。


如果wwm_1.0版本出现BUG,可以拷贝tags目录下的wwm_1.0到建好的branches目录下,然后svn co 出branches下的wwm_1.0进行修改。

这样trunk目录下的wwm可以继续进行开发,而不会与branches下1.0版本的修改产生冲突。

当branches下的wwm_1.0版本修复bug后,可以使用svn merge命令,将修改的部分合并到trunk下的wwm工程中。

8.svn list URL 显示path目录下的所有属于版本库的文件和目录(简写svn ls)
如列出cellsms下目录信息:svn list svn://192.168.3.33/home/c7mon/svn/cellsms
9.svn info URL 显示本地或远程条目的信息。

如查看cellsms下信息:svn info svn://192.168.3.33/home/c7mon/svn/cellsms
10.svn log URL 查看版本日志信息。

如查看cellsms下所有版本信息:svn log svn://192.168.3.33/home/c7mon/svn/cellsms 11.svn merge URL@version URL合并,应用两组源文件的差别到工作拷贝路径。

假设情景:trunk/smpp trunk为smpp项目开发的主目录,当开发完成时,smpp被拷贝打标签到tags/smpp_1.0.0,这里smpp_1.0.0为发布版本。

此时trunk下smpp继续进行smpp 第二版本的开发,这时发现发布的smpp_1.0.0版本有BUG需要修改,于是拷贝tags下的smpp_1.0.0到分支目录branches/ smpp_1.0.0进行修改。

当改好smpp_1.0.0后,问题来了,我们此刻需要把修改好后的smpp_1.0.0合并到此时正在trunk目录下正在开发smpp中。

解决:
(1)一个URL,为起始状态,其后的@version,表示取版本号,这个version就是svn cp到branches成功之后的那个版本。

第二个URL,为最终状态,既修改好的smpp_1.0.0的URL。

其实就是左边和右边做了一个diff,应用到当前工作区目录,也就是trunk的工作拷贝。

此时$svn status 就可以看到变化了
(2)我们需要知道smpp_1.0.0被拷贝到branches目录时得版本号,命令为:
svn log -stop-on-copy svn://192.168.3.33/home/c7mon/svn/cellsms/branches/
(3)此命令需要在合并到trunk的工作拷贝中执行:(可以加上--dry-run选项模拟merge,但不真正的去做)
Svn merge
svn://192.168.3.33/home/c7mon/svn/cellsms/branches/mscid_1.0.0@18
svn://192.168.3.33/home/c7mon/svn/cellsms/branches/mscid_1.0.0
(4)svn commit 提交。

(是在trunk的工作拷贝中)
12.svn delete path/URL从工作拷贝或版本库删除一个项目。

如想删除工作拷贝smpp下的main.c文件: svn delete main.c (需cd到smpp的工作拷贝的目录下)。

然后 svn commit提交。

如想删除trunk/smpp/main.c文件:svn delete –m “delete the main.c of smpp”Svn://192.168.3.33/home/c7mon/svn/cellsms/smpp/main.c (需要日志信息,即-m “”)。

然后svn commit提交。

13.svn revert取消所有的本地编辑。

如12中,你执行了svn delete后,想取消其delete操作,那么你在svn commit提交
之前执行本命令。

例如:svn revert main.c。

14. svn update更新你的工作拷贝。

如你的工作拷贝为trunk下smpp,现在你想将修改的smpp_1.0.0的内容更新到你当前的工作拷贝中,你可以:svn update –r version(version为smpp_1.0.0版本号)。

如果你执行:svn update命令,则默认更新最新的版本内容到当前工作拷贝中。

15.svn status打印工作拷贝文件和目录的状态。

如打印当前工作拷贝的状态:svn status –u。

16.svn lock 锁定工作拷贝中文件,避免其他用户修改导致冲突。

如:svn lock main.c(需要在工作拷贝中执行)。

如果有其他用户已锁定,你可以强制加锁,需要选项--force。

17. svn unlock解除锁定操作,如svn unlock main.c。

18.svn help 执行此命令可以查看svn所有的子命令。

svn 子命令--help,查看子命令选项信息,如:svn lock - -help。

相关文档
最新文档