




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SVN版本管理初级培训目录1,SVN的基本概念2,SVN服务器建立3,SVN客户端使用4,分支和标签5,使用规范与注意事项6,其他1.1为什么要进行版本控制是否发生过这样的情况:当你在修改一个文件时,其他人也在修改这个文件?而你是否因此丢失过自己所作的修改呢?是否曾经保存完一个修改,然后又想把个文件恢复到修改以前的状态?是否曾经希望能够看到一个文件以前某个时间点的状态?是否曾经在项目中发现了一个BUG,然后想调查它是什么时候产生的?你是否在一个团队中工作?如果这些问题中的任何一个回答“是”的话那么你肯定需要考虑版本控制请集中精力继续后续的培训。1.2Subversion相关软件基于Subversion和TortoiseSVN的版本控制系统Subversion:是一个开源的版本控制系统,拥有CVS的大部分特征,并在CVS的基础上有更强的扩展,用来代替CVS系统。TortoiseSVN:SVN的客户端工具,和资源管理器完美集成,基于TortoiseCVS的代码开发,使用上和TortoiseCVS极为相似;Web浏览器目前公司的版本库基于Apache服务器运行,可在浏览器中查看授权过的版本库的信息。1.3使用SVN之前需要了解的第一个概念版本库(Repository)SVN的核心是版本库,储存所有的数据,版本库按照文件树形式储存数据-包括文件和目录,任意数量的客户端可以连接到版本库,读写这些文件。通过写数据,别人可以看到这些信息;通过读数据,可以看到别人的修改。最特别的是Subversion会记录版本库中的每一次更改,不仅针对文件也包括目录本身,包括增加、删除和重新组织文件和目录。1.4使用SVN之前需要了解第二个概念版本模型锁定-修改-解锁方案复制-修改-合并方案:在这种模型里,每一个客户读取项目版本库建立一个私有工作副本—版本库中文件和目录的本地映射。用户并行工作,修改各自的工作副本,最终,各个私有的复制合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。
Subversion怎么做?Subversion缺省使用复制-修改-合并模型,大多数情况下可以满足你的需求。然而,Subversion1.2后还是支持锁定,如果你有不可合并的文件,或者你只是想实行强制管理策略,Subversion仍然会提供你需要的特性。1.5SVN版本号SVN号从1开始。每次提交一个版本号。版本号是唯一标识。tags和branch也是版本号。每次提交都是可逆的,每次提交都可追溯。所有记录都会被保存。2.1SVN服务器的建立(Linux)安装subversion软件包创建仓库,svnadmincreate/var/svn/repos创建仓库结构,svnmkdirfile:///var/svn/repos/trunk,tags,branches修改authz、passwd和svnserve.conf文件启动SVN服务,svnserve-d-r/var/svn/repos查看状态,netstat-antp|grepsvn2.2服务器数据导入创建临时目录,mkdir-ptemp;cdtemp创建项目名,mkdir-pproject1将要导入的文件放置在该目录下,并执行如下命令:svnimport.file:///var/svn/repos/trunk/project1-m"maqg,importproject1“查看导入状态,svnlistfile:///var/svn/repos/trunk/2.3TortoiseSVN使用-访问版本库访问方法:Subversion可以通过多种方式访问-本地磁盘访问,或各种各样不同的网络协议,但一个版本库地址永远都是一个URL,URL方案反映了访问方法。方案访问方法file://直接版本库访问(本地磁盘或者网络磁盘)。http://通过WebDAV协议访问支持Subversion的Apache服务器。https://与http://相似,但是用SSL加密。svn://通过未认证的TCP/IP自定义协议访问svnserve服务器。svn+ssh://通过认证并加密的TCP/IP自定义协议访问svnserve服务器。3.1Checkout版本(Linux)描述:可以剪出某个版本。Linux:svncoURLWindows:在Windows文件夹中,右键,输入URL,确定。例子:svnco60:1000/trunk/project1project1结果:无3.2TortoiseSVN使用-识别重载图标
一个新检出的工作副本使用绿色的对勾做重载。表示Subversion状态正常.
在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。通过这种方式,你可以很容易地看出哪些文件从你上次更新工作副本后被修改过,需要被提交。
如果在更新的过程中出现了冲突,图标会变成黄色感叹号。
如果你给一个文件设置了svn:needs-lock属性,Subversion会让此文件只读,直到你获得文件锁。具有这个重载图标的文件来表示你必须在编辑之前先得到锁。
如果你拥有了一个文件的锁,并且Subversion状态是正常,这个重载图标就提醒你如果不使用该文件的话应该释放锁,允许别人提交对该文件的修改。
这个图标表示当前文件夹下的某些文件或文件夹已经被调度从版本控制中删除,或是该文件夹下某个受版本控制的文件丢失了。
加号告诉你有一个文件或目录已经被调度加入版本控制。3.3添加文件,文件夹描述:向版本库中添加文件Linux:svnadd[文件,文件夹]。Windows:选中要添加的文件,点击鼠标右键,在弹出菜单中选择“SVN添加”,提交。例子:svnaddjacky.txt结果:Ajacky.txt注意:添加之后,需要进行提交动作。3.4提交修改commit描述:将本地修改提交到服务器Linux:svnci[文件或文件夹]-m“修改内容描述”。Windows:右键,commit。例子:svncijacky.txt-m“modifyforXXXX”结果:Addingjacky.txtTransmittingfiledata.Committedrevision1057.3.5删除remove描述:可以将不再需要的文件从仓库中删除。Linux:svndeleteXXXXXWindows:右键,svnremove。例子:svnremovejacky.txt结果:Djacky.txt3.6更新update描述:在修改代码之前,我们需要进行更新的动作。Linux:svnup[目录或文件][-t版本号]Windows:右键,选择更新。例子:svnupjacky.txt-r1024结果:Ajacky.txtUpdatedtorevision1024.3.7修改文件名rename描述:用此功能对文件/目录进行改名后文件仍处于SVN的控制下并保持连续的变更信息。Linux:svnrenameOLD_NAMENEW_NAME。Windows:右键,重命名。例子:svnrenameandy.txtjacky.txt结果:Ajacky.txtDandy.txt3.8撤消修改Revert描述:撤销本地所有未提交的修改。Linux:svnrevert[文件名]–RWindows:右键,选择revert。例子:svnrevert*-R结果:Reverted'cmd_ipbind.c'3.9文件移动move描述:将文件从一个目录转移到另一个目录。Windows:与文件重命名相同。Linux:svnmoveOLD_POSITIONNEW_POSITION例子:svnmovejacky.txt../jacky.txt结果:Djacky.txtA../jacky.txt3.10修改文件属性描述:对于可执行文件,提交的时候,要加上相应的属性。添加文件时,保证文件具有足够的属性即可。如果想修改已经提交的文件的属性,可以用ps(propset)命令。Linux:svnpssvn:executable+xfor.sh,上面是将for.sh脚本加上可执行权限。注意:修改之后要提交生效。3.11查看文件状态status描述:在SVN的控制目录下,执行svnst,可以看到大概如下的内容:Linux:svnst[目录或文件]例子:svnst结果:!cmd_nat.c//表示文件已被删除Mcmd_ipbind.c//表示本地有修改3.12查看本地修改diff描述:当本地有修改时,可以用svndiff命令来看修改的内容Linux:svndi[文件名]Windows:右键,diff例子:svndiffcmd_ipbind.c结果:Index:cmd_ipbind.c=======================================----cmd_ipbind.c(revision1055)+++cmd_ipbind.c(workingcopy)@@-16,8+16,6@@#include<string.h>-#include<sys/stat.h>#include<arpa/inet.h>3.13查看仓库中文件列表list描述:有时候我们需要关注仓库中的代码目录,svnlist可以帮助我们。Linux:svnlist[SVNURL]Windows:右键,list举例:svnlistsvn://60/trunk/project1结果:COPYINGREADMEplatform/ttconfig/4.1创建标签tagsLinux:svncopysvn://60/trunk/project1svn://60/tags/release-1.0-m“1.0released”Windows:略注意:tags只作为一个标记,建立后最好不要修改。4.2创建分支branchLinux:svncopysvn://60/trunk/project1svn://60/branches/branch-JACKY-m“makebranchforjacky”Windows:略注意:在分支上修改的代码,要及时同步到主干上。4.3分支和主干的剪出svncosvn://60/tags/release-1.0tag-1.0svncosvn://60/branches/branch-JACKYbranch-JACKY5.1使用规范尽量不提交编译不过的代码任何修改之前,先更新代码修改之后,尽快提交提交时,写好修改注释修改代码尽量不影响他人与其他人相关的代码修改,可以通知他人5.2什么是冲突当执行svnst进行查看时,出现“CXXXXX”的提示时”,表示已冲突。下面是冲突后看到的:?cmd_ipbind.c.r1057?cmd_ipbind.c.r1058?cmd_ipbind.c.mineCcmd_ipbind.c5.3为什么会冲突修改之前没有更新。多于一个人同时修改一个文件的同一行。下面是冲突的地方举例:Index:cmd_ipbind.c======================================================
+<<<<<<<.mine+if((ret=ipbind_del_rule(sh->type,db_fw,argv[0])))fff{+=======if((ret=ipbin_ddd_del_rule(sh->typ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北科技师范学院《中医临床基础(温病)》2023-2024学年第二学期期末试卷
- 湖北商贸学院《马头琴Ⅰ》2023-2024学年第二学期期末试卷
- 南阳医学高等专科学校《油画基础与临摹》2023-2024学年第二学期期末试卷
- 运城幼儿师范高等专科学校《展位海报设计与商品陈列》2023-2024学年第二学期期末试卷
- 常州幼儿师范高等专科学校《毕业设计(新媒体)指导》2023-2024学年第二学期期末试卷
- 淄博职业学院《荷载与结构设计方法》2023-2024学年第二学期期末试卷
- 宣化科技职业学院《高层建筑结构》2023-2024学年第二学期期末试卷
- 福建体育职业技术学院《大学职业发展与就业指导4》2023-2024学年第二学期期末试卷
- 浙江农林大学《微积分Ⅰ(PM)》2023-2024学年第二学期期末试卷
- 哈尔滨幼儿师范高等专科学校《市场营销与策划》2023-2024学年第二学期期末试卷
- 小学数学二年级第二学期口算计算共3040道题
- 山东师范大学《高级英语(二)》2021-2022学年第一学期期末试卷
- 无人驾驶货车行业市场突围建议书
- 财务总监招聘笔试题及解答(某大型国企)2025年
- 手机成瘾课件教学课件
- 2024年高考真题-地理(河北卷) 含答案
- CITY不city城市潮流计划活动方案
- 2024年浙江省中考科学试卷
- GB/T 44538-2024碳基薄膜椭偏光谱法测定非晶态碳基薄膜的光学性能
- 【常考压轴题】2023-2024学年八年级数学下册压轴题攻略(沪教版)专题01 一次函数 压轴题(十大题型)(解析版)
- 医院培训课件:《紧急情况下口头医嘱制度与执行流程》
评论
0/150
提交评论