肖芳城:svn命令小集

一、 基本概念

版本库:服务器上的文件目录
工作拷贝:svn co分支到你本地的文件夹目录
工作副本:co到本地的目录下的每个文件夹里的.svn文件夹。记录了"帮助 Subversion 识别哪些文件做过修改,哪些文件相对于别人的工作已经过期"的信息。

二、SVN版本比对原理

通过.svn与版本库比对。
".svn"文件夹下记录2个信息:
1、是当前用户co下分支的版本号,
2、是记录用户本地修改的最后时间戳。
通过以上2个信息,版本库能识别不同的状态,从而给予或限制用户做什么类型的操作。
	
当出现版本库中该分支已经有人提交代码(即版本库中该分支的版本更新),并且本地自己有修改,此时,如果用户提交,版本库先比较用户本地工作拷贝.svn中的版本和版本库版本,同时比较时间。她将需要用户先svn up,然后看看是否有冲突,没冲突再svn ci。

三、svn常用命令

以rate应用为例,实际说明操作。
1、svn cp
svn cp http://svn.alibaba-inc.com/repos/ali_cn/olps/rate/branches/20100810_7368_2 http://svn.alibaba-inc.com/repos/ali_cn/olps/rate/branches/20100817_xfc_DEV -m"xfc cp"
【注】:该动作已经由aone接手操作。
2、svn co(svn checkout)
svn co http://svn.alibaba-inc.com/repos/ali_cn/olps/rate/branches/20100817_xfc_DEV rate (【注】:自定义目录,本地目录)
3、svn st
!       biz/remark/src/java/com/alibaba/china/rate/biz/remark/service/impl/RemarkServiceImpl.java
D       biz/remark/src/java/com/alibaba/china/rate/biz/remark/service/impl/RemarkTempServiceImpl.java
?       biz/remark/src/java/com/alibaba/china/rate/biz/remark/util/MyTestUtil.java
A       biz/remark/src/java/com/alibaba/china/rate/biz/remark/util/MyTestUtil2.java
X       deploy/jboss_server
M       web/remark/src/java/com/alibaba/china/rate/remark/web/action/ListsAction.java
?       bundle/war/src/webroot/META-INF/autoconf/log4j.xml.r250274
?       bundle/war/src/webroot/META-INF/autoconf/log4j.xml.mine
?       bundle/war/src/webroot/META-INF/autoconf/log4j.xml.r250702
C       bundle/war/src/webroot/META-INF/autoconf/log4j.xml
【注】:
"!"表示:本地执行了"rm -rf",但是未执行"svn del"的状态。
"?"表示:本地新加了一个文件,但是未执行"svn add"的状态。
"A"表示:本地新加了一个文件,且执行了"svn add"的状态。
"X"表示:执行了"svn external"的状态。
"D"表示:本地执行了"rm -rf",且执行了"svn del"的状态。
"M"表示:本地修改了该文件时的状态。
"C"表示:冲突状态,是重点关注状态之一。
产生的场景:A\B两个开发修改同一处代码,其中A开发已经提交,B开发在svn up的时候,就会出现conflict的提示,需要用解决冲突后,svn resolved下,具体见svn resolved。

4、svn up
【注】:当出现多个开发在同一个项目中开发同一个应用分支时,提交代码前都需要先做一次"svn up",保证合并最新代码,同时解决本地冲突。

5、svn info
【注】:一般用于获取当前分支url。
6、svn diff
M       web/remark/src/java/com/alibaba/china/rate/remark/web/action/ListsAction.java
【注】:以上这个""状态的文件,想看它相对你最新一次co的版本修改了那些,可以使用:
svn diff web/remark/src/java/com/alibaba/china/rate/remark/web/action/ListsAction.java
"-"是本地删除的行。
"+"是本地增加的行。
7、svn revert
【注】:当你发现某个你修改的文件你不想修改了,怎么办:svn revert。
svn revert web/remark/src/java/com/alibaba/china/rate/remark/web/action/ListsAction.java
然后svn st下,你会发现改文件M状态已经没了。
8、svn resovled
【注】:如上面3(svn st),当出现"svn up"下来的文件和本地的有冲突(即出现C状态)的时候,冲入如何解决呢?
a,打开文件:vi bundle/war/src/webroot/META-INF/autoconf/log4j.xml
b,你会发现有这么3个标识:
<<<<<<< .mine
=======
>>>>>>> .r250702
另外还有3个文件:
?       bundle/war/src/webroot/META-INF/autoconf/log4j.xml.r250274
?       bundle/war/src/webroot/META-INF/autoconf/log4j.xml.mine
?       bundle/war/src/webroot/META-INF/autoconf/log4j.xml.r250702
	
