SVN客户端使用手册使用精华电子教案Word格式文档下载.docx
- 文档编号:13341782
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:16
- 大小:537.93KB
SVN客户端使用手册使用精华电子教案Word格式文档下载.docx
《SVN客户端使用手册使用精华电子教案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《SVN客户端使用手册使用精华电子教案Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
1.2签出源代码到本机
在本机创建文件夹StartKit,右键点击Checkout,弹出如下图的窗体:
在上图中URLofRepository:
下的文本框中输入svnserver中的代码库的地址,其他默认,点击OK按钮,就开始签出源代码了。
上图中的CheckoutDepth,有4个选项,分别是迁出全部、只签出下一级子目录和文件、只签出文件、只签出空项目,默认的是第一项。
上面的例子中,我们也可以使用web的方式访问代码库,在浏览器中输入
这时候也会弹出对话框,要求输入用户名和密码,通过验证后即可浏览代码库中的内容。
源代码已经成功签出到刚才新建的StartKit目录中。
打开StartKit目录,可以看到如下图的文件夹结构:
一旦你对文件或文件夹做了任何修改,那么文件或文件夹的显示图片机会发生变化。
下图中我修改了其中的二个文件
(附:
不同状态所对应的图片)
现在我们已经知道怎么将源代码签入到SVN服务器,怎么从服务器签出代码到本机,也简单了解了不同状态所对应的图案啦。
1.3提交修改过的文件到SVN服务器
上面的图2-2-7中,我修改了位于Model文件中的二个文件ImageInfo.cs和NewsInfo.cs,下面演示如何提交到SVN服务器。
注意:
提交源代码到服务器时,一定确保本机的代码是最新版本,否则可能提交失败,或者造成版本冲突。
在Model文件夹上点击右键或在Model文件下的空白处点击右键,点击SVNCommit…弹出下面的窗体:
点击ok。
1.4添加新文件到SVN服务器
我们在Model文件下添加一个新的类文件UserInfo.cs,在Model文件下的空白处点击右键,点击SVNCommit…,和上面讲的提交修改过的文件到SVN服务器一样,就可以了。
另外也可以在文件UserInfo.cs上点击右键,点击TortoiseSVN=>
>
Add,弹出如下图的窗体:
选中UserInfo.cs文件,点击OK按钮,这样并没有将这个文件提交到SVN服务器,只是将这个文件标记为源代码库库中的文件,并将其状态置为修改状态。
之后,我们要再SVNCommit这个文件一次,才可以将其真正提交到SVN服务器上的代码库中。
1.5更新本机代码与SVN服务器上最新的版本一致
这个也很简单,只要在需要更新的文件夹上点击右键或在该文件下的空白处点击右键,点击SVNUpdate,就可以了。
更新操作可能会因为版本冲突而失败,这是可以使用合并【Merge】或其他方法解决;
也可能因为锁定【GetLock】而失败,这是需要先解锁【ReleaseLock】。
1.6重命名文件或文件夹,并将修改提交到SVN服务器
只要在需要重命名的文件或文件夹上点击右键,点击TortiseSVN=>
Rename…,在弹出的窗体中输入新名称,点击OK按钮,就可以了。
此方法也不是直接重命名,而是将该文件或文件夹的名称标记为重命名后名称,也需要我们使用SVNCommit提交到SVN服务器后才真正重命名。
1.7删除文件或文件夹,并将修改提交到SVN服务器
最简单就是,你直接删除文件或文件夹,然后使用SVNCommit提交更新到SVN服务器。
另外一种方法是在你要删除的文件或文件夹上点击右键=>
TortoiseSVN=>
Delete删除,此方法也不是直接删除,而是将该文件或文件夹的状态置为删除,也需要我们使用SVNCommit提交到SVN服务器后才真正删除。
实际上,从你把源代码迁签入SVN服务器开始,每一个版本的数据和文件,就算是你已经删除了的,也都可以随时迁出。
向SVN服务器提交源代码的时候,一定不要提交bin、obj等文件夹,否则会很麻烦。
但是web项目的bin目录除外,但是web项目的bin目录中的引用其他项目而生成的dll不需要提交。
1.8.版本冲突原因:
假设A、B两个用户都在版本号为100的时候,更新了kingtuns.txt这个文件,A用户在修改完成之后提交kingtuns.txt到服务器,这个时候提交成功,这个时候kingtuns.txt文件的版本号已经变成101了。
同时B用户在版本号为100的kingtuns.txt文件上作修改,修改完成之后提交到服务器时,由于不是在当前最新的101版本上作的修改,所以导致提交失败。
版本冲突现象:
冲突发生时,subversion会在当前工作目录中保存所有的目标文件版本[上次更新版本、当前获取的版本(即别人提交的版本)、自己更新的版本、目标文件]。
假设文件名是kingtuns.txt
对应的文件名分别是:
kingtuns.txt.r101
kingtuns.txt.r102
kingtuns.txt.mine
kingtuns.txt。
同时在目标文件中标记来自不同用户的更改。
版本冲突解决:
场景:
1、现在A、B两个用户都更新kingtuns.txt文件到本地。
2、文档中原始文件内容如下:
3、A用户修改文件,添加内容“A用户修改内容”完成后提交到服务器
4、B用户修改文件,添加内容“B用户修改内容”完成后提交到服务器
B用户提交更新至服务器时提示如下:
B用户将文件提交至服务器时,提示版本过期:
首先应该从版本库更新版本,然后去解决冲突,冲突解决后要执行svnresolved(解决),然后在签入到版本库。
在冲突解决之后,需要使用svnresolved(解决)来告诉subversion冲突解决,这样才能提交更新。
解决冲突有三种选择:
A、放弃自己的更新,使用svnrevert(回滚),然后提交。
在这种方式下不需要使用svnresolved(解决)
B、放弃自己的更新,使用别人的更新。
使用最新获取的版本覆盖目标文件,执行resolvedfilename并提交(选择文件—右键—解决)。
C、手动解决:
冲突发生时,通过和其他用户沟通之后,手动更新目标文件。
然后执行resolvedfilename来解除冲突,最后提交。
解决步骤如下:
1、
在当前目录下执行“update”(更新)操作
2、
在冲突的文件上(选中文件--右键菜单—TortoiseSVN—Editconflicts(解决冲突)),出现如下窗口
Theirs窗口为服务器上当前最新版本
Mine窗口为本地修改后的版本
Merged窗口为合并后的文件内容显示
3、
如果要使用服务器版本,在Theirs窗口选中差异内容,右键,选择Usethistextblock(使用这段文本块)。
同理如果要使用本地版本,在协商后,在Mine窗口右键,选择Usethistextblock(使用这段文本块)。
4、
修改完成后,保存kingtuns.txt文件内容。
5、
在B用户的冲突目录下,选中文件--右键菜单—TortoiseSVN—Resolved(解决)。
会列出冲突的文件列表,如果确认已经解决,点OK。
6、
冲突解决
7、提交解决冲突后的文件。
如何降低冲突解决的复杂度:
1、当文档编辑完成后,尽快提交,频繁的提交/更新可以降低在冲突发生的概率,以及发生时解决冲突的复杂度。
2、在提交时,写上明确的message,方便以后查找用户更新的原因,毕竟随着时间的推移,对当初更新的原因有可能会遗忘
3、养成良好的使用习惯,使用SVN时每次都是先提交,后更新。
每天早上打开后,首先要从版本库获取最新版本。
每天下班前必须将已经编辑过的文档都提交到版本库。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SVN 客户端 使用手册 使用 精华 电子 教案