工作笔记之-svn 常用技巧及命令总结

03.SVN入门笔记——使用命令行模式访问 SVN 服务器 版本控制(Revision control),最初来源于工程设计领域,是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。Subversion 就是一款实现版本控制的工具软件,通常也称为版本控制器,简称 SVN。 Subversion 是 Apache 软件基金会组织下的一个项目。 阅读详情


                                                                            SVN常用命令集锦

从服务器上下载上传代码
svn co 路径@版本号  :checkout指定的版本号代码到本地   , co 是checkout的缩写形式
svn up -r 版本号   升级(回退)本地代码到指定的svn版本 , up 是update的缩写形式
svn ci 文件路径1/文件名1 文件路径2/文件名2 。。。-m"上传注释"     ,-m“注释也可写在文件路径前面 ,”上传本地文件到svn服务器 (可以一次上传多个文件)
svn ci .  提交当前目录下所以修改的文件
svn 带用户名和密码的操作
svn update/up svn_地址 --username=your_name  --password=your_password
svn commit/ci xxx.java -m"xxx" --username=xxx --password=xxx

代码提交格式样例:
一个文件
svn ci opp/BluetoothOppObexServerSession.java -m "for SMPCQ00007273,BT can't transfer a file"
多个文件空格隔开
svn ci obex/ClientOperation.java obex/ServerSession.java obex/ClientSession.java -m "for SMPCQ00007273,BT can't transfer a file" 

其他常用
svn info 查看svn信息
svn st 查看修改状态      显示:M  路径   M代表modify修改  st 是status的缩写
svn st -q 只显示修改的文件,不显示不在版本控制下的文件,如?标志的文件。
svn diff 显示修改内容
svn diff > patch_name.patch     导出修改修改内容,并保存为patch形式。
svn export svn代码路径  ;下载代码,不带版本控制(即不带 .svn目录),这样占空间小,但是不能和服务器代码进行比对
svn ci !(test.cp) -m"注释"  :表示除了test.c的所有代码都提交
svn up !(test.c) :表示除了test.c的所有代码都更新

导入patch命令:   保证导出patch和要打patch的代码版本号一样,也就是说没有多次修改
在android目录下: patch -p0<patch_name.patch

新增加文件提交步骤:
svn add 目录/文件
svn st
svn ci 目录/文件 -m“注释”

多个文件修改后添加命令:
1.svn add dir_name   新添加目录dir_name
2.svn add *  进入修改目录,将同一目录下的未加入版本库的文件提交到版本库:
3.svn add * –-force  :添加--force参数,可以一次性全部添加多级目录下的多个新文件,忽略所添加的某些子目录已经在包含在版本控制中的错误
4.svn revert --depth infinity *   : 恢复当前目录下的所以本地修改,比如可以恢复之前的add 、delete等操作

分支合并,代码移植等操作
svn megre 命令格式:
merge [-r N:M ...] SOURCE[@REV] [WCPATH]
svn merge  源目录 目标目录   : svn merge  branch/cts trunk   把cts的修改merge 到trunk目录里面

例:merge 把SOURCE对应版本号的改动 复制到 当前工作目录WCPATH ,默认版本号我0:head
进入当前目录
svn merge -r 7575:7587 http://XXXXX/svn/RealTek/branches/XXX/app/apk

如果出现冲突时选项: P  (postpone)   保持冲突,后面再去处理冲突  (可以通过命令形式解决,也可以通过文本方式处理)
svn st 查看状态 ,C 表示有冲突的文件
在文本方式上,点击有冲突的文件,右键-》eit confilt
修改完冲突后,点击冲突文件-》右键-》resolved ,解决冲突

如果出现local add, incoming add upon merge问题,通过如下命令可以解决
svn resolve --accept working -R .
svn revert --depth infinity *