以上意思是:"<<<<<<< .mine"和"======="之间的是你本地添加到内容。"======="和">>>>>>> .r250702"部分的就是svn up下来的内容。
c,捞出修改这部分代码的开发,跟他一起确认如何解决冲突。
d,当确认了解决方案,解决了冲突,就删除类似以上那3个标识。
最后:svn resovled bundle/war/src/webroot/META-INF/autoconf/log4j.xml
冲突解决。你会发现上面的3个文件不翼而飞了。
9、svn ci
【注】:提交本地修改代码到服务器。
svn ci -m"modify remark log4j conf."
10、svn log
【注】:显示提交的日志信息
默认,显示该分支的所有相关版本提交日志。
如果只想显示自己打的分支,提交的日志情况,可以使用"—stop-on-copy"即可(stop前是2个"-")。
11、svn merge
【注】:合并分支。需要将老的修改合并到最新打出来的分支。
【注】:恢复旧版本。
当新打一条分支:
svn cp http://svn.alibaba-inc.com/repos/ali_cn/olps/rate/trunk http://svn.alibaba-inc.com/repos/ali_cn/olps/rate/branches/20100817_xfc_DEV2 -m"xfc cp"

现在要将老分支(http://svn.alibaba-inc.com/repos/ali_cn/olps/rate/branches/20100817_xfc_DEV)的修改合并到新分支(http://svn.alibaba-inc.com/repos/ali_cn/olps/rate/branches/20100817_xfc_DEV2)上,步骤如下:
(1)co下新分支。
svn co http://svn.alibaba-inc.com/repos/ali_cn/olps/rate/trunk http://svn.alibaba-inc.com/repos/ali_cn/olps/rate/branches/20100817_xfc_DEV2 ratenew
(2)查看老分支提交日志。
svn log --stop-on-copy http://svn.alibaba-inc.com/repos/ali_cn/olps/rate/branches/20100817_xfc_DEV
------------------------------------------------------------------------
r250702 | fangcheng.xiaofc | 2010-08-17 20:38:19 +0800 (二, 17  8月 2010) | 1 line

xfc ci
------------------------------------------------------------------------
r250272 | fangcheng.xiaofc | 2010-08-17 10:14:33 +0800 (二, 17  8月 2010) | 1 line

xfc cp
以上"r250272"版本是本分支最老的版本号,最新版本可用"HEAD"表示。
(3)合并老分支对应版本到新分支。
xfc@xfc:~/ratenew/20100817_xfc_DEV2$ svn merge --dry-run -r250272:HEAD http://svn.alibaba-inc.com/repos/ali_cn/olps/rate/branches/20100817_xfc_DEV
--- Merging r250273 through r250724 into '.':
U    bundle/war/src/webroot/META-INF/autoconf/log4j.xml
"--dry-run"是假合并,并没有真正合并分支修改到新分支,如果要真做,删除该参数。

恢复旧版本,只要把版本次序倒过来:
svn merge HEAD :-r250272 http://svn.alibaba-inc.com/repos/ali_cn/olps/rate/branches/20100817_xfc_DEV
svn merge的原理是比对版本差异,然后把差异的内容应用、合并到本地工作拷贝中。高版本:低版本,相当于"相对于高版本,低版本删除或者修改了那些内容"。

四、乌龟的使用

乌龟通常方便用于svn ignore和svn external这2个属性的设置上。


 
右键点击"deploy"的"show properties"可以查看到:


 
点击"new","edit"可以新增,修改svn属性。

YOLOv8作物病害检测实战源码 这是一套基于YOLOv8n的农田病虫害目标检测系统,对叶片照片做目标检测,识别健康叶片、褐斑病、白粉病、锈病四类,并给出对应防治建议。全流程纯CPU可跑,配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、100张自造样本及YOLO标签、训练曲线与混淆矩阵截图、Tkinter界面和答辩PPT。 系统围绕五项功能展开:同一套推理逻辑覆盖图像、视频、摄像头三种来源;图形界面选文件即检测,画面叠彩色框标注病名与置信度,右侧面板同步给出症状与防治措施;检测记录自动写入CSV,统计页一键生成四类病害占比饼图;训练结束自动产出损失与精度曲线;内置防治建议文案库,检测命中即回填面板。 选型用YOLOv8n nano档,参数量约320万、权重约6.2MB,CPU单帧几十毫秒,小样本训练5到8分钟完成。数据由data_gen.py程序化绘制100张叶片图,固定随机种子,重跑分布一致,不依赖公开数据集。依赖全部锁版本,教程第7章整理了19条真实报错及排查方法,第8章给出换模型档、换PlantVillage数据集的迁移路径。 适合做计算机视觉方向课程设计或毕业设计的学生,也适合智慧农业方向想了解检测模型如何落进业务面板的学习者。不需要GPU,不需要系统学过目标检测,教程第3章会按需补齐原理。 使用时先pip install -r requirements.txt装好依赖,download_data.py下载预训练权重,data_gen.py生成样本后train.py训练,完成后用main.py infer批量检测或main.py gui启动界面。 立即下载

相关推荐

数据挖掘实战:决策树 + 聚类 + 关联规则,零 Key 离线可跑(Python 源码)

数据挖掘实战包。用 Python 标准库实现 CART 风格决策树、K-Means 聚类与 Apriori 关联规则,在虚构「星河便利店」会员表和购物篮上跑通分类、分群与购物篮分析,并给出准确率、轮廓系数、支持度/置信度/提升度。零第三方依赖、零 API Key 即可离线跑通。含 4 个样例、离线冒烟、中文 README(含「使用方法」)。均为作者原创可运行源码。MIT。作者 blog.youkuaiyun.com/mtl1994

SVN相关操作

忽略文件

若风 209

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?.docx

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?

linux中cp复制、mv移动、重命名,SVN回滚命令的应用

一、复制cp:复制一个文件到另一个文件夹 例子: cp -i file1 file2 (将文档 file1 复制成 file2 . –i为提示确认) cp file1 dir1 (将文档 file1 复制到目录 dir1 下,文件名仍为 file1) cp /tmp/file1 . (将目录 /tmp 下的文档 file1复制到现行目录下,档名仍为 file1) cp /tmp/file

阿德的博客 2518

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

SVN:分支合并到主干

合并日志: --- Merging r173674 through r175986 into '.': C src/test/java/com/test/rigel/sandbox/organization/service/HeartBeatServiceTest.java U src/test/java/com/test/rigel/sandbox/core/auth/OrgAu

javaACMer的专栏 2098

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

svn merge conflicts handle

svn merge conflicts handle   搜索冲突: 1,搜索目录 文件不存在类的冲突:  svn st | grep "C "    发现冲突用: svn info manuals/parts/developer/resources   查看具体冲突信息 2,搜索文件text的冲突,就是含有   >>>> 之类的冲突;   发现

探秘 3006

高校技术转移办公室人员如何系统化管理科技成果信息?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

科技中介服务机构如何构建标准化、模块化的智能服务工具?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

姜博:SVN使用规范

SVN使用规范 1.提交必须写注释 清晰的提交注释有助于别人理解你所做的修改,出现问题时能够快速定位,也有助于项目经理把握开发进度。所以,在提交代码时,要填写明晰的标注,能够概要的描述所提交文件的信息,让项目组其他成员在看到标注后不用详细看代码就能了解你所做的修改。 2.禁止提交未编译通过的代码 代码在提交之前,首先要确认自己能够在本地编译,保证主干永远是畅通的。如果引用了新的类库,...

冯立彬的博客 469

02.1 知识图谱工具 Protege的下载安装与使用

Protege的下载安装与使用 本文是王昊奋老师《知识图谱》系列笔记第2.1篇。 文章目录Protege的下载安装与使用0 相关介绍0.0 Protege相关介绍0.1 Protégé的特点0.2 Protégé的用途1 Protege的下载1.1 准备工作:安装配置JAVA环境1.2 官网下载2 Protege的安装2.1 直接解压缩2.2 双击运行3 Protege的使用实例-创建类...

和而不流 7万+

SVN使用规范

提交必须写注释 清晰的提交注释有助于别人理解你所做的修改,出现问题时能够快速定位,也有助于项目经理把握开发进度。所以,在提交代码时,要填写明晰的标注,能够概要的描述所提交文件的信息,让项目组其他成员在看到标注后不用详细看代码就能了解你所做的修改。 禁止提交未编译通过的代码 代码在提交之前,首先要确认自己能够在本地编译,保证主干永远是畅通的。如果引用了新的类库,确保相应的pom.xml文件也已

直到世界的尽头 2302

STM32实战:如何快速移植野火PID调试助手协议到你的电机控制项目

本文详细解析了如何将野火PID调试助手协议快速移植到STM32电机控制项目中。通过深度剖析协议帧格式、数据解析逻辑及环形缓冲区应用,提供了从工程结构规划、核心函数适配到串口中断集成的完整移植步骤。文章还分享了协议健壮性增强、数据上报频率优化等高级调试技巧,帮助开发者构建稳定可靠的上位机调试通道,大幅提升PID参数整定效率。

weixin_29171129的博客 468

深入浅出:.sh文件在Linux系统中的实战应用与技巧

本文深入浅出地介绍了.sh文件在Linux系统中的实战应用与技巧。从基础概念入手,详细讲解了Bash脚本的运行方法、权限管理,并通过编写自动化备份脚本等实例,展示了如何利用Shell脚本提升工作效率。文章还涵盖了脚本调试、错误处理以及函数、参数解析等进阶技巧,帮助读者从入门到精通,掌握这一强大的自动化工具。

weixin_29243279的博客 350

linux下svn常用命令集锦

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33920401的博客 125

从零配置到批量处理:FaceFusion 3.1完整使用指南(含hififace_256模型测试)

本文详细介绍了FaceFusion 3.1的完整使用指南,包括环境配置、模型选择(特别是hififace_256模型的深度测试)以及批量处理技巧。通过AI驱动的脸部替换技术,帮助用户高效实现高质量的面部处理,适用于影视制作、广告设计等多种场景。

weixin_29056865的博客 655

Python21-MCP代码修正

Python21-MCP代码修正

感谢所有乐于奉献的人,在此不一一具名 208

# 执行 DISM 命令时出错 87 未在此上下文中识别出 restorehealth 选项。解决方法

# 执行 DISM 命令时出错 87 未在此上下文中识别出 restorehealth 选项。解决方法

段子手168的博客 1万+

第一百三十九回 介绍三个BLE包

本章回中主要介绍了Flutter中BLE的概念和操作方法,主要介绍了三个BLE包的功能和差异,以方便大家在BLE操作中选择不同的包。

talk_8的专栏 574

RAG 里的数字总答错:把算术从模型里拿出来,做单位归一、口径对齐与可复现计算

如果 RAG 系统的数字总答错,先看算术之前的那几步,而不是换一个更强的模型。具体到可执行的三件事:第一,让模型输出引文和口径声明,不输出数字。引文能被str.find定位,定位失败就拒答。这一步把「转录错误」从不可检测变成可检测。第二,单位归一是纯函数,用显式的换算表,缺单位时抛错而不是猜。百分比归一成小数,金额用Decimal。换算表是数据,不是代码逻辑,加一行就能扩一种单位。第三,口径做成,聚合前做一次相等比较,不等就抛。期间用半开区间,basis(单期/累计)和tax。

争者留其名 294

IC 笔试真题之吾见——华为实习(1)

前言 今天(2022 04 07)刚建立了一个专栏《IC真题之吾见》,准备记录一些IC真题的见解,为以后找工作做一点准备。 刷题绝不是目的,以题代练,以题代学。 题目来自师兄申请 华为实习“设计”岗位 的笔试真题。 见解大部分来自自己学习的理解,也有部分超纲知识是网络检索得到,希望可以多多在评论区留言交流,共同进步! 有问题的地方也希望可以直接批评指正! 后面也会同步更新此专栏! 1、下列有关时序分析的描述正确的是() A. recovery时间,是指异步控制信号在有效时钟沿到达之后必须保持

记录所学,分享知识,结识挚友 8637

短链接服务中基于TDD的高并发处理与幂等性实现实战

引言在当今互联网服务中,短链接服务作为提升用户体验与降低传播成本的重要工具,广泛应用于各类业务场景。然而,随着用户量的增长,如何保障短链接服务在高并发场景下的可用性、幂等性以及应对流量突增带来的稳定性问题,成为开发者需要解决的关键难题。本文以TDD(测试驱动开发)为核心,结合单元测试手段,从设计到实现逐步讲解如何构建一个具备高可用性的短链接服务,并在实际部署中应对限流降级等挑战。

后台模板 57

22、预条件技术:矩阵分解与多项式预条件器

本文系统介绍了预条件技术中的不完全分裂法、多项式预条件器和近似逆预条件器。内容涵盖矩阵分解的基本原理、不完全LU和Cholesky分解的实现方法、基于填充水平和阈值策略的改进技术,以及多项式和近似逆预条件器的数学基础与应用。通过算法流程图和表格对比,展示了各类预条件器的适用场景与优缺点,同时探讨了其在迭代求解中的关键作用和未来发展方向。

theta的博客 95

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

上一篇: 世界最优秀的b2b网站汇总 世界b2b网站排名
下一篇: 姜博:SVN使用规范
冯立彬
冯立彬 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域
博客等级 码龄21年 5458粉丝 593原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值