常用linux svn命令
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命令使用大全版本号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命令总结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 安装方法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操作

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的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的命令使用指南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配置方法

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,服务器端配置完毕!。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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。