svn版本回退操作:
还原某一个svn版本的修改
进入对应目录:http://xxxxx/svn/trunk/jb/build/tools
1.svn up 升级到最新代码 (不是必要,须看情况)
2. svn merge -r 9836:9835 http://XXXXX/svn/trunk/jb/build/tools   //还原tools目录下svn9836的修改
3. svn st
M       buildinfo.sh
4.svn ci buildinfo.sh -m“revert svn 9836”


回退到某个旧版本(比如说当前HEAD(最新的svn版本号)为6010,而我要恢复到6000版本)
svn update    //更新到最新版本6010
svn merge -r 6010:6000 source_path
svn st
svn ci modify_files_path -m"restore to revision 6000"
merge是比较指定版本的差异,然后把这些差异保存到本地工作空间,而-r后的6010:6000(注意,这个版本的次序很重要。)
是指在svn号6010相对于6000的修改,并把这些修改还原到6000,保存到工作空间。

同理:回滚中间某一段svn的修改:
svn merge -r new_svn_num:old_svn_num source_path


图形界面操作版本回退
想回退到以前的版本,但是呢在合并完和想回滚这段时间里又有人提交了,而我有不想回退这部分代码。
找了一会后,发现有两个选项可以貌似可以帮助我Revert to this revision 和 Revert changes from this revision
但我不清楚这两个的区别,故google了一把,得到以下信息
譬如有个文件,有十个版本,假定版本号是1,2,3,4,5,6,7,8,9,10。
Revert to this revision: 如果是在版本6这里点击“Revert to this revision”,表示7~10的修改全部作废,历史倒退到了版本6那个年代。
Revert changes from this revision:如果是在版本6这里点击“Revert changes from this revision”,表示版本6这个历史事件被抹杀了,只剩下除版本6外的9个历史事件了。
如果是同时选择了6,7,8三个历史时期并点击“Revert changes from this revision”,表示抹杀6~8这仨历史时期。
同理,如果同时选择7~10,然后点击“Revert changes from this revision”,则效果跟在版本6这里点击“Revert to this revision”是一样的

tortoisesvn 右键没有菜单显示问题:
服务器SVN版本和桌面tortoisesvn版本不匹配会造成不显示右键菜单
svn --version 查看svn 版本号

SVN提交问题的一些注意事项
1. 提交方式:svn命令方式,tortoiseSVN菜单方式
2. 提交注意事项:
1). 如果修改为了解决多个问题,最好是单独提交,有利于之后的跟踪对比
2). 合作修改,提交之前,注意更新svn代码,再添加自己的修改,避免提交冲突和覆盖别人的修改,最好在提交后再检查提交记录
 
提交注释要求:
1. add,modify ,delete
2. 解决的问题描述  (重点)
3. 修改人
4. 提交时间(这个可不用,提交界面会显示)
5. 其他信息(比如针对特定项目的修改说明、patch添加等)
6. 独立的应用开发,改动较大的情况、根据特点。

参考格式:
1. “Modify for bugID number :problem description , by name ,for project_name request”
  “Modify for problem description by name”
2. “Add patch from who for which problem by name”
3. “Add function/apk : description by name”

代码修改注释格式
/*modify/add/delete for bugID number :problem description by  name change_time start */
     代码修改部分
/*modify/add/delete for bugID number :problem description by  name change_time end */


常见的一些问题集锦:

问题一:
关于在linux中使用svn add添加并上传文件到svn的时候,*.so *.bin 等文件被忽略的问题:
方法1: 每次添加文件的时候使用如下命令:svn add  --no-ignore  文件夹
方法2:.编辑以下任一文件(linux的svn客户端的配置文件)
/etc/subversion/config   (针对服务器所有用户有效)
~/.subversion/config  或者 home/user_name/.subversion/config(对当前用户有效,会覆盖上面)
“/etc/subversion/config”这个配置,而不是在上面原有的配置基础上增加)
将文件中包含“global-ignores = ”的行,取消注释,并把这个“=”之后的字符全部删除。要特别注意 global-ignores 前面不要留空格,紧挨着最前面就可以了,否则svn add的时候会出现以下错误:
svn: /etc/subversion/config:103: Option expected    。
保存config这个文件(保存文件之后,SVN就立即载入这个配置,然后立即就可以使用了),即可一劳永逸。永远都不会有漏传的文件了。
参考:http://www.2cto.com/os/201303/193668.html

