SVN使用手册.docx
- 文档编号:9532288
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:34
- 大小:1.04MB
SVN使用手册.docx
《SVN使用手册.docx》由会员分享,可在线阅读,更多相关《SVN使用手册.docx(34页珍藏版)》请在冰点文库上搜索。
SVN使用手册
售前及解决方案部
SVN使用手册
福建顶点软件股份有限公司
2012年01
目录
售前及解决方案部1
SVN使用手册1
福建顶点软件股份有限公司1
1.SVN日常使用指南3
1.1.右键菜单说明3
1.2.图标说明5
1.3.创建版本库5
1.4.检出5
1.5.更新7
1.6.提交7
1.7.增加9
1.8.删除10
1.9.更新至版本11
1.10.还原12
1.11.复原(回滚)12
1.12.冲突及解决13
1.12.1.冲突的产生13
1.12.2.冲突的解决13
1.13.锁定/解锁14
1.14.权限管理15
1.15.查看差别15
1.16.使用TortoiseIDiff进行比较的图像16
1.17.版本日志对话框16
1.18.调用版本日志对话框17
1.19.获得更多信息18
1.20.修改日志消息和作者22
1.21.警告22
1.22.过滤日志信息22
1.22.1.统计信息23
1.22.2.统计页23
1.22.3.作者提交次数统计页23
1.22.4.按日期提交统计页24
2.售前及解决方案部SVN目录结构说明26
2.1.售前及解决方案部SVN目录结构26
2.2.个人文件目录26
2.3.部门受控目录27
2.3.1.培训27
2.3.2.售前交流27
2.3.3.方案文档27
2.3.4.招投标文档28
2.3.5.参考资料28
3.应用举例29
3.1.SVN客户端安装29
3.2.SVN使用29
1.SVN日常使用指南
1.1.右键菜单说明
1.2.图标说明
1.3.创建版本库
∙在相应文件夹内新建一个文件夹,用于存储数据。
∙在新建文件夹上点右键,选择“CreateRepositoryhere”,则SVN会在此文件夹内创建若干控制文件。
1.4.检出
“检出”用于客户端第一次从SVN服务器上下载版本库数据
∙在客户端新建一个文件夹用于存放下载的数据
∙在新建文件夹上右键,选择“SVNCheckout…”
∙在弹出窗口的“URLofrepository”处填入版本库的访问体质,售前及解决方案部版本库的访问地址为:
∙点击“OK”开始从SVN服务器下载数据
1.5.更新
“更新”用于客户端从SVN服务器下载最新版本
∙在受SVN控制的某层文件件上(或文件夹内空白处)点击右键,选择“SVNUpdate”,SVN自动比较该文件夹客户端与服务器端的版本差异,并下载最新版本到客户端。
1.6.提交
“提交”用于将客户端的改动上传到SVN服务器。
∙在受SVN控制的某层文件夹上(或文件夹内空白处,或某文件上)点击右键,选择“SVNCommit…”
∙SVN自动检查该文件夹客户端的改动,并将其列在弹出窗口的“变更列表”栏
∙在弹出窗口的“信息”栏写上对此次提交的注释,比便将来追溯
∙点击“OK”将客户端的改动上传到服务器
1.7.增加
“增加”用于将新文件或文件夹纳入SVN的控制之下。
∙在受SVN控制的某层文件夹上(或文件夹内空白处,或新增的某文件上)点击右键,选择“Add”
∙如果“增加”时对文件夹进行操作,则会弹出窗口,列出该文件夹下为受控制的文件,点击“OK”将其纳入SVN控制
∙“增加”后文件图标从
变为
。
注意,“增加”只是对客户端的文件进行标注,并不上传到服务器,需要执行提交后才会上传。
1.8.删除
“删除”用于从当前版本中删除文件或文件夹。
∙在受SVN控制的文件夹中,通过WINDOWS直接删除子文件夹或文件
∙或:
在受SVN控制的某层文件夹或文件上右键,选择“Delete”
∙“删除”仅是对客户端的文件进行操作,并不改变服务器上的内容,需要执行“Commit..”操作才会将删除操作上传到服务器
∙将“Delete”操作“Commit”到服务器后,仅是从服务器的最新版本中删除了此文件或文件夹,在历史版本中仍可找回此文件或文件夹
1.9.更新至版本
“Updatetorevision”为“更新至版本”,用于取出文件的某历史版本。
∙在受SVN控制的某层文件夹或文件上右键,选择“Updatetorevision”
∙在弹出窗口中填写要取的版本号,点击“OK”
1.10.还原
“Delete(keeplocal)”即“还原”用于放弃“增加”、“删除”、“改名(Rename)”以及修改文件内容等客户端的本地操作,将客户端的数据恢复到改动前的版本状态。
∙在受SVN控制的某层文件夹或文件上右键,选择“Delete(keeplocal)”
∙在弹出窗口中查看要还原的内容,点击“OK”还原客户端数据
∙还原只能用于执行提交操作之前,即未将客户端的改变上传到服务器之前。
1.11.复原(回滚)
复原(回滚)用于将项目恢复到之前的某个版本状态,并在此版本基础上继续后面的工作。
∙在受SVN控制的某层文件夹或文件上右键,选择“Showlog”
∙在弹出的日志窗口中,右键点击要复原的版本,选择“复原到此版本”
∙复原结束后,执行提交操作,将此版本作为版本库的最新版本
1.12.冲突及解决
1.12.1.冲突的产生
当两人从同一个版本出发,修改同一份文件并提交时,这两个修改版本就会发生冲突,后提交的人会收到发出冲突的提醒,且提交失败,要求先进行更新操作。
发生冲突后,执行“SVNUpdate”操作后:
∙对于发生冲突的文件,SVN会加上冲突标记
∙如果发生冲突的文件时二进制文件(如doc文件、JPg文件),SVN会增加2个文件,分贝是起始版本和冲突的版本
∙如果发生冲突的文件时文本文件(如txt文件),SVN会将工作副本中的原文件改名增加“.mine”后缀,将两个版本的冲突写入原名文件(文件中用<<<<<<<<<、=========、>>>>>>>>>>加以标识),并另加2个文件,分别是起始版本和发生冲突的版本
1.12.2.冲突的解决
∙手工将前一版本的修改整合到自己的文件中
∙在冲突的文件或文件夹上点右键,选择“Resolved”,标记为冲突已解决(此时会自动删除多余的文件),然后再次提交
1.13.锁定/解锁
∙为了便于多人协作,SVN不提倡“锁定-修改-解锁”的方式
∙由于存在冲突解决机制,通常多人可对同一份文件进行修改,而不会导致严重问题
∙但在某些情况下,比如对一张图片进行修改时,两份冲突的图片文件将很难被整合到一起,这时建议用锁定/解锁的方式
∙锁定方法
Ø方法一
v在需要锁定的文件夹或文件上点击右键,选择“Getlock…”
v在弹出的“属性”窗口选择“新建”,在弹出的“增加属性”窗口,选择“SVN:
needs-lock”属性,并点击“OK”
v执行“提交”操作,将属性的改变上传到服务器,若他人执行更新操作,将看到文件被设置为只读
。
v在设置了needs-lock属性的文件或文件夹上点击右键,选择“SVN获取锁定”,以获取锁的拥有权
v在弹出窗口输入锁定的原因等注释信息,然后点击“OK”获取锁定
v获取锁的拥有权后,文件被标识为
Ø方法二
v在要锁定的文件或文件夹上点击右键,选择“Tortoise-获取锁定”,即可获取锁定并拥有其所有权,文件将被标识为
v采用此锁定方法时,并不会自动设定svn:
needs-lock属性,别人更新后也看不到此标记
,但可组织别人的提交
v锁定后,他人提交时将被报告文件已被锁,并提交失败
∙解锁
Ø对应锁定方法一:
在锁定的文件或文件夹上点击右键,选择“属性”,杀出svn:
needs-lock属性,然后提交
Ø对应锁定方法二:
当拥有锁的人提交被锁定文件时,锁将被自动取消(而且拥有的所有锁都将被接触);也可通过“解除锁定”来解锁
∙窃取锁:
他人可通过“获取锁定”(勾选“偷取此锁定”)来窃取锁的拥有权
∙强制解锁:
当拥有锁的人忘记解锁时,他人可通过SVN命令强制解锁
1.14.权限管理
∙管理员可通过修改服务器上的权限文件,实现对权限的控制
∙权限分为三种:
无权限、只读权限和读写权限
∙权限的控制以文件夹为最小单位
∙可对单个用户的权限进行控制,也可以对用户组的权限进行控制
1.15.查看差别
通常你想要深入文件中了解你修改了什么。
要达到这个目的,你可以选中这个文件,然后在TortoiseSVN的右键菜单中选择比较。
这个操作会启动一个外部的差别检查程序,由它来比较当前文件与上一次检出或更新后的原始的复本(基础版本)。
1.16.使用TortoiseIDiff进行比较的图像
我们有许多有用的比较文本文件的工具,包括我们自带的TortoiseMerge,但是我们也需要查看图像文件的更改。
这就是我们设计TortoiseIDiff的原因。
图1.4.6.2.1.1差异察看器截图
TortoiseSVN→比较差异TortoiseIDiff可以显示同种格式的图像差异。
一般情况下是左右对称地显示两个图像,但你也可以通过调整视图滑动条转变为上下显示的模式,如果你愿意,这里支持使用透明框进行图像覆盖的方式,在顶端的滑动条可以调整图像之间的吻合程度(alphablend),你也可以使用Ctrl-Shift-Wheel来调整这种程度。
1.17.版本日志对话框
对于每次进行修改和提交,你应该有针对性地留下日志信息。
这样,你就可以在以后方便地看到你都做了什么,为什么这么做。
当然这么做还是你拥有了开发过程的详细日志。
版本日志对话框可以获取所有的日志信息,并将其显示出来。
对话框的视图分成3个面板。
∙最上方的面板显示了版本的列表。
这其中包含了日期和时间,以及提交的用户和日志信息开头的部分内容。
∙以蓝色显示的行表示某些内容被复制到该开发版本中(可能是从一个分支中复制而来)。
∙中间的面板显示了被选中的版本的完整的日志信息。
∙最下面的面板显示了被选中版本中都对哪里文件和文件夹进行了修改。
当然,对话框的作用不止于此——它提供了右键菜单,通过它可以获取更多的项目历史信息。
1.18.调用版本日志对话框
图1.4.7.1.1版本日志对话框
有几种途径可以调出日志对话框:
∙从右键菜单的TortoiseSVN子菜单中调用
∙从属性页中调用
∙在更新结束后,从进度对话框中调用。
在这里,日志对话框只显示你上一次更新以来的版本变化。
1.19.获得更多信息
图1.4.7.1.2.版本日志对话框的顶部面板的右键菜单
日志对话框的顶底面板右键菜单功能如下:
∙将你的工作版本与选中的版本进行比较。
默认的比较工具是与TortoiseSNV一同发布的TortoiseMerge,如果日志对话框是针对文件夹的,那么就会出现一个被修改的文件的列表,你可以单独地查看每个文件所做的修改。
∙将选中的版本作为单一差异文件(GNU补丁格式)查看。
相对于可视化的文件比较器,它更难阅读,但它将所有的变化显示在一个格式更为紧凑的文件中。
∙比较选择的版本和以前版本。
它与你比较工作副本类似。
∙评审选中的版本,和你的工作基础文件,使用可视化差异工具显示结果。
∙追溯选中的版本和旧版本,用可视化差异工具比较结果。
∙将选中的版本保存成文件,这样你就获得了该文件的一个旧的版本。
这个选项只在你查看一个文件的日志时才可用,它只保存那一个文件的一个版本。
∙用默认查看器,或用你指定的程序,打开选中文件。
这个选项仅在存取文件日志是可用。
∙打开版本库浏览器,可以查看选中的目录。
这个选项只在你查看一个目录的日志时可用。
∙从选中的版本建立一个分支/标记。
这个选项很有用。
比如:
如果你提交了某些你不想使其进入发行版的修改,却忘记了为此建立标记。
∙将你的工作复本更新到选中的版本。
如果你想要你的工作复本折返到过去的某个时间,那这个功能就很好用。
你最好是更新工作复本的整个目录而不是单一某个文件,因为如果只更新某个文件,你的工作复本就可能不一致,从而导致你无法提交任何修改。
∙还原选中版本中所做的变更。
还原的内容只在你的工作复本中,这个操作完全不会影响版本库!
要注意的是,这个操作仅仅恢复该版本中的修改(译注:
就是将你选中的那个版本中的修改还原,而在那之后的修改,包括你在工作复本中的新改动依然会被保留,如不正确请联系liuheqi@)。
不是将整个文件替换成选中的那个版本。
(译注:
本段对菜单中的“复原自此版本以来的变更(Revertchangesfromthisrevision)”,按实际操作的结果来看,中文菜单应翻译成“复原此版本的变更”比较合适,如不正确请联系liuheqi@)
∙还原到某个早前的版本。
如果你进行了多个修改,然后决定要返回到版本N中的模样,你就可以使用这个命令。
当然,返回的东西都只在你的工作复本中,在你提交之前,并不会影响版本库。
注意,这将会还原从那个版本以来的所有变更,使用选中的版本来替换文件/文件夹。
(译注:
在实际使用中发现并不是简单的替换,如果你在当前工作复本中所做的修改不涉及到被选中版本以来的变更内容,那么你的修改会与版本N进行合并,否则这个操作会产生一个冲突。
这段对应菜单中的“复原到此版本(Reverttothisrevision)”。
如果不正确,请联系liuheqi@)
∙检出你选择的目录的选中版本,创建一个全新副本。
它弹出对话框,让你确认URL和版本,并且选择保存的位置。
∙导出选择的文件/目录的选中版本。
它弹出对话框,让你确认URL和版本,选择导出位置。
∙编辑之前提交时的日志信息或是作者。
将选中版本的详细日志信息复制到剪贴板。
它会复制版本号,作者,日期,日志信息,以及每个版本的改变项目列表。
∙在日志信息中搜索你输入的的文字。
这个操作搜索日志信息,也搜索由Subversion建立的提交行为总结(最底部的面板中的内容)。
搜索大小写无关。
图1.4.7.1.3.选种两个版本的顶部面板的右键菜单
如果你使用Ctrl组合键一次选中了两个版本,右键菜单有所改变:
∙使用可视化差异比较工作比较两个选中的版本。
默认的比较工作是与TortoiseSVN一起提供的TortoiseMerge。
∙如果你是针对文件夹选中这个选项,则会弹出一个对话框列出修改过的文件,提供了更多的差异比较选项。
∙评审两个版本,并使用差异比较工作比较结果。
使用单一差异文件显示差异。
这对文件和文件夹都有效。
∙如前所述将日志消息复制到剪贴板。
∙如前所述可以搜索日志消息。
如果你用Ctrl或Shift组合键选择了多个连续的版本,右键菜单将有一个选项,可以让你还原这些版本中的修改。
这是一次性还原多个版本中修改的最简方法。
图1.4.7.1.4日志对话框的底部面板的右键菜单
日志对话框的底部面板也有右键菜单,你可以:
显示选中版本中的选中文件的差异。
这个操作只对显示为已修改的文件有效。
评审选中文件的选中版本与前一个版本,使用可视化差异工具显示差异。
获取更多的日志信息
日志对话框并不总是显示所有曾经的修改,日志不显示的可能原因如下:
对于一个大的库,可能存在几百上千个改动,全部得到它们可能要花上很久的时间。
通常你只关心最近的修改。
默认情况下,日志消息限制只获取100条,但你可以在TortoiseSVN→设置中修改这个值(“TortoiseSVN的设置”一节),
当复制/重命名时停止复选框被选中时,如果选中的文件或文件夹是从版本库中的其他地方复制而来的,显示日志将停止在该点。
这对于查看分支(或标记)时很有用,因为它会停在分支的根节点上,可以快速查看该分支的修改。
一般情况下你可以不要勾选它。
TortoiseSVN会记住它的状态,以改进性能。
如果你在从合并对话框中调用的显示日志对话框,那么这个复选框默认将总是选中的。
这是由于合并通常都是查看分支中的修改,获取分支的根之前的日志在这种情况下通常没有什么意义。
注意,Subversion当前是用复制/删除来实现重命名的,所以重命名一个文件或文件夹也会造成日志显示停止(如果选择了复制/重命名时停止)在该点。
如果你要查看更多的日志信息,点击下100个,以获取下100个日志信息。
如果有需要你可以多次重复这个操作。
这个按钮旁边的是一个多功能按钮,它可以记住上一次你要它进行的操作。
点击它上面的箭头,可以看到更多的选项。
如果你要查询指定范围的版本,使用显示范围...。
这会出现一个对话框,要求输入开始和结束的版本。
如果你要查询从最新版本直到版本1的所有的日志消息,使用显示所有。
1.20.修改日志消息和作者
有时你可能想要修改你曾经输入的日志消息,也许是因为有拼写错误或是你想改进消息内容,或是其他别的原因。
偶尔你还想修改提交者,可能是你忘了设置认证等原因。
Subversion允许你在任何时候修改日志消息和作者。
但这种改变不可还原(不在版本控制之下),正因如此,这些功能默认是不可用的,如果要开启它,必须设置一个pre-revprop-change钩子。
具体如何做,请参考《使用Subversion进行版本管理》的相关章节钩子脚本。
在Windows机器上实现钩子的注意事项请阅读“钩子脚本”一节。
一旦你按需要为服务器设置了钩子,你就可以使用日志对话框顶部面板的右键菜单来修改任意版本的作者和日志信息了。
1.21.警告
由于Subversion的版本属性不受版本控制,对于这种属性的修改(如svn:
log提交信息属性将永久覆盖该属性之前的值。
1.22.过滤日志信息
如果你只想要显示上千条日志中你所感兴趣的日志,你可以使用日志对话框顶部的过滤器控件。
开始和结束日期控件允许你查看指定日期范围内的输出。
查找框帮你查出含有指定内容的信息。
要注意的是,这些过滤器只对已经获取的信息有效。
它们并不从版本库中下载信息。
你还可以使用隐藏无关的修改路径复选框来过滤底部面板中的路径名称。
所谓相关路径,是指那些与日志相关的路径。
对于一个文件夹的日志来说,相关路径就是该文件夹以其下的所有内容。
对于一个文件的日志来说,相关路径就是与该文件的路径。
该复选框是3态的:
可以显示所有的路径,将无关的内容灰色显示,或是完全隐藏无关路径。
1.22.1.统计信息
统计按扭,可以显示一些你感兴趣的关于日志对话框中版本的信息。
可以显示已经有几个作者做了工作,他们各提交了几次,按周的统计,等等。
现在,你可以发现一个大概情况:
谁最勤快,谁偷懒。
1.22.2.统计页
此页可以提供所有你可以想到的数据,特别是周期和包括的版本数,还有一些最大/最小/平均值。
1.22.3.作者提交次数统计页
图1.4.7.8.1.作者提交次数统计柱状图
此图用简单柱状图、叠加柱状图或饼图显示了哪些作者已经在项目中活跃了。
其中有几个主要作者和许多辅助的作者。
由于太小的部分会导致图形难于阅读,所以在底部有个滑动条,可以设置一个范围(占所有提交的百分比),在这个范围下的所有行为都整合成其他类。
1.22.4.按日期提交统计页
图1.4.7.9.1.按日期提交统计图
本页图示了以提交次数和作者作为条件的项目行为统计。
这里可以看出项目什么时候有人在工作,以及什么人在什么时候进行了工作。
如果有多个作者,你就会在图中看到多行。
有两种视图可用正常,在这里,每个作者的行为都相对于基线;叠加,在这里每个作者的行为是相对于他的下面那条线。
后一种视图避免了线的交叉,对于图来说更明了,但对查看一个作者的输出比较不直观。
默认统计是区别大小写的,也就是说用户PeterEgan与PeteRegan被认为是两个不同的作者。
但在多数时候用户名并不区别大小写,有时会存在不一致,所以你可能希望PeterEgan和PeteRegan能被当成是同一个作者。
使用作者不区分大小写复选框来控制。
注意,统计只包括了日志对话框中的那段时期。
如果日志对话框中只显示一个版本,那么统计就没有什么意义了。
2.售前及解决方案部SVN目录结构说明
2.1.售前及解决方案部SVN目录结构
图2.1.1SVN目录结构拓扑图
2.2.个人文件目录
【个人文件目录】按部门人员情况创建,为个人工作、学习情况反馈文件夹,将作为个人考核的依据。
每个人可“清晰、明朗”的原则,按照自己的风格部署个人文件,按月提交,并列出相关文档清单。
同时每个人只能够查看和修改自己的文件夹,无权限查看个人文件夹中其他成员的工作目录。
2.3.部门受控目录
【部门受控目录】为公共目录,由管理员管理,部门各个成员都有权限查看和进行相关下载。
【部门受控目录】中的资料具有可重复性。
2.3.1.培训
【培训】用于存放各类培训视频、文档等材料。
【培训】按照“时间与主题”方式命名。
比如“20120106售前及解决方案部培训—统一身份认证”
2.3.2.售前交流
【售前交流】用于存放售前交流的项目按资料,按照【现行项目】和【归档项目】划分。
【现行项目】中为正在进行的项目的所有资料,【归档项目】中为已经完成的项目的资料。
一个项目正在进行时,首先在【现行项目】中存放相关资料,当项目已经完成时,直接将【现行项目】中的相关文档,移植到【归档项目】中,进行归档,以便后续查找。
【现行项目】以“客户名称”方式创建子文件夹,在子文件夹中存放该客户的所有项目资料。
如“中海油天津分公司”
【归档项目】按“年份”划分,以“客户名称”命名。
如“中石化森美”。
2.3.3.方案文档
【方案文档】的划分与【售前交流】类似,划分为【现行项目】和【归档项目】两项。
【现行项目】中存放正在进行的项目的所有相关方案文档,包括《售前支持申请表》和《售前反馈表》。
【归档项目】用于存放已经完结的项目的相关方案文档,同样包括《售前支持申请表》和《售前反馈表》。
【现行项目】按’“项目名称划分”,如“中海油天津分公司”。
【归档项目】按“年份”划分,以“客户名称”命名。
如“中石化森美”。
2.3.4.招投标文档
【招投标文档】用于存放所有招标、投标资料。
【招投标文档】按三级目录划分,“年份”—“客户名称”—“项目名称”。
如2011年陕鼓动力的BPM平台项目的招标文档、投标文档,将存放在【2011】文件夹下的【陕鼓动力】中的【BPM平台项目】中。
产品资料
【产品资料】中用于存放售前解决方案及技术白皮书。
按【解决方案】和【技术白皮书】进行分类。
【解决方案】以“×××解决方案”命名。
如“财务一体化解决方案”。
【技术白皮书】以“×××白皮书”命名。
如“CIF产品白皮书”。
2.3.5.参考资料
【参考资料】包括【个人分享】、【竞争对手】、【行业基础技术】、【技术知识】、【期刊投稿】、【公司资讯】、【售前规章制度】、【他山之石】等。
【个人分享】用于存放部门人员分享的资料,具有可重复性。
【竞争对手】用于存放对手资料。
按“对手名称”命名。
如“用友软件”。
【行业基础知识】用于共享各个行业的基础知识。
按不同行业划分,如“金融”、“证券”。
【技
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SVN 使用手册