linux的svn命令

目录

1.将文件checkout到本地目录  

2.将改动的文件提交到版本库  

3.添加新文件          

4.删除文件            

5.更新到某个版本      

6.加锁/解锁            

7.比较差异        

8.查看状态        

9.查看日志        

10.查看详细信息

11.查看版本库的文件列表  

12.创建纳入版本控制下的新目录  

13.恢复本地修改,恢复原始未改变的工作副本文件  

14.不checkout而查看输出特定文件或URL的内容  

15.解决冲突, 移除工作副本的目录或文件的“冲突”状态  

16.SVN回退版本,取消修改


大部分的发行版都已经提供Subversion套件,ubuntu下安装subversion客户端:
sudo apt-get install subversion

1.将文件checkout到本地目录  

(命令:checkout或co)

  svn co http://路径(目录或文件的全路径) ./     (将目录或文件checkout到当前目录下)
  (注意:如果没有指定本地目录,则将新建同名目录,然后checkout。比如:svn co http://..../hehe/ 会在
     当前目录新建"hehe"文件夹)

2.将改动的文件提交到版本库  

(命令:commit或ci)

  svn ci -m 
  (注意:必须有-m选项,-m选项后可以不加东西,也可以 svn ci -m "修改了a.txt")
    linux版svn ci的log中添加回车的方法:svn ci -m $'This is the first line\nThis is the second line'
    如果\n不行,则使用\r\n。

3.添加新文件          

(命令:add)

  svn add *.c; svn ci -m     (添加所有的.c文件)
  svn add ./ --no-ignore --force; svn ci -m    (添加本目录下所有文件)
  (注意:add之后,要commit一下)
取消添加:
  svn revert file
  svn revert -R dir

4.删除文件            

(命令:delete或del或remove或rm)

  svn del a.txt; svn ci -m
  (注意:del之后,要commit一下)

5.更新到某个版本      

(命令:update或者up)

  svn up      (将当前目录下所有文件更新到最新版本)
  svn up a.txt         (将a.txt更新到最新版本)
  svn up -r 200 a.txt  (将a.txt文件更新到200版本)
A:add,新增 
C:conflict,冲突 
D:delete,删除 
M:modify,本地已经修改 
G:modify and merGed,本地文件修改并且和服务器的进行合并 
U:update,从服务器更新 
R:replace,从服务器替换 
I:ignored,忽略

6.加锁/解锁            

(命令:lock/unlock)

  svn lock -m "lock test.c" test.c
  svn unlock test.c

7.比较差异        

(命令:diff或di)

  svn diff test.c < -         (修改的文件与基础版本比较)
  svn diff -r 200:201 test.c  (将200版的和201版的test.c进行比较)

8.查看状态        

(命令:status或st)

  svn status      (没错误则不显示东西。?:不在版本库 M:内容被修改 C:发生冲突 A:预定加入到版本库 K:被锁定)
  svn status -v path   (第一列相同,第二列显示工作版本,第三列是最后一次修改人,第四列是修改的文件)

9.查看日志        

(命令:log)

  svn log
  svn log a.c    //查看a.c的log

10.查看详细信息

  svn info path   (查看文件(夹)信息:URL、版本、修改者、修改时间等)

11.查看版本库的文件列表  

(命令:list或ls)

  svn list

12.创建纳入版本控制下的新目录  