问题二:
代码比对工具beyond compare 忽略带.svn目录的方法:
Go to the [Session] menu ->[Session Settings]-> [Name Filters]. From here, you can enter in something generic, like ".svn" into the Exclude folders list.
Side Note on Right Click Excludes: a .\ in front of an item makes the path relative to the base folders.
".svn" will hide all .svn folders anywhere
".\.svn" will only hide .svn folders in the base (but not subfolders)
".\Folder\.svn" will only hide .svn folders inside the Folder subfolder of the base folder.

问题三:
svn更新失败解决方法 SVN 本地更新时,由于一些操作中断更新,如磁盘空间不够,用户取消。  可能会造成本地文件被锁定的情况。一般出现这种情况的解决方法:
1、可以使用SVN clean up来清除锁定。(第一步先处理)
2、如果不是本目录锁定,系统提示上一层目录锁定,需要到上一层或者根目录中清除。
3.如果在根目录下都无法clean的话,一般采取的方法是另外找一个目录重新CHECKOUT。但有时有时SVN目录下可能有一些自己本地修改的文件,还未提交到SVN服务器,       这时重新CHECKOUT需要注意本地文件的备份,并且不要强制覆盖服务器上其它人修改的内容。
4.如果觉得第3种很麻烦,可以考虑这样的方法。其实SVN加锁会在.SVN(隐藏文件)中生成一个名字叫lock的文件(无后缀),查找所有的,手工删除。然后再尝试更新, 系统可能会提示某个.base文件无法访问。找到它,把相关的文件或其所在的目录删除,重新UPDATE。工作量就小多了。

问题四:
svn 代码状态出现下面问题,及时删除文件夹,使用svn up 也不能重新升级
local unversioned, incoming add upon update
原因:当工作目录修改删除过时更新使用svn更新就容易发生树冲突“Tree Confilict”.会出现类似提示
解决:
$svn resolve --accept working removed_directory
$svn revert removed_directory  或者 svn revert --depth infinity *
$svn st

问题五:
执行svn up命令,出现如下错误:即使删除文件,重新下载也还是不能解决
Skipped 'configs/my_defconfig' -- Node remains in conflict
解决:使用命令 svn remove --force 目录/文件  可以解决
svn remove --force my_defconfig
svn up 更新成功

问题六:
怎样通过命令行获取android系统的svn号相关
logcat.cpp 中如下语句
version_info_len = snprintf(version_info, 64, "Android Revision: %d\n", ANDROID_VERSION) + 1;
system/core/logcat/Android.mk@中
LOCAL_ANDROID_VERSION := $(shell cd $(LOCAL_PATH) ; if [ -d .svn ] ; then svn info | grep Revision | awk '{ printf("%s", $$2) }' ; else git svn info | grep Revision | awk '{ printf("%s", $$2) }' ; fi)
export SVN_VERSION = $(shell cd $(CURDIR)/../.. ; if [ -d .svn ] ; then svn info | grep "Last Changed Rev" | awk '{ printf("%s", $$4) }' ; else git svn info | grep "Last Changed Rev" | awk '{ printf("%s", $$4) }' ; fi)

在android/system/core/logcat/logcat.cpp中增加语句:则可以通过logcat --svn 获取当前版本的svn号
#ifdef ANDROID_VERSION
 if (argc == 2 && 0 == strcmp(argv[1], "--svn")) {
     printf("build project svn version = %d \n",ANDROID_VERSION);
     exit(0);
    } 
#endif

附svn 命令自带帮助信息svn --help  或者 svn command_name --help (例:svn checkout --help)

