基本概念
版本库
SVN保持数据的地方,所有的文件都保存在这个库中,Tortoise访问的就是远程服务器上的Subversion版本库。
工作拷贝
就是工作副本,可将版本库的文件拷贝到本地中,可以任意修改, 不会影响版本库。在你明确地做了特定操作(如commit/conflict)之前,Suvbversion不会把你的修改和其他人的合并,也不会把你的修改展示给别人,你甚至可以拥有同一个项目的多个工作拷贝。通常你的工作拷贝下都有一个以.svn命名的文件夹。
修订版本
当工作拷贝进行提交,版本库接受提交,版本库的内容就会变成工作拷贝的内容。 每当版本库接受了一个提交,文件系统进入了一个新的状态,叫做一次修订(revision),每一个修订版本被赋予了一个独一无二的自然数,一个比一个大。若初始修订号是0,说明版本库没有接受任何提交,是一个空目录。
注:Subversion的修订号是针对整个目录树的,而不是单个文件。每一个修订号代表了一次提交后版本库整个目录树的特定状态,另一种理解是修订号N代表版本库已经经过了N次提交。
导入(import)
将未被版本管理的代码引入SVN系统中,由此开始对它进行版本管理。
###导出(export)
指从版本库中导出文件至本地,但这些文件不受版本控制。
检出(checkout)
从版本库中检出文件至本地形成本地工作拷贝,这些文件受版本控制,是版本库的目录在本地的映射。
提交(checkin/commit)
将工作拷贝的变更内容提交至版本库。
冲突(conflict)
在协同开发的环境下,当两个开发人员对同一个文件的同一行代码进行修改,并且依次提交到仓库的时候,就发生了冲突。这种冲突需要手工消除,因此需要相关人员的沟通,并将形成的解除冲突之后的新版本提交到仓库中。
基本操作
图标设置
对于需要映射到网络磁盘上的工作拷贝显示图标。
查看图标含义
对增加、删除和修改的文件经图(2)设置后均会显示在工作拷贝的目录和文件上,不明白时可查看图中的设置。
SVN的访问方式
1、直接通过IE访问,即直接用URL地址搜索,这种形式只能查看配置库,下载有读
权限的文件,不能进行修改;
2、通过TortoiseSVN的版本库浏览器访问配置库,可执行
导出/导入/检出/提交等操作。
进入任一文件夹下,右键选择“TortoiseSVN -> 版本库浏览器” -> 输入URL地址(若初次进入会提示输入账号密码)
在跳出版本库浏览器索引栏输入配置库地址。详见下图
用户认证
认证
在访问配置库时,需要身份认证,将出现如下图登录界面。
若点击保存认证,客户端就会接收到一个认证请求,它会首先查找用户磁盘中的认证凭证缓存,如果没有发现,或者是缓存的凭证认证失败,客户端会提示用户输入这些认证信息。若保持之后,下次再次访问同一个URL时,不需要身份认证。
若需要清除认证信息,可在TortoiseSVN菜单下的“Settings(设置)”中进行如下设置。点击“Save Data”后清除按钮即可。(当没有保存认证时,改按钮显示灰色,不可用。)
工作周期
创建你的工作拷贝:SVN Checkout
更新你的工作拷贝:SVN Update
修改你的工作拷贝:add/delete/rename/copy/move
检验你的修改:check for modifications/ Diff
取消你的修改:revert
合并别人的修改到工作拷贝: (conflict)
提交你的修改:SVN Commit
checkout
功能:从版本库取出一个工作拷贝至本地。
操作:在弹出的对话框中输入版本库URL,本地工作拷贝路径,下载的版本号(默认为版本库当前最新版本),URL的深度可以自己控制。
注意事项:
(1)检出的版本库URL深度只能到目录,即只能检出文件夹,单个文件不能做检出;
(2)本地必须有一空的文件夹用于存放从版本库检出的工作拷贝;
update
功能:将版本库的最新版本合并到工作副本中。
操作:鼠标右击选中目录或文件,在Windows下使用右键菜单中SVN Update即可。
add
功能:将工作拷贝中新增加的文件,目录或符号链锁定添加到版本库,这些添加的对象会在commit时才真正上传并添加到版本库。只影响工作拷贝,在commit前不改变版本库内容。
操作:在工作拷贝中,使用右键菜单中的添加即可,此时的添加只是预添加。
注意:
1.添加的对象必须已经存在于当前工作拷贝路径内.若对象在工作拷贝路径外,请先用系统复制命令复制对象至工作拷贝对应路径内。在执行了svn的添加命令后,文件的符号标志由:
2.如果在提交前改变了主意,可以使用svn revert取消此预定(取消全部)。如果是单个目 录或单个文 件可以选择 Undo Add。
3.对于预增加的文件或目录,在未提交前,若需撤消增加,点击资源管理器中的“Revert”菜单,即可返回修改前的状态。
Delete
功能:删除工作拷贝中的目录或文件
变化:只影响工作拷贝,在commit前不改变版本库内容。
操作:
1、如果被删除的文件还未入版本库,则可以直接使用操作系统的删除操作删除该文件。
2、如果被删除的文件已入版本库,则删除的方法如下:
- 选择被删除文件,右键svn菜单执行”delete”操作,然后选择被删除文件的父目录,右键svn菜单执行”SVN Commit”.
- 使用操作系统的删除操作删除该文件,然后选择被删除文件的父目录,右键svn菜单执行”SVN Commit”,在变更列表中选择被删除的文件。
说明:
若是文件则工作拷贝中即刻删除,
若是目录,则目录中的文件被删除,文件夹保留,在目录上直观地显示出 来图标(X),
以上都是预删除过程,若需要将这些删除操作更新到版本库,则需要使用提交(Commit)操作。查看删除的文件,可点击资源管理器中的“check for modifications”菜单看变更状态。
Copy/Move
功能:将工作拷贝中需复制/剪切的目录或文件弄到目的文件夹中;
变化:只影响工作拷贝,在commit前不改变版本库内容;
操作:需要复制或移动的目录或文件拖放到目的文件夹中,再鼠标右击选取相应的操作,如下.
Rename
功能:对工作拷贝中的目录或文件进行重命名;
变化:只影响工作拷贝,在commit前不改变版本库内容;
操作: 右击选中需重命名的文件或目录,选择“rename”菜单,输入新的文件名后,工作拷贝中将出现重命名后的文件或目录,重命名前的文件或目录被删除。所有的操作在commit后方可更新到版本库。
注意:
Rename的过程其实分为两步:(1)add(2)Delete
说明:对工作拷贝中一个目录或文件进行rename完毕,下次提交时,在Commit对话框中,如下,两个状态的文档都要选上
Conflict
在执行commit操作时,如果发生冲突,就会有以下的界面出现,提 示“resource out of date,by updating”
解决步骤:
1、点“ok”按钮退出。
2、先执行update
3、然后commit
4、如果修改与update得到的代码不冲突,则自动合并。
注意:
在执行update操作时,如果发生冲突,就会有如下的界面出现,提示”One or more files are in a conflicted state“红色警告。说明出现冲突,说明多人对同一地方进行了修改,此时需要手动进行冲突的解决。
解决步骤:
1、选择冲突文件-〉”Edit conficts”
出现merge界面,分为”Theirs”、”Mine”和”Merged”3部分,表示”别人修改 的内容”、
”我修改的内容”和”合并后的结果”3部分。目标是将”别人修改的内容”和”我修改的内容”有取舍地合并起来,形成”合并后的结果”。
合并一般分为4种情况: 1、保留”我的修改”,舍弃”别人的修改”。鼠标右键点击Mine框的相应行,点 击”Use this text
block”。 2、舍弃”我的修改”,保留”别人的修改”。鼠标右键点击Theirs框的相应行,点 击”Use this text
block”。 3、同时保留”我的修改”和”别人的修改”,并将”我的修改” 放在前面。鼠标右键 点击Mine框的相应行,点击”Use
text block from mine before theirs”。
4、同时保留”我的修改”和”别人的修改”,并将”别人的修改”放在前面。鼠标右键 点击Mine框的相应行,点击”Use text block
from theirs before mine”。
2、合并完成,Ctrl+S存盘,退出;
3、选择冲突文件-〉”Resolved”,标记冲突已解决,系统自动删除因冲突而新建的文件;
4、继续进行commit操作;
Revert
功能:取消工作拷贝中的所有修改,回到修改前的状态,即回到Base 版本状态;
变化:只影响工作拷贝,不影响版本库;
操作:右击选种需撤消修改的目录或文件,执行”Revert”。
说明:
1、如果是工作拷贝的顶级目录,则撤销工作拷贝中的所有更改;
2、如果是工作拷贝中的子目录,则撤销子目录中的所有更改;
3、如果是单个文件,则撤销对单个文件的修改;
Commit
功能:提交修改,将修改从工作拷贝提交到版本库。影响工作拷贝和版本库,在提交后,版本库内容将与本地工作拷贝相同。
操作:选取需提交的文件或目录,点击“svn commit”菜单,选取完毕,若未保存认证的信息,则需要重新输入用户名与密码,系统认证是否有写的权限。
点击”OK”,进入以下界面,表示提交成功。
注意:提交的对象必须为相对版本库已做了修改的文件或目录,如预添加,预删除,或已修改的等,对于没有修改的目录或文件将不会进行提交。
查看更新
可查看工作拷贝上的变更,工作拷贝中缺的文件及与版本库中比较缺少的或更改的情况。
操作:右击文件或目录,选取资源管理器中的“check for modifications”,不点击”check repository”,只是与工作拷贝中的BASE版本比较,显示出变更的文件。否则将同时与版本库比较检查库中是否有了新的变动。
查看差异
1、文件差异比较
1.比较某个文件工作拷贝中的版本与checkout时的版本(即Base)之间的差 异,选取该文 件,点击右键,打开“比较差异”显示比较结果。
2.若需比较两个历史版本,打开版本分支图。选一个版本,按CTRL键再选另外一版本, 点击“比较版本差异”出现如图所示界面的比较结果。
2、比较目录的差异或整个版本的差异
在所在的目录下,点击右键,打开版本分支图。选一个版本,按CTRL键再。选另外一版本,点击“比较版本差异”出现如图所示界面的比较结果。
查看日志
查看某些版本的日志信息或所有版本的日志,默认情况是所有版本的,可点击”ShowRange”显示某些版本的变更日志信息。
文章来源:https://www.toymoban.com/news/detail-785488.html
标签
选取需打标签的目录,选取“分支/标记”,则将出现如图所示界面
文章来源地址https://www.toymoban.com/news/detail-785488.html
到了这里,关于TortoiseSVN的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!