




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SVN个人使用指引背景:综合自身使用SVN之初出现的常用错误,比如已在本地删除某个文件,但一更新又从svn还原;或者修改某个文件所属的文件夹名称,无法更新或下载等等。在受 svn管理的文件中,所有的文件操作不能想当然的进行,添加删除和移动改名都是有对应的svn操作的,这样才能自动的反映到svn上来,尤其是移动文件这样的操作,如果操作不慎,就会无法将文件的修改历史联系起来。下面就简单介绍一下svn的基本操作和常见错误。公司SVN地址:1:8443/svn/Quality_Management注:如果只需查看SVN上面资料,只需在IE中输入上述地址即可查看,但如果要将文件上传到SVN,必须下载SVN工具。1 SVN是什么svn就是一个离线代码管理,可以多人一起修改,同时svn可进行有效的版本管理,比VSS更直观。svn 是严格区分大小写的,存储中路径的名字只有大小写不同,也会当作不同的路径处理。2 SVN的版本概念先说明一下几个版本概念。一个是服务器版本,每一次提交svn都会将版本号加1,无论你是修改了文件,还是添加删除了,只要你提交都会更新版本,不管你提交以后是否下载; 第二个是本地基础版本,也就是上次update时svn服务器上的版本,比如你update时服务器上是11你的本地基础版本就是11,无论别人改了什么,服务器上更新了多少版,只要你不执行update则你的基础版本永远是11;第三个是工作版本,就是你当前改着的版本,工作版本是基于基础版本的,如果没改,工作版本就和基础版本一致,如果你改了,你的工作版本就是从基础版本修改过来的。3 SVN基本操作3.1 svn checkout作为svn用户,首先安装SVN工具,这里不再赘述。然后要做的是svn checkout,将svn关联到本地一个文件夹中。这是第一步,否则无法进行commit和update的操作。这个文件夹最好是空的文件夹,或者确保没有和svn上相同名称的路径,当然这也说明这个操作是个连线操作。我们一般在执行checkout的时候只要给出svn的URL和本地的路径两个内容就可以了。这样svn上最新的数据会被传送到这个文件夹,目录结构会自动建好,svn上的文件会自动出现在对应的文件夹中。点击SVN Checkout图标,出现如下图所示。其中第一行红色方框显示即为公司SVN地址,第二行是本机地址,一般会自动显示。点击上图红色椭圆框可弹出如下图所示:图中红色椭圆标注部分为公司SVN目录。为避免占用资源,使用者可根据实际情况下载相关目录。如我只需下载“质量管理办”中“部门业务”里的“蓝科之窗”文件夹。则可以点击相应目录,如下图所示:点击OK后,出现如图所示,这里会发现URL地址栏和本地地址栏已发生相应变化,本地地址栏的变化是自动的,也可以自定义本地的文件夹。点击OK后出现如下图所示图标。该文件夹显示绿色勾。也可自定义文件夹,如定义文件夹为“1”,可直接输入,无需在桌面建立文档名为“1”的文件夹。点击OK后出现:,但是点击文件夹“1”进去以后,出现如果需要“9期”再传文件,则容易造成文档的混乱,所以建议尽量建立与服务器相同的文件夹。或许你发现了,每一个文件夹中比服务器上的内容多了个.svn文件夹,这个文件夹中存放着文件夹的属性,这个文件夹中的每个文件的属性、版本还有对应版本的一个副本,不能删除。3.2 svn commitsvn 的commit操作就是将修改从工作拷贝发送到版本库并将版本标记为新的版本,这个过程中如果有人已经对这个版本进行了操作,也就是你的本地基础版本和服务器不同,将会强制你执行一个update操作,这个操作是个连线操作。commit的过程仅仅是将你本地的一些修改提交到svn中让svn上的和你的一致,在提交之前必须已经解决了需要提交文件已有的冲突才行。请注意:即使未对文件进行修改,只是做了保存动作,系统也会自动标识本地版本与服务器版本不同。如我修改了“蓝科之窗新春特刊征稿”这个文档,则保存文档后,svn会自动进行比较,发现与服务器上文档不一致,图标变成红色感叹号,如下图所示。修改完成后如果要提交,点击鼠标右键,选择“SVN commit”进行提交。出现如图表格,在你需要提交的文档前打勾即可,但这里需要注意的是:若提交的文档仍有上一级目录,则必须将上一级目录文件夹打勾。同时为便于同时使用文档的同事,尽量在上面空白处填写本次修改的内容是什么,以便进行问题跟进。目前还未做到强制填写修改内容,稍后会与研发人员沟通修改完善。3.3 svn update这个操作就是将本地的数据更新到svn上的版本,默认的操作是更新到最新版本,这个操作也是个连线操作。如果有人删除了文件,这个动作会将你机器中的该文件删除,如果别人改了某个文件,会将这个文件更新。如果你修改了某个文件,而别人删除了它,再进行update动作时,则这个文件不会被删除,只是和svn没关系了。这时再进行commit的动作,则该文件显示红色,如下图:无法上传。如果你修改了某个文件,而这个文件别人也修改了,在更新的过程中就会显示错误,svn会将这个文件标记为冲突。SVN无法实现自动合并文档。为了避免这种情况,可以使用加锁的功能,具体在3.14会讲到。如果双方都修改的文件被记录为冲突了,可以手动合并文件,但容易出错,可以文件恢复到原来的版本,在此基础上再进行修改。3.4 Show log比如进入“质量管理办”文件夹下,点击右键,选择TortoiseSVN中的“show log”,则出现下图所示,这里记录的是所有做过修改的痕迹,最后一列则是当时提交文档时的备注,这样,对该目录内文件作的所有修改就一目了然了。如果想查看其中某个版本的文档,则可点击右键,选择“open”即可查看。3.5 svn add如果一个文件不受svn管理,你需要把它添加到svn中,这个操作是个离线操作,仅仅是把这个文件标记为需要添加。真正的添加到svn存储的操作将在下一次commit时执行。这个过程中需要注意不要把一些不必要的文件比如编译的临时文件添加到svn。有时无法区分临时文件是如何产生的,只能在产生临时文件时手动删除。实际上add的动作适用于文件很多,可能有些需要添加到SVN,有些只需自己查看,方便记录而已。比如新建一个文件,初始状态文件的左下角会出现一个问号,如图:当进行add动作后,变为如下图:再次进行commit动作时才会添加进SVN。3.6 svn clean up这个操作清理整个所选择的文件夹及其子文件夹,但是它不是清理垃圾文件什么的,这不是svn的工作。它也不会把冲突自动解决。如果你在某个svn操作时强制中断了,比如svn的操作程序停止相应或者意外终止,就有可能导致文件夹处于锁定状态,这时需要清理。如果你的文件夹中的很多文件时间戳发生了变化,也最好执行以下clean up这样可以加速svn操作的执行。这个操作是离线操作。3.7 svn delete如果需要删除某个文件,当具有读写权限时,在本机操作将该文件删除,看到的效果是文件直接被删除了,但进行update后,删除的文件就又回来了。通俗点讲,就是当你删除本机文件时,并没有删除服务器上的文件,这是离线操作,操作的结果将被标记,下次commit时服务器上的文件,所以必须重新将删除的动作提交服务器,服务器才能将文件真正删除。注意两种文件的删除方式:1、 本机文件的删除:直接进行删除动作。2、 服务器文件的删除:删除本机文件后,将删除动作commit服务器执行删除动作。3.8 svn revert如果你的修改出现了问题,或添加或删除错误文件等,想还原操作,在commit之前可执行revert操作,退回某步操作,这样这些修改都会被还原到基础版本状态。不会连接服务器也不会更新文件,只是简简单单的回复到基础版本。这个操作是个离线操作。但commit之后无效。也可以直接删除这个文件再重新update。3.9 svn export这个操作可以将一个已经在svn管理下的文件夹中的所有工作版本导出到一个文件夹中,或者直接从svn服务器上将一个版本导出到一个文件夹中。导出的文件夹不再在svn的管理控制下,也不会有.svn目录,当然也不会包含在svn管理下的文件。3.10 svn copy操作的名字显而易见,就是复制操作,在svn上复制文件有什么好处呢,为什么不直接复制文件再添加到svn呢。这个问题我也考虑过,svn copy可以将文件在复制之前的历史保留下来,这应该是最大的好处了。这个操作是离线操作,类似于指向,需要提交才起效。3.11 get lock如果你在修改某个文件时不希望其它人修改或同时操作,可以把文件锁定,这样别人必须等你提交了修改或者释放了锁才能提交他们的修改。这个操作不会对别人的 svn本地存储有什么影响,而只是无法进行数据提交。如果某个文件有svn:needs-lock这样的标志时,文件会被设置为只读,提示你需要获得锁来修改。当然你也可以把文件的属性修改直接修改,这个只是防君子不防小人的。这个操作是连线操作。如果A用户锁定了文档aa,B在自己工作拷贝中修改后提交不成功,出现如下图红色字体提示。这时就只有A用户拥有解锁权限,那么如果B想提交必须通知A用户进行解锁后再提交。3.12 Release lock虽然是unlock但是实际上这个我们平常不会将他用来和lock配对,因为commit操作时,svn默认自动将锁释放了。这个操作的用处是在你加锁后,又不想锁定这个文件、不想对其进行修改时执行。这个操作时连线操作。4 常见错误1、 文件命名错误做法:如下图正确做法:这样命名可以比较清晰看到某个时间的版本,但是既然用SVN来进行版本管理,就不是单纯的将各版本文件以日期区分,不是一个简单的存放地址,同一份文档可用相同的文件名,如此文档可命名为“员工通讯录”,每次提交版本时在备注注明日期。如果需要查看其中某个日期的版本名即可将鼠标移动至该文件名,点击右键,选择“show log”,可以看到该文件的所有更改记录,想查看某个日期的版本,即将鼠标移动该处,点击右键,选择“open”,即可查看。2、 修改文件名或文件夹名错误做法:如果想要将某个文档或文件夹更名,直接修改。正确做法:本机进行操作时是可以直接修改文件名或文件夹名的,但SVN对路径的要求比较严格,而且区分大小写,如果直接将文件名修改,则服务器会自动判断为不同路径,而服务器上是没有这个路径的。3、 临时文件或坏损文件点击某个文件,则出现4、 删除多余文件最初使用时,习惯性的希望自己文件夹下干净整洁,于是将看似多余的文件删除,结果导致无法使用。注意:“SVN”不是个多余文件。5、 直接将文件拖入文件夹在本机操作时是完全没有问题的,但SVN里的文件全部是“受控”的,每一步操作都不是随心所欲的。如,我想将下面的一个文件拖进“2009年”的文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年医师资格考试(实践技能)复习题库及答案黄冈
- 2025年广东省职业病诊断医师考试(职业性尘肺病)综合能力测试题及答案
- 轨道交通通信信号设备制造工新员工考核试卷及答案
- 拖拉机涂装加工生产线操作调整工成本控制考核试卷及答案
- 2025专利代理人考试专利法试题及参考答案
- 心肺复苏操作考试题及答案
- 2025年飞机维修试题及答案
- 2025年初级会计考试试题真题及答案
- 重过磷酸钙生产工协同作业考核试卷及答案
- 2025年生物核酸基因题库及答案
- 2025年职业培训学校建设项目可行性分析与初步设计方案报告
- 2025年亚马逊AWS云服务合同范本参考
- 班干部聘任仪式
- 2025年老年病学住院医师规培出科考试理论笔试答案及解析
- 激光武器物理课件
- 气瓶泄漏应急演练范文大全
- 2025年REACH 250项高度关注物质SVHC清单第34批
- 2025年软件架构师专业技术考核试题及答案解析
- 八上语文第9课《天上有颗南仁东星》课件
- 2025-2026学年苏教版(2024)小学科学三年级上册(全册)课时练习及答案(附目录P102)
- DBJT15-110-2015 广东省建筑防火及消防设施检测技术规程
评论
0/150
提交评论