uniapp中renderjs实战:手把手教你实现SSE即时通讯(附完整代码) 本文通过一个完整的实战案例,详细讲解了如何在uni-app中使用RenderJS实现SSE即时通讯功能。文章剖析了RenderJS作为Vue视图层强力补充的原理,并提供了包含自动重连、状态管理等健壮性设计的完整代码,帮助开发者突破框架限制,高效集成浏览器原生API。 阅读详情

相关推荐

5分钟搞定PettingZoo多智能体环境搭建:从安装到运行第一个Demo

本文详细介绍了如何在5分钟内完成PettingZoo多智能体环境的搭建,从安装到运行第一个Demo。通过精准的版本控制和常见问题解决方案,帮助开发者快速上手多智能体强化学习(MARL)环境配置,并提供了实战案例和性能优化技巧。

backprop5master的博客 221

svn co

首先需要知道一点,  svn co  只能check  目录, 不能co文件; 如果需要co文件, 需要用 svn export; svn  co  的用法经常有两种:    第一种:  直接  svn  co    http://svnserver/mypro/trunk                 此时, 会在你的当前目录下, 增加一个 trunk文件夹;  svn的trun

在路上 7787

行人重识别技术(Re-ID)概述、研究现状以及相关数据集下载

ReID技术概述什么是ReID一般流程Re-ID特点研究现状难点数据集reid常用数据集以及下载链接评价指标实现思路研究方式基于表征学习基于度量学习基于局部特征全局特征切片姿态基于视频序列RQEN基于GANCamStyleDG-NetGAN总结对比未来方向建议文献 什么是ReID 行人重识别是指利用计算机视觉技术,判断在不同时间段、不同监控下出现的行人图像是否属于同一人员的技术。行人重识别是最近几年在视频分析领域下热门的研究领域,可以看做是人脸识别应用的拓展。现在大街上的监控较多,由于设备质量、成像光线、.

留缘的博客 1万+

svn冲突问题详解 SVN版本冲突解决详解

