`
lionelf
  • 浏览: 81388 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

svn命令行基本操作

    博客分类:
  • JAVA
阅读更多

SVN 基本操作

检出checkout(co)

svn co ${url}

更新update(up)

svn up

提交commit(ci)

svn ci -m " 修改xxx 问题"

查看当前目录最近5 次提交记录

svn log -l 5

查看当前工作拷贝信息

svn info

查看当前未提交的文件status(st)

svn st

这个命令输出每个添加、修改、删除过的目录和文件,前面的C 表示冲突,要特别注意。linux 下也可以用svn st | grep ^C 来查看冲突项。

查看当前修改内容

svn diff

撤销当前修改,覆盖为资源库最新版本

svn revert path/filename

递归撤销当前目录修改,覆盖为资源库最新版本。注意新加的文件不会被删除,这时也可以删除工作拷贝,重新checkout

svn revert . --recursive

SVN merge

自动合并

主干到分支

建立分支以后,一个要做的事情就是定期将主干上的修改合并到分支。先进入分支的工作拷贝,确认分支上所有修改已经提交,然后:

$ svn merge http://codeserver/calc/trunk

--- Merging r345 through r356 into '. ':

U    button.c

U    integer.c

--- Recording mergeinfo for merge of r345 through r356 into '. ':

U   .

$

假设t1 时刻建立了分支,t2 时刻执行上面的命令进行合并,t3 时刻再次执行上面的命令进行合并。 由于分支是从主干分离出去的,所以第一次合并的时候(t2 ),svn 能知道分支建立以后进行了哪些修改,它会将分支建立以后这段时间主干的修改(t1t2 ),应用到当前工作拷贝。

第二次执行上述命令的时候,svn 会意识到t1t2 时刻的修改已经合并过了,所以它仅将t2t3 时间段内主干的修改,应用到当前工作拷贝。 第二次合并的时候,svn 能够做到智能合并,这依赖于svn:mergeinfo 属性,请注意上面命令输出的最后一行,表示svn 正在将svn:mergeinfo 属性记录到当前目录下,所以执行svn merge 目录的时候,最好在工作拷贝的根路径下执行。

svn:mergeinfo 的内容大致如下,它记录合并了哪个路径的哪两个版本的差异,可用svn propget svn:mergeinfo path 查看,输出类似如下:

/branches/V8822_optimiz_20090722/lottery:8828-9374

/branches/V8865_wap_20090727/lottery:8876-8937

/branches/V8944_P3_20090803/lottery:8992-9400

/branches/V9377_newp3_20090818/lottery:9400-9947

/branches/V9377_wappay_20090818/lottery:9404-9493

分支回主干

在分支上开发完成后,需要将分支合并到主干。进入主干的工作拷贝的根目录,运行

$ svn merge http://codeserver/calc/branchurl --reintegrate

我们假设上述命令发生在t4 时刻,如果上面的命令不带--reintegrate 参数,可能会造成冲突,在svn 看来,t1 时刻建立了分支,然后主干上进 行了一些修改,分支上也进行了一些同样的修改(原因是我们在t2t3 时刻曾经将主干的修改合并到分支),所以就冲突了。 加上这个参数以后,根据分支目录http://codeserver/calc/branchurl 上的svn:mergeinfo 信息,svn 在进行合 并的时候会排除主干迁移到分支的这些修改,仅仅将分支上的修改迁回主干。

假设在t5 时刻,需要再次合并分支上的修改,这时可以不带--reintegrate 参数,因为在t4 时刻执行命令以后,已经将svnmergeinfo 记录在主干。

手工合并

svn merge 可以理解为比较资源库中的两个不同版本(diff ),然后将差异应用到当前工作拷贝。 实际上,上面描述的自动合并功能是svn1.5 以后才有的,在这之前都是通过手工合并的方式工作。同时,在一些比较复杂的场景,手工合并会更加灵活。手工合并的方式为:

$ svn merge -r version1:version2 http://codeserver/calc/branchurl

$ svn merge -c version1 http://codeserver/calc/branchurl

上面的version1version2 是版本号,可以用HEAD 来代替当前最新版本。第一条命令将分支上version1version2 的修改合并到当前工作副本,第二条命令将第version1 次提交的修改合并到当前工作副本。

特别要注意理解 变更集 的概念。下面以155 项目的分支为例,假设svn log 如下(经过简化)。

------------------------------------------------------------------------

r24673 | yeli.hl | 2012-01-08 21:44:33 +0800 ( , 08  1 2012) | 1 line

 

开奖时间修改为2030

------------------------------------------------------------------------

r24644 | yeli.hl | 2012-01-06 11:42:22 +0800 ( , 06  1 2012) | 1 line

 

修正参与链接

------------------------------------------------------------------------

r24615 | yeli.hl | 2012-01-04 18:59:30 +0800 ( , 04  1 2012) | 1 line

 

merge trunk 24611

------------------------------------------------------------------------

r24601 | yeli.hl | 2012-01-04 15:29:43 +0800 ( , 04  1 2012) | 1 line

 

优化追号期数的显示

------------------------------------------------------------------------

r24585 | yeli.hl | 2012-01-04 13:55:42 +0800 ( , 04  1 2012) | 1 line

 

修改 我的淘宝 导航条为3.1 版本。

------------------------------------------------------------------------

r24506 | yeli.hl | 2011-12-30 15:17:26 +0800 ( , 30 12 2011) | 1 line

 

merge trunk 24505

------------------------------------------------------------------------

r24182 | yeli.hl | 2011-12-14 18:01:48 +0800 ( , 14 12 2011) | 1 line

 

十五选五中奖号码解析。

------------------------------------------------------------------------

r24050 | yeli.hl | 2011-12-05 15:04:39 +0800 ( , 05 12 2011) | 1 line

 

取彩期的时间程序调度。15X5 重命名。投注页面静态代码拆分。

------------------------------------------------------------------------

r23950 | yeli.hl | 2011-11-28 16:50:16 +0800 ( , 28 11 2011) | 1 line

 

anhui 15*5

可以看到,建立分支的那一次提交是r23950 ,则-r 23950:24050-c 24050 代表的是同一个 变更集 ,前者表示2395024050 的差异,后者表示24050 这次提交的变更,其实它们都是一样的,都是24050 这次提交导致的变更。因此,假设我们已 经合并了-r A:B ,如果B 之后又有一系列提交,最新版本是C ,我们想把这之后所有的修改并过来,则需要-r B:C ,注意第二次包括了B

假设现在我们想要手动方式把这个分支的变更迁回主干。则命令为(需要排除两次merge 主干的修改):

$ svn merge -r 23950:24182 branch_url

$ svn merge -r 24506:24601 branch_url

$ svn merge -r 24615:HEAD branch_url

如果用-c 方式,最后一个命令等效为:

$ svn merge -c 24644 branch_url

$ svn merge -c 24673 branch_url

撤销已提交操作(回滚)

merge 的另外一个用途是撤销已经提交的代码,具体的做法是反向merge ,用下面的命令撤销一次提交,假设url 路径上进行了不应该的提交,进入该路径的工作拷贝,执行

$ svn merge -c -A url

$ svn merge -r C:B url

第一个命令撤销版本号是A 的提交,注意版本号前面的减号。第二个命令撤销BC 的提交。执行完以后,再commit 。 当然,实际上svn 并不能删除任意一个版本,这些操作仍然都会在历史中,它的作用只是在当前的HEAD 中撤销了某次(或某段)提交的内容。

注意事项

1.   为了防止造成破坏,可以带上--dry-run 参数进行预览,合并的时候如果带上这个参数,工作拷贝将不会被修改,但是你能够看见有哪些代码被修改,哪些有冲突。

2.   merge 前保证所有代码已经提交,并且已经进行了更新,并检查当前的工作拷贝是正确的。

3.   执行merge 操作以后,解决完冲突立即提交。这样可以保证本次提交代表了一次纯粹的merge 。例如上面的r24506r24615 ,在手工merge 回主干的时候,需要排除这些提交,如果这些提交包含了其它修改就没有办法区分了。

4.   提交的注释中描述清楚当前是从哪个版本merge 到哪个版本,有时候手工合并的时候需要参考到。

5.   在根目录执行merge 操作,避免在子目录和文件中留下mergeinfo 信息。

彩票SVN 相关操作

创建代码分支

lottery 为例,随便找个目录,执行类似下面的命令

svn cp http://svn.taobao-develop.com/repos/lottery/trunk/lottery \

http://svn.taobao-develop.com/repos/lottery/branches/V${ 当前主干版本号}_${ 项目名称}_${date}/lottery \

-m " 创建XXX 项目分支" --parents

可以到http://svn.taobao-develop.com/repos/lottery/branches/ 下参考其它的分支命名。

合并主干的最新修改到分支

开发一段时间以后,需要将主干的最新修改合并到项目分支。进入分支工作拷贝的根路径(请注意一定要在根路径进行操作),运行

1.   svn info 确认当前工作路径正确:指向分支

2.   svn st 确认所有代码都已经提交

3.   运行命令

4.   svn merge http://svn.taobao-develop.com/repos/lottery/trunk/lottery

5.   人肉解决冲突,可以用svn st 查看(*nix 下用svn st | grep ^C 查看) 是否有冲突,C 开头的文件标识有冲突,解决完以后用svn resolved path/filename 标记冲突为已解决

6.   svn st 确认已经没有冲突了

7.   提交

合并分支修改到主干

上日常的时候,需要将项目分支修改合并到日常服务器的主干工作拷贝,但是不提交。在主干工作拷贝根路径(请注意一定要在根路径进行操作)下执行以下操作

1.   svn info 确认当前工作路径正确:指向主干

2.   svn st 确认所有代码都已经提交

3.   运行命令

4.   svn merge http://svn.taobao-develop.com/repos/lottery/branches/V${ 当前主干版本号}_${ 项目名称}_${date}/lottery --reintegrate

5.   人肉解决冲突,可以用svn st 查看(*nix 下用svn st | grep ^C 查看) 是否有冲突,C 开头的文件标识有冲突,解决完以后用svn resolved path/filename 标记冲突为已解决

6.   svn st 确认已经没有冲突了

删除代码分支(项目预发后删除代码分支)

随便找个目录,执行下面的命令(lotterykeno 没有区别)

svn mv http://svn.taobao-develop.com/repos/lottery/branches/V${ 当前主干版本号}_${ 项目名称}_${date}/lottery \

http://svn.taobao-develop.com/repos/lottery/branches/backup_branches/V${ 当前主干版本号}_${ 项目名称}_${date}/lottery \

-m " 删除${ 项目名称} 代码分支"

项目合并

可先从主干拉一个分支,两个项目分别将自己的修改合并到这个分支。上日常的时候再将这个分支合并到主干。

分享到:
评论

相关推荐

    基于pytorch+ResNet50的眼部疾病图片分类源码+文档说明.zip

    详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;详情请查看资源内容中使用说明;

    基于yolov5的鸟窝目标检测源码+模型.zip

    YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

    中南财经政法大学-答辩PPT模板我给母校送模板作品.pptx

    PPT模板,答辩PPT模板,毕业答辩,学术汇报,母校模板,我给母校送模板作品,周会汇报,开题答辩,教育主题模板下载。PPT素材下载。

    node-v8.7.0-sunos-x64.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    2024-2030全球与中国混合光纤同轴网络市场现状及未来发展趋势.docx

    2024-2030全球与中国混合光纤同轴网络市场现状及未来发展趋势

    中南民族大学-答辩通用PPT模板我给母校送模板作品.pptx

    PPT模板,答辩PPT模板,毕业答辩,学术汇报,母校模板,我给母校送模板作品,周会汇报,开题答辩,教育主题模板下载。PPT素材下载。

    使用Spring Boot开发框架和Spark MLlib机器学习框架,通过FP-Growth算法,分析用户的购物车商品数据

    商品关联关系挖掘,使用Spring Boot开发框架和Spark MLlib机器学习框架,通过FP-Growth算法,分析用户的购物车商品数据,挖掘商品之间的关联关系。项目对外提供RESTFul接口。.zip

    OpenCv 使用fffffffff

    OpenCv 使用fffffffff

    node-v10.14.0-linux-ppc64le.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    课设&大作业-高校社团管理系统

    【资源说明】【毕业设计】 1、该资源内项目代码都是经过测试运行成功,功能正常的情况下才上传的,请放心下载使用。 2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等)的同学或企业员工下载使用,具有较高的学习借鉴价值。 3、不仅适合小白学习实战练习,也可作为大作业、课程设计、毕设项目、初期项目立项演示等,欢迎下载,互相学习,共同进步!

    基于java的学校教务管理系统 (jsp+servlet+sqlserver)(含程序运行详细说明文档).zip

    基于java的学校教务管理系统 (jsp+servlet+sqlserver)(含程序运行详细说明文档).zip

    iOS APP提审checklist

    根据App Store的审核条款总结出的checklist

    基于YOLOV5的移动物体检测分类系统源码.zip

    YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

    088ssm-vue教学视频点播系统.zip(可运行源码+数据库文件+文档)

    对于本视频点播系统的设计来说,系统开发主要是采用java语言技术,在整个系统的设计中应用MySQL数据库来完成数据存储,具体根据视频点播系统的现状来进行开发的,具体根据现实的需求来实现视频点播系统网络化的管理,各类信息有序地进行存储,进入视频点播系统页面之后,方可开始操作主控界面,主要功能包括管理员:首页、个人中心、学生管理、教师管理、视频分类管理、视频信息管理、系统管理,学生前台:首页、视频信息、系统公告、个人中心、后台管理,教师:首页、个人中心、视频信息管理等功能。 本文主要讲述了视频点播系统开发背景,该系统它主要是对需求分析和功能需求做了介绍,并且对系统做了详细的测试和总结。具体从业务流程、数据库设计和系统结构等多方面的问题。望能利用先进的计算机技术和网络技术来改变目前的视频点播系统状况,提高管理效率。 关键词:视频点播系统;SSM框架,mysql数据库,B/S模式

    ky10升级内核版本包

    ky10升级内核版本包

    C语言课程设计计费管理系统源码.zip

    高分设计源码,详情请查看资源内容中使用说明 高分设计源码,详情请查看资源内容中使用说明高分设计源码,详情请查看资源内容中使用说明高分设计源码,详情请查看资源内容中使用说明高分设计源码,详情请查看资源内容中使用说明高分设计源码,详情请查看资源内容中使用说明高分设计源码,详情请查看资源内容中使用说明高分设计源码,详情请查看资源内容中使用说明高分设计源码,详情请查看资源内容中使用说明高分设计源码,详情请查看资源内容中使用说明高分设计源码,详情请查看资源内容中使用说明高分设计源码,详情请查看资源内容中使用说明高分设计源码,详情请查看资源内容中使用说明高分设计源码,详情请查看资源内容中使用说明高分设计源码,详情请查看资源内容中使用说明高分设计源码,详情请查看资源内容中使用说明高分设计源码,详情请查看资源内容中使用说明高分设计源码,详情请查看资源内容中使用说明高分设计源码,详情请查看资源内容中使用说明高分设计源码,详情请查看资源内容中使用说明高分设计源码,详情请查看资源内容中使用说明高分设计源码,详情请查看资源内容中使用说明

    基于单片机的含计数功能的智能电子天平的研发

    针对小质量器件的称重和计数包装特点,本文设计了 个基千单片机的可以实现 高精度称重和智能计数的智能仪表。仪表主要由电源、 称重传感器、 单片机、 键盘/开关、LCD显示器等部分构成。仪表输入采用电阻应变式称重传感器, 模数转换利用 具有24位精度的AID转换器把传感器的模拟信号转换为数字信号送给单片机处理。通过软件的设计可以完成高精度的称重和针对小质量器件的准确计数。仪表还设计了按键、液晶显示器及翁鸣器等输入输出器件实现了良好的人机交互功能, 能够完成对 称重和计数的标定以及相关参数的设置。另外仪表还预留了通讯接口, 为以后的升级 以及联网数据传送奠定了基础。

    基于Python的PCA人脸识别算法的原理及实现代码详解(优质项目).zip

    基于Python的PCA人脸识别算法的原理及实现代码详解(优质项目).zip个人经导师指导并认可通过的98分课程设计项目,主要针对计算机相关专业的正在做课程设计、期末大作业的学生和需要项目实战练习的学习者。 基于Python的PCA人脸识别算法的原理及实现代码详解(优质项目).zip个人经导师指导并认可通过的98分课程设计项目,主要针对计算机相关专业的正在做课程设计、期末大作业的学生和需要项目实战练习的学习者。 基于Python的PCA人脸识别算法的原理及实现代码详解(优质项目).zip个人经导师指导并认可通过的98分课程设计项目,主要针对计算机相关专业的正在做课程设计、期末大作业的学生和需要项目实战练习的学习者。 基于Python的PCA人脸识别算法的原理及实现代码详解(优质项目).zip个人经导师指导并认可通过的98分课程设计项目,主要针对计算机相关专业的正在做课程设计、期末大作业的学生和需要项目实战练习的学习者。 基于Python的PCA人脸识别算法的原理及实现代码详解(优质项目).zip个人经导师指导并认可通过的98分课程设计项目,主要针对计算机相关专业的正在做课程设

    python180数学函数绘图软件cs.zip

    python180数学函数绘图软件cs.zip

    2013年教育学311专业基础综合真题.pdf

    教育学考研,考研真题,全国硕士研究生统一考试教育学专业基础综合真题及解析,311历年真题,参考答案,答案解析。教育学统考。

Global site tag (gtag.js) - Google Analytics