(命令:mkdir)

  svn mkdir newdir
  (注意:添加完子目录后,一定要回到根目录更新一下,不然在该目录下提交文件会提示“提交失败”
          如果是用mkdir命令创建了文件夹,再使用svn mkdir newdir命令后,SVN会提示:
             “svn:尝试用“svn add”或“svn add --non-recursive”代替?”
           “svn:无法创建目录“hello”:文件已经存在”
        此时,用如下命令解决:
           svn add --non-recursive newdir
      进入这个newsubdir文件夹,用ls-a查看它下面的全部目录与文件,会发现多了:.svn目录

13.恢复本地修改,恢复原始未改变的工作副本文件  

(命令:revert或rev)
  svn rev test.c < -    (丢弃对test.c的修改)
  svn rev --recursive . < -(恢复一整个目录的文件,.为当前目录)

14.不checkout而查看输出特定文件或URL的内容  

(命令:cat)
  svn cat http://文件全路径

15.解决冲突, 移除工作副本的目录或文件的“冲突”状态  

(命令:resolved或res)
  例子:
    $ svn update
    C foo.c
    
    Updated to revision 31.
    
    如果你在更新时得到冲突,你的工作拷贝会产生三个新的文件:
    
    $ ls
    foo.c
    foo.c.mine
    foo.c.r30
    foo.c.r31
    
    当你解决了foo.c的冲突,并且准备提交,运行svn resolved让你的工作拷贝知道你已经完成了所有事情。
    你可以仅仅删除冲突的文件并且提交,但是svnr esolved除了删除冲突文件,还修正了一些记录在工作拷贝管理区域的记录数据,所以我们推荐你使用这个命令。
    注意:本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的
    相关文件,然后让PATH 可以再次提交.

16.SVN回退版本,取消修改

取消对代码的修改分为两种情况:
 
第一种情况:改动没有被提交(commit)。
这种情况下,使用svn revert就能取消之前的修改。
svn revert用法如下:
# svn revert [-R] something
    something可以是(目录或文件的)相对路径也可以是绝对路径。当something为单个文件时,直接svn revert something就行了;当something为目录时,需要加上参数-R(Recursive,递归)或者--depth=infinity,否则只会将something这个目录的改动。
    在这种情况下也可以使用svn update命令来取消对之前的修改,但不建议使用。因为svn update会去连接仓库服务器,耗费时间。
    注意:svn revert本身有固有的危险,因为它的目的是放弃未提交的修改。一旦你选择了恢复,Subversion没有方法找回未提交的修改。
 
第二种情况:改动已经被提交(commit)。
这种情况下,用svn merge命令来进行回滚。 
   回滚的操作过程如下: 
   1、保证我们拿到的是最新代码: 
     svn update 
     假设最新版本号是28。 
   2、然后找出要回滚的确切版本号: 
     svn log [something]   或者  svn log
     假设根据svn log日志查出要回滚的版本号是25,此处的something可以是文件、目录或整个项目
     如果想要更详细的了解情况,可以使用svn diff -r 28:25 [something]
   3、回滚到版本号25:
       svn merge -r 28:25 something   (something可以用*来替代,表示回滚所有文件)
     为了保险起见,再次确认回滚的结果:
       svn diff -r 28:25 [something]
     发现正确无误,提交。
   4、提交回滚:
     可以直接svn ci -m 来提交;也可以先修改再提交。都会更新到一个新的版本号
     svn commit -m "Revert revision from r28 to r25,because of ..." 
     提交后版本变成了29。
   将以上操作总结为三条如下:
   1. svn update,svn log,找到最新版本(latest revision)
   2. 找到自己想要回滚的版本号(rollbak revision)
   3. 用svn merge来回滚: svn merge -r : something
   
 

原文地址:https://blog.csdn.net/feiying0canglang/article/details/97519590

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


首先介绍下什么是git和svnGIT(分布式版本控制系统)Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。SVNSVN是Subversion的简
注意点:系统环境:centos7,python,django,svn,jenkins首先安装好svn版本控制服务,svn安装和配置,也可以通过yum进行安装,安装方式如下yum-yinstallsubversionjenkins安装:jenkins安装参考链接开发ide:pycharm创建项目:django-adminstartprojectcmdbjenkins配置源码管理配置:构
  我使用过的版本控制工具有两种:早期的时候使用的是SVN,现在主要使用git,我就我个人的观点,简单的说下两者的区别:1.Git是分布式的,SVN是集中式的,好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交、合并,也可以不用联网在本地提交;2.Git下载下来后,在本
用好Git和SVN,轻松驾驭版本管理本文从Git与SVN的对比入手,介绍如何通过Git-SVN开始使用Git,并总结平时工作高频率使用到的Git常用命令。 一、GitvsSVNGit和SVN孰优孰好,每个人有不同的体验。Git是分布式的,SVN是集中式的这是Git和SVN最大的区别。若能掌
01.jenkins安装jenkins网站:https://jenkins.io/安装:资料/jenkins.msi安装完成:自动打开浏览器使用8080端口02.jenkins系统配置修改端口号,不能使用8080打开安装目录jenkins.xml --httpPort=18080重启服务器系统管理/系统设置:配置jdk和ant环境  03.jenkins项目自
软件环境:centos7jdk1.8svn1.9maven3.5tomcat8jenkins2.80 以上软件安装过程省略... tomcat增加一个管理员账号和密码jenkins通过maven命令打好的war包,copy到tomcat中,这要求tomcat开启热部署,说白了就是在tomcat的conf目录下的tomcat-users.xml中增加tomcat的用户密码
第一步:通过yum命令安装svnserve,命令如下:yum-yinstallsubversion此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行若需查看svn安装位置,可以用以下命令:rpm-qlsubversion第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)选择在var路
一、git是什么   1、git二、git和svn的对比     1、git创建分支简单,可以快速创建分支,隔绝自己修改的代码,svn的版本分支     2、git本地就是一个完整独立的分布式的版本库,不需要联网;但是svn需要联网才可以查看    3、git本地包含了完整的日志,svn需要从服
这里碰到svn更新时,提示清理,清理时报错:只需进行以下几个步骤即可解决:(原理即是清除掉svn数据库里的lock记录)1、下载SQLiteManager,svn用的是sqlite数据库,需要一款管理工具。我是在这个地址下载的,破解版(http://www.xue51.com/soft/6213.html#xzdz):①默认安装完成后,点击finish
1、验证是否有安装svn[root@192~]#svnserve--version2、yum安装svn[root@192~]#yuminstall-ysubversion3、创建一个svn的工作目录[root@192~]#mkdir/usr/local/svn4、创建一个测试用的资源仓库[root@192svn]#svnadmincreatetest5、conf目录下
1.SVN版本控制简介版本控制[Revisioncontrol],最初来源于工程设计领域,是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。Subversion就是一款实现版本控制的工具软件,通常也称为版本控制器,简称SVN
一、GitvsSVNGit和SVN孰优孰好,每个人有不同的体验。Git是分布式的,SVN是集中式的这是Git和SVN最大的区别。若能掌握这个概念,两者区别基本搞懂大半。因为Git是分布式的,所以Git支持离线工作,在本地可以进行很多操作,包括接下来将要重磅推出的分支功能。而SVN必须联网才
利用svnadminhotcopy可以实现完全备份,但不能进行增量备份。svnadminhotcopy是将整个库都“热”拷贝一份出来,包括库的钩子脚本、配置文件等;任何时候运行这个脚本都得到一个版本库的安全拷贝,不管是否有其他进程正在使用版本库。优点是:备份过程较快,灾难恢复也很快;如果备份机上已经
1》安装1>下载服务端Setup-subversion.msi文件,下载客户端程序TortoiseSVN.mis文件,下载eclipse插件eclipse_svn_site.zip。2》利用服务端在windows下SVN服务,注意事项:1.cmd必须使用管理员权限打开(创建,开启,停止,删除服务操作都需要管理员权限)2.注册svn服务的命令,参考如下
1、错误描述 org.apache.subversion.javahl.ClientException:Itemisnotwritablesvn:Commitfailed(detailsfollow):svn:Accessdeniedorg.apache.subversion.javahl.ClientException:Itemisnotwritablesvn:Commitfailed(detailsfollow):svn:Accessdeni
问题场景:1记得提交的日志信息中包含openssl,但是不记得这次提交的版本号revesion,是svn初始化后中间的某次提交;2svn环境的操作系统平台为Fedora,即命令行下;而且svnlog的提交记录有12659条;[root@localhostv2.1]#svnlog|grepr|wc-l12659解决办法:step1 查找提交日志
将项目上传到SVN弹出框提示Oneadded/editedTODOitemwasfound.Wouldyouliketoreviewit?然后百度说这样解决:造成这个原因是因为代码里有个自动生成的注释代码块://TODOAuto-generatedmethodstub我们在写方法是自动生成,就有可能自动生成这句话,导致上传SVN时弹出那个
说在前面的话: 从接到任务到完成共用了7天的时间。正常人用不到这个时间。此时的功能表现是:登录本地JenKins对项目进行构建,能够自动从SVN读取最新代码并按照Maven项目构建,构建完成能够自动使用SonarQube分析代码质量,并将构建的War包部署到指定容器中。版权声明:此博客纯手打,个人
javaweb上正式的时候总是会需要更新代码,但是要求不能全量更新代码,只能提供增量更新包,减少不必要的更新。但是呢,自己修改的文件那么多,怎么破,一个个的找出来,新建文件夹,按位置放好,这种做法不是我们这群懒人的方式,我们要的都是一键解决问题。因此有了这个项目。小编整理了一些java进
Oracle12CR2forCentos7背景介绍安装配置这东西吧,真没啥可写的,但是你说不写详细点吧,真的好多学员搞不懂,所以呢,熊熊思前想后,打算把自己从头到尾怎么安装的,完全写一下,希望能让大家有个全面的基础认知准备工作安装Xmanager这个软件功能很强大,熊熊安装他主要是用于把远程服务器的