SVN客户端操作指南V10.docx
《SVN客户端操作指南V10.docx》由会员分享,可在线阅读,更多相关《SVN客户端操作指南V10.docx(59页珍藏版)》请在冰豆网上搜索。
SVN客户端操作指南V10
TortoiseSVN客户端操作手册
1.0基本操作
1.1客户端安装
1.为了统一管理的需要,TortoiseSVN的客户端统一使用“TortoiseSVN-1.7.6版”,请从服务器共享目录中获取“SVN安装包”,解压之后获取“TortoiseSVN”安装文件“TortoiseSVN-1.7.6.22632-win32-svn-1.7.4.msi”,依据提示在本地完成TortoiseSVN的安装。
2.关于设置TortoiseSVN属性。
(1)不建议用户在右键Settings菜单中修改TortoiseSVN客户端的属性。
(2)图标覆盖必选项为:
Added,Needs-lock。
1.2常用快捷键操作
1.对文件/文件夹点击右键,可以调出“TortoiseSVN”快捷键菜单。
如图1.2-1所示:
图1.2-1右键快捷菜单
2.按住“Shift”键的同时点击右键,可以调出“TortoiseSVN”右键扩展菜单(扩展项有“Delete(keeplocal)”等)。
如图1.2-2所示:
图1.2-2右键扩展菜单
1.3检出项目文件Checkout
1.3.1通过URL地址检出文件
1.在本地硬盘上新建一个文件夹,并重新命名。
假设该文件夹名为WorkRoot,对该文件夹点击鼠标右键,鼠标移动到TortoiseSVN选项上,然后选取SVNCheckout选项,系统弹出如下图1-1所示窗口:
图1-1Checkout
2.如图1-1所示,在URL中输入SVN服务器地址;选择本机存放的目录(系统默认为当前所选的文件夹所在目录);选择Revision时系统默认选项是HEAD,即最新版本,如果用户需要下载最新版本的项目文件,可以选取第二个选项(Revision),然后点击“OK”,这个时候如果系统要求输入用户名和密码,用户填写完自己的SVN用户名和密码之后点击“OK”即可进行下载,如图1-2所示:
图1-2系统提示输入用户名及密码
3.完成上述步骤后,版本库中的项目文件就被下载到本地了,下载完成之后系统会提示并且显示当前最新的版本号。
如图1-3,图1-4所示:
图1-3系统提示下载成功
图1-4下载好的SVN项目文件
2.0文件操作
2.1日志填写Message
注意:
1.每一个用户对于自己每次的修改和提交都必须有针对性的留下日志信息。
2.用户在提交日志时,与项目相关的日志必须使用“英文”书写。
3.对于每一份提交的日志,管理员都会加以管理,用户严禁修改。
2.1.1书写格式
为了规范SVN管理,本文当规定日志的书写格式如下:
:
:
=
:
=-Added
-Needs-lock
-Renamed
-Getlock
-Releaselock
-Modified
-Commit
-Removed
:
=AmoredetaileddescriptionoftheAction.
2.1.2查看日志
注意:
对于日志提示的各种图标所代表的具体信息,请参考“TortoiseSVN”的帮助文件第4.9.2节《版本日志动作:
RevisionLogActions》。
1.用户通常使用右键快捷菜单中的“ShowLog”命令来查看文件或者文件夹的日志,如图2.1-1,图2.1-2所示:
图2.1-1选择Showlog命令
图2.1-2查看日志
2.查看日志的其他方法。
(1)右键点击文件或者文件夹,选择Windows属性,然后在属性窗口中选择Subversive项,点击右下方的“Showlog”按钮即可查看该文件或者文件夹的日志,如图2.1-3,图2.1-4所示:
图2.1-3选择Windows属性
图2.1-4选择Subversive项中的“Showlog”按钮
(2)在每次“提交Commit”文件或者文件夹时,在填写“日志Massage”栏上方也有一个“Recentmessages”按钮可以查看该文件的历史日志,如图2.1-5,图2.1-6所示:
图2.1-5点击“Recentmessages”按钮
图2.1-6简单查看文件的历史日志
2.2新增Added
注意:
新增或者取消新增,可以一次操作单个文件/文件夹,也可以一次操作多个甚至全部文件/文件夹,请大家谨慎使用。
2.2.1新增流程图
新增流程图如图2.2-1所示:
图2.2-1新增流程图
2.2.2新增文件
1.选择保存新增文件的目标文件夹,将需要新增的文件拷贝进去,对该文件点击右键,选择“TortoiseSVN”再选择“Add”,如下图2.2-1所示:
图2.2-1选择“Add”
2.成功添加“Add”之后,需要新增的文件上会有一个“加号”的标记,如下图2.2-2所示:
图2.2-2“Add”之后显示加号
3.如果用户此时又不愿意新增该文件,需要对该文件点击右键,选择“TortoiseSVN”再选择“UndoAdd”,然后再弹出的窗口中选择需要取消“Add”的文件之后点击“OK”,成功之后系统会提示“Completed”但不更新版本,如下图2.2-3,图2.2-4,图2.2-5所示:
图2.2-3选择“UndoAdd”
图2.2-4勾选需要取消新增的文件
图2.2-5TortoiseSVN提示取消新增成功
4.用户确认需要将新增的文件添加到数据库中,右键点击已经“Add”的文件选择“SVNCommit”,如图2.2-6所示:
图2.2-6提交文件
5.点击“SVNCommit”之后在弹出的系统窗口中输入“Massage”日志(必须填写),然后点击“OK”按钮,系统会提示该文件成功添加并且更新一个“版本号”,如图2.2-7,图2.2-8所示。
图2.2-7填写“Massage”日志
图2.2-8系统提示提交成功并且更新版本号
2.2.3新增文件夹
注意:
文件夹的新增与文件相同,请参考2.2.1进行相关操作。
2.3加锁Needs-Lock
注意:
1.在默认情况下,SVN库中的所有的文件都没有被锁定,只要有提交权限的用户都可以在任何时候提交任何的文件。
2.如果对一个文件进行锁定,那么只有锁定人可以提交这个文件。
其他用户的提交都会被拒绝,不能在库中进行任何形式的合并,也不能被锁定人之外的人删除或更名,直到锁定人释放了这个锁。
2.3.1加锁
1.如果一个文件需要被加锁,对该文件点击右键选择“TortoiseSVN”,在选择“Properties”项,如图2.3-1所示:
图2.3-1选则参数项
2.在弹出的系统窗口中选择“New”,然后选择“Needs-Lock”,选择“Lockingrequired(read-onlyupdate)”项,之后“Needs-only”属性被成功添加给该文件,如图2.2-10
,图2-10,图2-11所示。
图2-9选择“Needs-Lock”属性
图2-10选择只读
图2-11成功添加“svn:
needs-lock”属性
3.对文件添加完属性之后,文件图标呈修订状态,需要对其进行提交“Commit”操作并填写“Massage”日志,如图2-12,图2-13,图2-14所示:
图2-12未提交的加锁文件
图2-13对文件进行提交操作并填写日志
图2-14提交成功的加锁文件
4.当一个文件拥有“svn:
needs-lock”属性的时候,每当该文件检出或更新时,除了该文件的拥有者,其他用户的本地副本都被设成只读并呈灰色,这么做是为了能警告你,你不应该修改这个文件,除非你申请到了锁定(参考2.6.1)。
受控只读的文件在TortoiseSVN中用一个特殊的图标(置灰)来表示你需要在编辑前取得锁定。
如图2-15所示:
图2-15加锁文件被置灰且为只读属性
5.如果你继续对一个文件解锁,但该锁的拥有人却因故无法及时解锁,TortoiseSVN提供了一种“强制解除”他人锁定的功能——“偷锁Stealthelock”。
此功能在工作中严禁使用。
2.3.2新增文件自动加锁
注意:
如果用户想实行一个每个文件必须被锁定的策略,那么可以使用auto-props功能来为每次新添加的文件自动设置属性(如svn:
needs-lock)。
2.4重命名Renamed
2.4.1重命名流程图
重命名流程图如图2.4-1所示:
图2.4-1重命名流程图
2.4.2重命名文件
1.选定需要重命名的文件,对其点击右键选择“TortoiseSVN”,然后选择“Rename”选项,如图2-16所示:
图2-16选择“Rename”
2.在弹出的窗口中输入新文件名,如图2-17所示:
图2-17输入新名称
3.点击“OK”之后,SVN会以用户新命名的名称创建一个副本且该副本处于“新增未提交状态”,同时SVN会在本地副本中删除原文件,如图2-18所示灰色的原件会被删除,蓝色Add文件为SVN新创建的副本:
图2-18SVN生成用户重命名的文件
4.对SVN新生成的重命名文件点击右键选择“SVNCommit”项,在弹出的系统窗口中填写“Massage日志”,填写完成后点击“OK”,如图2-19,图2-20所示:
图2-19选择SVNCommit
图2-20填写Massage日志
5.提交成功之后系统会提示“CommitFinished”并且更新版本号,此时被重命名的文件会以新名称保存在SVN库中,并且保持原先的属性(如加锁,只读等),SVN会生成一个新的Revision,如图2-21(Revision:
123),图2-22所示:
图2-21提交成功
图2-22本地文件重命名完成
6.用户完成本地文件重命名之后还需要将该文件所在的文件夹提交至SVN库中
,以便删掉原先的旧文件。
对该文件所在的文件夹点击右键选择“提交Commit”,在系统弹出的窗口中可以清晰的看到原文件“Tset1”的状态为“Deleted”,填写“日志Massage”之后,点击“OK”系统会提示提交完成,并且会再生成一个新的版本号,如图2-,图2-所示:
图2-文件夹提交
图2-被重命名的原文件被删除
7.提示:
重命名的时候还有两种情况需要注意。
(1)如果用户在重命名一个文件之后,临时决定不进行重命名操作,只要还未将整个文件夹“提交Commit”,那么只要在该文件所在的文件夹中选择右键菜单的“TortoiseSVN”项,再选择“Revert”项,在选择需要恢复的文件之后点击“OK”即可将原文件恢复,如图2-图2-所示:
图2-选择恢复命令
图2-选择需要被恢复的删除文件
恢复了被删除的原文件之后,我们需要再删除因为重命名操作而保存在SVN库中的文件副本。
对该文件点击右键选择“TortoiseSVN”项,再选择“Delete”项会立即在本地副本中删除该文件,此时该文件所在的文件夹图标呈“红色修改”状态,对该文件夹点击右键选择“提交Commit”,在弹出的系统对话框中输入“日志Massage”然后点击“OK”,之后系统会提示删除成功并且更新一个新的版本号“Revision”,如图2-图2-图2-所示:
图2-选择删除命令
图2-文件夹呈红色修改状态
图2-提交文件夹
图2-填写日志Massage
图2-系统显示删除成功并且更新版本号
(2)另一个需要的注意点是:
如果需要重命名的文件已经被其他用户“获取锁定”,那么该文件只能创建新名称的副本(操作与前文相同),但是在提交“文件夹”时无法删除原文件,系统会提示该原文件已经被其他用户锁定,如图2-,图2-所示:
图2-填写日志Massage并删除原件
图2-系统提示原文件被锁定“Locked”无法删除
2.4.3重命名文件夹
重命名文件夹的操作与文件的重命名基本相同,唯一的一点区别是:
系统不会为文件夹生成新名称的副本。
2.5锁Locked
注意:
TortoiseSVN中,我们使用“锁定-修改-解锁”的模型来进
2.5.1用户获取锁GetLock
注意:
(1)如果用户希望对SVN中的某一个文件进行编辑,且此文件恰好被锁定并且处于只读状态,那么用户需要先对该文件获取一个许可(即一个锁GetLock)之后(仅该用户)才能对文件进行直接编辑,否则编辑过的文件将会在本地另存为副本。
(2)唯一性:
对于一个加锁的只读文件,如果有一个用户对其获取锁定,那么其他任何用户都无法在对该文件获取锁定。
(此时严禁使用“偷取锁Stealthelocks”功能。
)
(3)可编辑性:
对于一个加锁的只读文件,任何用户都可以对其编辑,但无法直接在SVN库中进行保存,只能在本地保存副本。
(4)任何已经被获取锁的文件,都无法再进行“重命名”、“删除”等操作。
1.对需要编辑的文件点击右键,选择“SVNGetLock”项,如图2-23所示:
图2-23选择获取锁
2.在弹出的窗口中填写“Massage日志”,注意左下角“偷取锁Stealthelocks”的功能严禁使用,如图2-24所示:
图2-24填写Massage
3.填写完毕后,点击“OK”,系统会提示获取成功,如图2-25所示:
图2-25成功获取锁
4.获取锁之后,我们选择的Test3文件的图标变为绿色,并且可以进行编辑,如图2-26所示:
图2-26可编辑文件呈绿色
5.用户对该文件编辑完成之后对自己获取的“锁定许可”有两种操作。
(1)不保留锁定许可。
(此方法也是2.5.2节中所介绍的“释放锁”的一种方法)
用户对该文件编辑完成之后,对其点击右键选择“SVNCommit”项,在弹出的系统窗口中填写“日志Massage”,注意窗口左下角的“Keeplocks”选项,如果用户决定“不保留”获取的“锁定许可”则不用勾选,点击“OK”之后该文件将被提交至SVN库中并且生成一个新的“Revision编号”,并重新恢复到“锁定只读”状态且图标被“置灰”,如图2-27,图2-28,图2-29所示:
图2-27不保留锁定许可
图2-28提交成功
图2-29“不保留锁定许可”文件恢复只读锁定并且置灰
(2)保留锁定许可。
用户对该文件编辑完成之后,对其点击右键选择“SVNCommit”项,在弹出的系统窗口中填写“日志Massage”,注意窗口左下角的“Keeplocks”选项,如果用户决定“保留”获取的“锁定许可”则勾选此项,点击“OK”之后该文件将被提交至SVN库中并且生成一个新的“Revision编号”,文件保留用户早先获取的锁定许可,文件依旧为“可编辑状态”并且图标为“绿色”,如图2-30,图2-31,图2-32所示:
图2-30保留锁定许可
图2-31文件提交成功
图2-31“保留锁定许可”文件仍为可编辑状态
6.锁在SVN库中进行记录,一个“锁定许可”会建立在你的本地工作副本中。
如果有矛盾,比如某人破坏了锁,那么本地的“锁定许可”将无法使用。
SVN库中的记录将是最权威的参考。
2.5.2用户释放锁ReleaseLock
注意:
根据2.5.1节中的锁定的唯一性,若一个具有“锁定只读”属性的文件被一个用户获取了锁定许可,那么其他任何用户都无法在对此文件获取锁(此时严禁使用“偷取锁Stealthelocks”的功能)。
SVN的这种属性可能对日常工作造成不便,所以在日常工作中,如果有用户对一个文件获取了“锁定许可”,那么在对该文件编辑完成之后应当及时“释放锁定”以便他人继续进行工作。
释放锁有以下两种方式:
1.右键直接选择释放。
(1)如果一个用户对一个文件获取了“锁定许可”,那么在该用户完成相关操作之后,可以对此文件点击右键选择“TortoiseSVN”,再选择“ReleaseLock”,如图2-32所示:
图2-32选择释放锁定
(2)在弹出的系统窗口中选择一个或者多个需要释放锁定的文件,然后点击“OK”,释放完成之后系统会提示操作完成,之后被释放锁的文件恢复到原先“锁定只读”状态且图标“置灰”,如图2-33,图2-34,图2-35所示:
图2-33选择需要释放锁定的一个或者多个文件
图2-34完成释放锁的操作
图2-35被释放锁定的文件恢复原先状态且图标置灰
2.提交时不选择“Keeplocks”。
具体参见2.5.1节中,第5步,第
(1)点。
2.5.3检查锁定状态
注意:
当用户不确定一份文件是否被他人“获取锁定”且正在修改,那么用户应当对文件使用“检查锁定状态”的操作。
建议各位同事不论在何时,只要进行文件编辑工作的时候,都先进行“检查锁定状态”的操作。
1.户希望查看某一个文件是否有被他人“锁定”时,可以对该文件或者对该文件所在的文件夹点击右键,选择“TortoiseSVN”项,然后选择“Checkformodifications”项,之后所有锁定信息会立即在本地显示出来,如图2-36,图2-37所示:
图2-36选择检查修改
图2-37查看文件/文件夹锁定信息
2.当用户希望查看SVN库中有哪些文件被锁定且被哪个用户锁定时,可以点击
右键,选择“TortoiseSVN”项,然后选择查看版本库“Repo-browser”项,在弹出版本库系统窗口中可以查看所有文件的锁定属性,如图2-38,图2-39所示:
图2-38选择查看版本库
图2-39版本库中Lock栏显示了所有文件的锁定属性
2.6修改Modified
注意:
在日常工作中,我们应当时刻了解自己修改了哪些文件,哪些文件正在被别人修改或者别人已经修改并提交。
(1)我们需要使用右键快捷菜单中的“检查修改Checkformodifications”命令,来查看自己当前工作副本中有任何形式修改的文件和所有当前存在的未受控的文件,如图2.6-1所示:
图2.6-1检查修改窗口
(2)我们需要使用右键快捷菜单中的“查看版本Repo-browser”命令,来查看SVN库中的文件正在被那个用户修改、锁定或者查看其他属性,如图2.6-2所示,可以看到版本库中有三个文件被用户锁定:
图2.6-2查看SVN库文件的属性
2.6.1修改文件
根据前面章节所讲内容,将修改文件的一般操作画为流程图以供参考,具体如图2.6-3所示:
图2.6-3文件修改流程图
2.6.2比较修改的文件
在对文件的修改过程中,用户可能会需要了解文件中到底修改了什么部分,SVN提供了一种比较功能。
1.文件当前版本和上一版本之间的比较。
选择目标文件,点击右键选取“TortoiseSVN”项,然后选择“Diffwhitpreviousversion”即将当前文件与其前一版本比较,如图2.6-4,图2.6-5所示:
图2.6-4选择与前一版本比较
图2.6-5对比效果图
2.比较两个文件之间的差异
按住Ctrl键然后选择需要做比较的两个文件,之后对选中的文件点击右键,选择“TortoiseSVN”项,然后选择“Diff”项,即可对两份文件进行对比,如图2.6-6,图2.6-7,图2.6-9所示:
图2.6-6选取需要对比的两个文件
图2.6-7选择Diff项
图2.6-8对比效果图
2.7删除Removed
注意:
使用右键快捷菜单“TortoiseSVN”中“删除Deleted”操作任何文件或者文件夹,在没有提交之前都可以使用“TortoiseSVN”中的“Revert”选项进行恢复。
2.7.1删除文件流程图
删除文件的流程图如图2.7-1所示:
图2.7-1删除文件流程图
2.7.2删除文件
1.删除有版本控制的文件
(1)用户需要删除一个有版本控制的文件时,先右键点击目标文件选取“TortoiseSVN”项,在选择“Delete”选项之后立即将该文件从副本中删除,如图2.7-1所示:
图2.7-1使用“Delete”命令删除文件
(2)删除该文件之后,在其“父文件夹”上会覆盖一个红色警告的图标,用户确认需要将文件从SVN中删除是,右键点击此文件夹并“提交Commit”,在弹出的系统窗口中填写“日志Massage”,之后点击OK,系统会提示操作成功并且更新一个新的版本号,如图2.7-2,图2.7-3,图2.7-4所示:
图2.7-2确认删除并提交文件夹
图2.7-3填写日志Massage
图2.7-4提交成功并且更新版本号
(3)注意:
已经被其他用户“获取锁”的文件“无法删除”,如图2.7-5所示:
图2.7-5已经被用户获取锁定的文件无法删除
2.删除有版本控制的文件并保留其本地副本
注意:
删除有版本控制的文件时,用户可以选择在本地保留一个该文件的副本。
(1)用户按住“Shift”键同时右键点击需要删除的文件,选择“TortoiseSVN”项会跳出右键扩展菜单,选择其中的“Delete(keeplocal)”命令,系统会删除目标文件,并在当前文件夹中保存一份该文件的无版本控制的副本,用红色图标覆盖,如图2.7-6,图2.7-7所示,图2.7-8,图2.7-9所示:
图2.7-6选择右键扩展菜单中的“Delete(keeplocal)”命令
图2.7-7副本用红色图标覆盖
图2.7-8有版本控制的原文件属性
图2.7-9无版本控制的副本属性
(2)完成上述操作之后,该文件所在的“父文件夹”也被红色图标覆盖,用户需要提交此文件夹。
右键点击该文件夹选择“提交Commit”选项,在弹出的系统窗口中填写“日志Massage”(在此窗口中可以清楚看到原文件已被删除,状态为“Deleted”),填写完成之后点击“OK”,系统会提示操作成功并且生成一个新的版本号,此时再打开该文件夹可以看到被删除的文件已经脱离SVN的版本控制,如图2.7-10,图2.7-11,图2.7-12,图2.7-13,图2.7-14所示:
图2.7-10被删除文件所在的父文件夹
图2.7-11提交该文件夹
图2.7-12填写日志
图2.7-13删除成功SVN更新版本号
图2.7-14脱离SVN版本控制的副本
3.删除无版本控制的文件
用户在工作中有时会将一些无版本控制的临时文件加入到本地副本中(例如新建XXXX),为了避免在“提交Commit”时将这些文件提交至SVN库中,我们应当及时删除这些文件。
(1)对于无版本控制的文件,可以要对其进行“Windows”的删除操作即可对其进行删除。
(2)TortoiseSVN还提供了一种快速清理无版本控制文件的删除方法。
如果一个文件夹内存在未受到版本控制的文件,用户按住“Shift”键并点击右键选择“TortoiseSVN”项,调出扩展菜单后选择“Deleteunversioneditems”项,在弹出的系统窗口中SVN会列出所有未受到版本控制的文件供用户进行选择,用户选取需要删除的文件之后点击