解决版本冲突的命令。在冲突解决之后,需要使用svnresolved来告诉subversion冲突解决,这样才能提交更新。冲突发生时,subversion会在WorkCopy中保存所有的目标文件版本(上次更新版本、当前获取的版本,即别人提交的版本、自己更新的版本、目标文件。 开发人员都知道代码管理工具是开发中一个必不可少的工具,这里也不废话详细介绍了。不管你个人喜欢git还是svn还是其他,但

zhangzhifei1991的专栏 4724

利用Solidworks2020将挖掘机装配体转换为URDF模型

利用Solidworks2020将挖掘机装配体转换为URDF模型一、下载sw_urdf_exporter插件 URDF(Universal Robot Description Format)——通用机器人描述格式,它是ROS里边使用的一种机器人的描述文件,包含的内容有:连杆、关节,运动学和动力学参数、可视化模型、碰撞检测模型等。 一、下载sw_urdf_exporter插件 ROS提供了SolidWorks转URDF的插件(下载链接)—sw2urdfSetup.exe,下载后点击安装,安装完成后就能在sol

weixin_48192326的博客 6101

创建可视化机房

(3)窗户位置创建好以后需要对窗户的墙面镂空位置进行修补,具体操作为,选中镂空位置的顶点(这里必须是选择一个平面的顶点,不要跨平面选择),实际操作如下图:选择点以后,鼠标右键,选择【从顶点创建边/面】,或者按F键,随后对其他镂空位置进行相同操作;(2)将【物体模式】修改为【编辑模式】,选中-x对应面的所有顶点,移动顶点位置,其他放小调整按照同理,找到选中对应面的所有顶点,移动位置即可;调整动画事件轴上的线,选中关键帧的时间,调整模型的位置或者旋转角度,具体根据插入关键帧菜单选择的项进行模型的相关调整。

SmileBu丿㦌的博客 2068

svn——svn 常用命令总结

svn查看操作 1、svn log —— 显示服务器中各版本的作者、提交日期、备注信息等 svn log svn log -r 2:3 显示指定的两个版本的log信息 svn log file 显示指定文件的log信息 svn log -v 显示lo...

qq_39790633的博客 4299

VTK:受约束的 Delaunay 2D用法实战

VTK:受约束的 Delaunay 2D用法实战程序输出程序完整源代码 程序输出 程序完整源代码 #include <vtkActor.h> #include <vtkCellArray.h> #include <vtkDelaunay2D.h> #include <vtkMath.h> #include <vtkMinimalStandardRandomSequence.h> #include <vtkNamedColors.h>

希望我的博客,能帮上你解决学习中工作中所遇到的问题 944

(一) svn co 的常用命令解释

①:svn co http://11.11.11.11/xxx/trunk 此时, 会在你的当前目录下, 创建一个 名为trunk文件夹; svn中的trunk文件的内容, 会复制到当前trunk文件夹中。 ②: svn co http://svnserver/mypro/trunk AA 此时, 会在你的当前...

猫瑾的博客 4万+

EtherCAT主站SOEM -- 0 -- 该EtherCAT主站SOEM专栏后续安排

SOEM(Simple Open EtherCAT Master)是一个开源的EtherCAT主站库,允许开发者构建自定义的EtherCAT主站应用程序。EtherCAT是一种实时以太网通信协议,广泛应用于工业自动化和机器控制领域。开源性质:SOEM是一个开源项目,这意味着开发者可以自由地查看、修改和分发代码。这使其成为工业自动化领域的一个强大工具,可以根据具体需求进行定制。EtherCAT主站实现:SOEM库提供了一个完整的EtherCAT主站实现,允许主站与多个EtherCAT从站设备进行通信。

常驻客栈的博客--嵌入式EtherCAT 6666

【短距离通信】【WiFi】精讲802.11n/ac/ax mpdu和ampdu最大长度

在 Wi-Fi 标准(802.11n、802.11ac 和 802.11ax)中,和是数据传输的核心概念。理解它们各自的作用以及不同标准下的最大长度限制,有助于深入了解 Wi-Fi 的性能优化机制。以下是对802.11n802.11ac和802.11ax中MPDU和A-MPDU最大长度的详细技术分析和对比。1. MPDU 和 A-MPDU 的基本概念MPDU 是经过 MAC 层处理后的数据单元,主要由MAC层数据帧和物理层的传输头部(PHY headers)组成。

风云说通信 1108

SVN解决冲突命令resolve和resolved

使用如下命令解决冲突 svn resolve index.html 手工编辑修复,而不是命令解决冲突,需要执行如下命令通知SVN服务器冲突已解决 svn resolved index.html 注意一个是加了字母d,表示已解决(完成时) ...

huangbaokang的博客 1万+

【Bug已解决】codex: debug 模式无输出 — CodeX CLI 调试模式不工作解决方案

CodeX CLI 开启 debug 模式后无输出/日志不打印的解决方案,含 debug 开关、日志级别、stderr 重定向与 IDE 日志面板。

一键难忘的博客 4165

Linux下 SVN 常用命令

1、常用命令 1、帮助命令:help(h) 命令使用:svn help 命令简写:svn h 命令解释:使用这个命令可以看到关于svn所有命令以及简写。有时候有那个命令忘了,可以看看,很有用。 2、往版本库中添加新文件:add 命令使用:svn add xxx.txt 命令解释:这个命令使用之后,还得使用svn ci xxx.txt命令提交一下。 举例:svn add *.php(添加当前目录下的所有php文件) 3、将改变的文件提交到版本库:commit(ci) 命令使用:svn ..

feikudai8460的博客 8122

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

常用命令之svn命令

一、前言   日常工作中我们使用SVN都是在图形化操作系统下使用,实际上图形化的操作在软件内部都是对应的命令。我们在Linux shell环境下也可以使用svn,这需要我们熟悉SVN相关命令。当然又方便又快捷的图形化工具使用,我们不必执着于命令的使用。此博文主要是为了记录总结SVN相关命令和SVN的备份还原操作。通过SVN命令可以更加灵活的实现我们的SVN备份需求。博文实验环境如下: 操作系统:centos7.6 SVN server版本:1.7.14 SVN客户端版本:1.8.19 二、SVN常用命令

月生的静心苑 2万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

SVN常用命令

SVN(Subversion)是一个自由、开源的项目源代码版本控制工具。目前,绝大多数开源软件和企业代码管理,都使用SVN作为代码版本管理软件。Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器。不同的是,它可以记录每一次文件和目录的修改情况,这样就可以在需要的回滚时,将数据恢复到以前的版本,并可以查看数据的更改细节。SVN 官方网址:Apache Subversio

阳光岛主 32万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SVN 常用命令汇总(2024)

svn checkout https://计算机名:8443/svn/仓库名/8443:如果是443可以不加,其它的都要添加。

毛竹&依米 6107

Linux下SVN的安装及SVN常用命令

Linux下SVN的安装及SVN常用命令

weixin_47604497的博客 7215

svn常用命令

svn常用命令

m0_46829545的博客 3691

SVN 安装及常用命令

以上命令覆盖了 SVN 日常使用的 90% 场景,掌握这些足以应对大部分版本控制需求。:在~/.bashrc 或~/.bash_profile 中添加。发生冲突时,文件会被标记为冲突状态。

IKUN2333的博客 614

SVN命令之清理命令(clean up)的功能及使用技巧

SVN的清理命令,我们经常会使用。这个命令的原理,我们还是有必要深究一下的。     当SVN改变你的工作拷贝(或是.svn中的任何信息),它会尽可能的小心。在进行任何修改操作时,SVN都会把日志记录到日志文件中,然后执行log文件中的命令, 并且执行过程中在工作拷贝的相关部分保存一个锁,防止SVN客户端在变更过程中访问工作拷贝。如果SVN的操作中断了(举个例子:进程被杀死了,机器死掉了), 日志...

LMAKE_nbsp的博客 4442

SVN常用的命令

SVN是一个开源的版本控制系统,它是一种集中式的版本控制系统,工作时需要联网;而现在比较流行的Git是一种分布式的版本控制系统,关于两者的比较可以参考SVN和Git的比较 下面只是来介绍下SVN中常用的命令,我安装的版本是Ubuntu 12.04 SVN 1.7 一、如果不清楚SVN可以使用哪些命令,只要help就会列出所有的命令,但常用的命令只有几个而已 svn help — Help

DMT专栏 6782

svn 常用命令及使用方法

svn 常用命令及使用方法 检出(co) 让svn从版本库的一个目录中取出东西并创建一个工作拷贝。  命令1:svn co URL 导出SVN库中的最新版本     备注:  如果省略路径参数,则 URL 最末尾的目录名作为目标目录名。如果指定多个 URL,则依次将其签出到 PATH 的子目录中,子目录名就是 URL 最末尾的目录名。  默认情况下,svn迁出的是版本

独孤——依人 1万+

Linux下svn常用命令

1、Linux命令行下将文件checkout到本地目录   svn checkout path(path是服务器上的目录)   例如:svn checkout svn://192.168.1.1/pro/domain       (如果第一次使用svn,要使用 用户名、 密码:svn checkout svn://192.168.1.1/pro/domain user  pa

czc1009的专栏 1479

SVN工具使用及常用操作命令总结

一、SVN简介 Subversion(SVN)是一个开源的版本控制系統,也就是说Subversion管理着随时间改变的数据。 这些数据放置在一个中央资料档案库(repository)中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。SVN 的一些概念: Repository(源代码库):源代码统一存放的地方。 Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份。 Comm

heyuming20062007的博客 4121
上一篇: 编程语言系列(六)--shell语言基础知识点总结
下一篇: android input子系统之-常用命令及技巧
杨毅
博客等级 码龄14年 26粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值