linuxubuntu下svn命令使用指南.doc_第1页
linuxubuntu下svn命令使用指南.doc_第2页
linuxubuntu下svn命令使用指南.doc_第3页
linuxubuntu下svn命令使用指南.doc_第4页
linuxubuntu下svn命令使用指南.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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常用的一些命令,详细请看 /svnbook/1.1/index.html 1、 将文件checkout到本地目录命令:checkout 或co示例:I、svn co http:/路径(目录或文件的全路径)本地目录全路径 -username 用户名 -password 密码II、svn co svn:/路径(目录或文件的全路径)本地目录全路径 -username 用户名 -password 密码III、svn checkout http:/路径(目录或文件的全路径)本地目录全路径 -username用户名IV、svn checkout svn:/路径(目录或文件的全路径)本地目录全路径 -username用户名注意事项:1、如果不带-password 参数传输密码的话,会提示输入密码,建议不要用明文的-password 选项。推荐使用示例c、d,其执行之后会提示输入密码2、其中 username 与 password前是两个短线,不是一个。3、若不指定本地目录全路径,则检出到当前目录下。例子:svn co svn://test /home/test -username xxxsvn co /test/testapp -username xxxsvn checkout svn:// test /home/ test -username xxxsvn checkout /test/testapp -username xxx2、添加新文件 命令:svnaddsvnadd文件名注:告诉SVN服务器要添加文件了,还要用svn commint -m真实的上传上去!例子:I、svn add test.c 添加test.c svn commint -m “添加测试用test.c“ test.phpII、svn add *.c 添加当前目录下所有的c文件svn commint -m “添加测试用全部c文件“ *.c3、导出(导出一个干净的不带.svn文件夹的目录)命令:svn exportsvn export -r 版本号 http:/路径(目录或文件的全路径) 本地目录全路径-username用户名svn export -r 版本号 svn:/路径(目录或文件的全路径) 本地目录全路径-username用户名svn export 本地检出的(即带有.svn文件夹的)目录全路径 要导出的本地目录全路径注:第一种从版本库导出干净工作目录树的形式是指定URL,如果指定了修订版本号,会导出相应的版本,如果没有指定修订版本,则会导出最新的,导出到指定位置。如果省略 本地目录全路径,URL的最后一部分会作为本地目录的名字。 第二种形式是指定本地检出的目录全路径 到 要导出的本地目录全路径,所有的本地修改将会保留,但是不在版本控制下(即没提交的新文件,因为.svn文件夹里没有与之相关的信息记录)的文件不会拷贝。例子:svn export svn:// test /home/ test -username xxxsvn export /test/testapp -username xxxsvn export /home/ test /home/ testbak4、将改动的文件提交到版本库命令:svncommint 或svncisvncommint-m“提交备注信息文本“-N-no-unlock文件名svnci-m“提交备注信息文本“-N-no-unlock文件名svn commit -m LogMessage -N -no-unlock PATH(如果选择了保持锁,就使用no-unlock开关)必须带上-m参数,参数可以为空,但是必须写上-m例子:svn commint -m “提交当前目录下的全部在版本控制下的文件“ * 注意这个*表示全部文件svn commint -m “提交测试用test.c“ test.csvn commint -m “提交测试用test.c“ -N -no-unlock test.c 保持锁就用no-unlock开关svn ci -m “提交当前目录下的全部在版本控制下的文件“ * 注意这个*表示全部文件svn ci -m “提交测试用test.c“ test.csvn ci -m “提交测试用test.c“ -N -no-unlock test.c 保持锁就用no-unlock开关5、更新文件命令:svnupdate 或 svn upsvnupdate-r修正版本文件名svnupdate文件名例子:svn update 后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本svn update -r 1300 test.c 将版本库中的文件 test.c 还原到修正版本(revision)1300svn update test.c 更新与版本库同步。提交的时候提示过期冲突,需要先 update 修改文件,然后清除svn resolved,最后再提交commit。6、删除文件命令:svndelete或 svn del, svn remove, svn rmsvndeletesvn:/路径(目录或文件的全路径) -m “删除备注信息文本”推荐如下操作:svndelete文件名 svnci-m“删除备注信息文本”例子:svn delete svn:// trunk /main /test.c -m “删除测试文件test.c”推荐如下操作:svn delete test.c svn ci -m “删除测试文件test.c”svn delete path -m delete test fle 例如:svn delete svn:// trunk /main/test.c -m delete test file 或者直接svn delete test.c 然后再svn ci -m delete test file,推荐使用这种、加锁/解锁 命令:svnlocksvnlock-m“加锁备注信息文本“-force文件名 svnunlock文件名 svn lock -m LockMessage -force PATH 例如:svn lock -m lock test file test.csvn unlock PATH例子:svn lock -m “锁信测试用test.c文件“ test.c svn unlock test.php8、比较差异 命令:svndiffsvndiff文件名 svndiff-r修正版本号m:修正版本号n文件名例子:svn diff test.php 将修改的文件与基础版本比较svn diff -r 200:201 test.php 对 修正版本号200 和 修正版本号201 比较差异 svn diff path(将修改的文件与基础版本比较) 例如:svn diff test.phpsvn diff -r m:n path(对版本m和版本n比较差异) 例如:svn diff -r 200:201 test.php 简写:svn di9、将两个版本之间的差异合并到当前文件命令:svn merge svn merge -r m:n path 例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)10、查看文件或者目录状态命令:svn status 或svn stsvn st 目录路径/名svn status 目录路径/名 目录下的文件和子目录的状态,正常状态不显示 【?:不在svn的控制中; M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】 svn -v 目录路径/名svn status -v 目录路径/名 显示文件和子目录状态【第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人】 注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。 1)svn status path(目录下的文件和子目录的状态,正常状态不显示) 【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】 2)svn status -v path(显示文件和子目录状态) 第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人. 注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝.简写:svn st11、查看日志命令:svnlogsvnlog文件名svn log path例子:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化 12、查看文件详细信息命令:svninfosvninfo文件名 svn info path例子:svn info test.php13、SVN 帮助命令:svnhelpsvnhelp 全部功能选项svnhelpci 具体功能的说明14、查看版本库下的文件和目录列表 命令:svnlist 或svnlssvnlistsvn:/路径(目录或文件的全路径)svnlssvn:/路径(目录或文件的全路径)例子:svn list svn://testsvn ls svn://test 显示svn://test目录下的所有属于版本库的文件和目录 15、创建纳入版本控制下的新目录命令:svnmkdirsvnmkdir目录名svnmkdir-m新增目录备注文本http:/目录全路径创建版本控制的目录.1、每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增 调度,以待下一次的提交.2、每个以URL指定的目录,都会透过立即提交于仓库中创建.在这两个情况下,所有的中间目录都必须事先存在.例子:svn mkdir newdirsvn mkdir -m Making a new dir. /test/newdir 注:添加完子目录后,一定要回到根目录更新一下,不然在该目录下提交文件会提示“提交失败”svn update注:如果手工在checkout出来的目录里创建了一个新文件夹newsubdir,再用svn mkdir newsubdir命令后,SVN会提示:svn: 尝试用 “svn add”或 “svn add -non-recursive”代替?svn: 无法创建目录“hello”: 文件已经存在此时,用如下命令解决:svn add -non-recursive newsubdir在进入这个newsubdir文件夹,用ls -a查看它下面的全部目录与文件,会发现多了:.svn目录再用 svn mkdir -m 添hello功能模块文件 svn://test/newdir/newsubdir 命令,SVN提示:svn: File already exists: filesystem /data/svnroot/test/db, transaction 4541-1,path /newdir/newsubdir 16、恢复本地修改 ,恢复原始未改变的工作副本文件命令:svnrevertsvnrevert-recursive文件名注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复被删除的目录。例子:svn revert foo.c 丢弃对一个文件的修改svn revert -recursive . 恢复一整个目录的文件,. 为当前目录 17、代码库URL变更,把工作拷贝更新到别的URL 命令:svnswitch或svn swsvnswitchhttp:/目录全路径本地目录全路径例子:svn switch /test/456 . (原为123的分支)当前所在目录分支到/test/456svn switch (sw): 更新工作副本至不同的URL.用法: 1、switch URL PATH 2、switch relocate FROM TO PATH.1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将 服务器上文件与本地文件合并.这是将工作副本对应到同一仓库中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论