svn命令行

摘要:
SVN合并通常用于实现目标。首先,确保我们得到最新的代码。运行svupdate。假设它是版本28。撤消对版本27:svnmerge-r27:26的更改。java为了安全起见,请重新确认合并结果:svndiffcontacts java发现更改已被正确撤销并提交。提交更改svncommit-m“Revertwrangefromr27”提交后版本变为29。

svn操作:

1.如果本机的默认的LANG环境变量是zh_CN.UTF-8,生成的patch里面包含“版本号”,这样在review board上传patch会因为格式问题导致失败,最好把LANG该为英文, export LANG="en_US.UTF-8"



2.svn的patch问题

svn diff > trip_refactor01_review.diff
patch -p1 < trip_refactor01_review.diff


can't find file to patch at input line 5
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|Index: src/tr/com/daodao/cms/DaoDaoTripGraphicsParamStore.java
|===================================================================
|--- src/tr/com/daodao/cms/DaoDaoTripGraphicsParamStore.java    (revision 7406)
|+++ src/tr/com/daodao/cms/DaoDaoTripGraphicsParamStore.java    (working copy)
--------------------------
File to patch:

.....

svn生成的diff默认为p0,-p0 选项要从当前目录查找src/tr/com/daodao/cms/......
所以svn生成的diff的正确的patch命令:patch -p0 < trip_refactor01_review.diff

而git生成的diff打patch的时候需要使用-p1选项
查看patch可以看到区别
svn的patch:
Index: src/tr/com/daodao/cms/DaoDaoTripGraphicsParamStore.java
===================================================================
--- src/tr/com/daodao/cms/DaoDaoTripGraphicsParamStore.java    (revision 7406)
+++ src/tr/com/daodao/cms/DaoDaoTripGraphicsParamStore.java    (working copy)

git生成的patch:
index 0335ea1..1031223 100644
--- a/src/tr/com/daodao/cms/DaoDaoTripGraphicsParamStore.java
+++ b/src/tr/com/daodao/cms/DaoDaoTripGraphicsParamStore.java

所以git的patch在svn上打需要-p1去掉前面的a/,b/,这样在才会在当前目录中找到src/......


打patch的过程中报Reversed (or previously applied) patch detected! Assume -R?
最快的解决办法:直接cp覆盖



3.svn生成diff的命令:
svn diff有三种不同的用法:

    检查本地修改 svn diff
    比较工作拷贝与版本库  svn.real diff  -r 7160 file1 [file2..]
    比较版本库与版本库 svn diff -r7406:7407 file1 [file2 ...]  查看7407版本较7406做了哪些改动

4. 本地代码更新到某个版本,但是代码库中的代码并不回退
svn upate  r 7406


5.svn仓库代码回退
很多人用VPS做subversion服务器来管理代码。在subversion里面怎样撤销一次错误的check in呢?一般用svn merge来达成目的。 比如我们刚才有了一次错误的checkin,我们想回滚到正确的版本去。 首先保证我们拿到的是最新代码,运行svn update,假设是28版本。 然后找出要撤销的确切版本:

svn log contacts.java

根据log怀疑是27版本改坏的,比较一下:

svn diff -r 26:27 contacts.java

发现果真是27版本坏事。 撤销27版本的改动:

svn merge -r 27:26 contacts.java

为了保险起见,再次确认合并的结果:

svn diff contacts.java

发现已正确撤销了改动,提交。 提交改动

     svn commit -m "Revert wrong change from r27"

提交后版本变成了29。


6.svn checkout与svn export的主要区别是前者带版本控制。checkout用来将远程仓库的代码检入到本地。有点象git clone

 
7.svn 打完patch之后,想恢复到未打patch之前,除了patch -R,还可以直接使用svn revert file1,file2   or svn revert directory1...来操作。
 
 
8.svn status时,头缀的含义:
U:表示从服务器收到文件更新了
G:表示本地文件以及服务器文件都已更新,而且成功的合并了
其他的如下:
A:表示有文件或者目录添加到工作目录
R:表示文件或者目录被替换了.
C:表示文件的本地修改和服务器修改发生冲突
 
9.命令行查看svn的server信息: svn info
这些信息最初都是通过svn checkout url获取到的。
 
参考:
SVN 基本指令教學
 
 
 
 

免责声明:文章转载自《svn命令行》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇移动端 input输入实时监听查询数据渲染Dapper SimpleCRUD Demo下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何快速安装 allure

allure 介绍 有很多的编程语言具有很酷的测试框架。但是,只有少数语言能够提供效果很好的测试执行输出结果。由Qameta软件测试团队开发的Allure,是一个开源框架,旨在让团队中每个人都清楚的看到测试执行报告。 allure能够跟很多测试框架做集成: 1)Java:Junit4,Junit5,TestNG 2)python:pytest,nose,b...

linux下安装配置svn服务器

linux下安装配置svn服务器 1. svn服务器安装 将subversion-1.4.0.tar.gz和subversion-deps-1.4.0.tar.gz传到服务器。 tar xfvz subversion-1.4.0.tar.gz tar xfvz subversion-deps-1.4.0.tar.gz cd subversion-1.4.0...

【Python】使用cmd模块构造一个带有后台线程的交互命令行界面

最近写一些测试工具,实在懒得搞GUI,然后意识到python有一个自带模块叫cmd,用了用发现简直是救星。 1. 基本用法 cmd模块很容易学到,基本的用法比较简单,继承模块下的Cmd类,添加需要的功能入口就好了。 Cmd类有个prompt属性,修改它可以把默认提示符((cmd))替换成自定义的; 为自己的Cmd类添加名为“do_xxx()”的方法,则运行...

eclipse svn插件 设置自动加锁相关

 eclipse svn插件 设置自动加锁相关 Subclipse 1.10.9 发布,改进说明:SVNKit 1.8.8Exception proof repository sorter. (1616)Subclipse 是一个为 Eclipse IDE 添加 Subversion 支持的项目。支持几乎所有版本的Eclipse。Eclipse的更新地址是...

mac下的svn工具——Versions使用详解

         在mac下开发有几种常用的svn工具:Xcode自带的,Git,Versions等。       Git我只下过代码,还没用来托管过代码。Xcode自带的svn工具用过几天,不是很习惯。个人偏向于Versions。       先附上一个免注册的Versions下载链接:Versions免注册版(个人上传到svn的,0积分下载,不一定是最...

protobuf编译

win10   cmake   vs2017编译 protobuf编译 cmake Selecting Windows SDK version 10.0.17134.0 to target Windows 10.0.19042. The C compiler identification is MSVC 19.15.26732.1 The CXX com...