[No000092]SVN学习笔记3-Import/Checkout(迁入/迁出),GetLock(加锁)
一、TortoiseSVN Client 获取服务器端的文件到新的本地文件夹
1.在本地新文件夹上右键菜单:
2.打开Repo-browser(可能需要输入你的用户名&密码)
3.输入服务器端SVN(仓库)的地址,OK后就可以看到服务器端的目录了
@1.可以查看服务端不同版本号下的数据;
@2.如果想下载某个文件夹或文件,右键CheckOut;
@3.有些目录你可能没有权限。
上图中的Checkout Depth,有4个选项,分别是迁出全部、只签出下一级子目录和文件、只签出文件、只签出空项目,默认的是第一项。
上面的例子中,我们也可以使用web的方式访问代码库,在浏览器中输入:SVN服务器中的代码库地址,然后输入你的用户名&密码即可
4.点击确认后,即可将服务器端的数据下载到本地文件夹。
当数据下载完成后,该文件夹我们称之为Work Copy文件夹,打开该文件夹
其中.svn是隐藏文件夹啊,保存文件/文件夹版本状态等数据。
5.打开项目文件后,新建,修改文件/文件夹,其对应状态会发生改变:
可以设置对应图标:右键TortoiseSVN->Settings
当你通过commit(提交)后,有时候图标并没有及时变更,因为Windows本身的问题,此时,多按F5几次,应该就可以解决这个问题。如果,仍然不行,表示您之前的commit动作有问题。
为了确保您工作目录中的档案与大家的档案是同步的。建议您在编辑前都先进行更新的动作。在此,我们都先假设您已经将档案Checkout(迁出)过一次。现在要说明的是如何在一个Checkout过的目录进行update。在想要更新的档案或目录icon上面按下鼠标右键。并且选择SVN Update。
6. 有时我们需要回溯至特定的日期或是版本,这时就可以利用SVN的Update to revision的功能。在想要更新的档案或目录icon上面按下鼠标右键。并且选择SVN->Update to revision。
可以回溯到Head revision。当然也可以选择特定的版本。记不住版本就选择show log选择一个!
二、TortoiseSVN Client加锁操作
1.如果某个项目是由你单独复制或者某个项目某段时间由你负责,你可以在每次改动前都Get lock,这样其他人就不能更改此文件了。 不然两个人修改同一个文件的话就麻烦了。锁上后显示一个小锁!没反应就F5刷新!
2.修改完毕后当然要解锁了!Release lock!
三、签入(上传)源代码到SVN服务器
假如我们使用Visual Studio在文件夹TEST中创建了一个项目,我们要把这个项目的源代码签入到SVN Server上的代码库中里,首先右键点击TEST文件夹,这时候的右键菜单如下图所示:
点击Import,弹出下面的窗体
点击OK按钮,会弹出窗体,要求输入凭据(用户名&密码)
上传完成。源代码已经成功签入SVN服务器了。这时候团队成员就可以迁出SVN服务器上的源代码到自己的机器了。
四、提交修改过的文件到SVN服务器
我修改了位于Model文件中的二个文件ImageInfo.cs和NewsInfo.cs,下面演示如何提交到SVN服务器。
注意:提交源代码到服务器时,一定确保本机的代码是最新版本(现update一下),否则可能提交失败,或者造成版本冲突。
在Model文件夹上点击右键或在Model文件下的空白处点击右键,点击SVN Commit…弹出下面的窗体:
点击OK按钮后,弹出如下图的窗体:
五、添加新文件到SVN服务器
我们在Model文件下添加一个新的类文件UserInfo.cs,在Model文件下的空白处点击右键,点击SVN Commit…,和上面讲的提交修改过的文件到SVN服务器一样,就可以了。
另外也可以在文件UserInfo.cs上点击右键,点击TortoiseSVN=>>Add,弹出如下图的窗体:
选中UserInfo.cs文件,点击OK按钮,这样并没有将这个文件提交到SVN服务器,只是将这个文件标记为源代码库库中的文件,并将其状态置为修改状态。之后,我们要再SVN Commit这个文件一次,才可以将其真正提交到SVN服务器上的代码库中。
上面讲是添加文件,实际上,添加文件夹的步骤也是一样的,这里就不说了。
六、更新本机代码与SVN服务器上最新的版本一致
这个也很简单,只要在需要更新的文件夹上点击右键或在该文件下的空白处点击右键,点击SVN Update,就可以了。
注意:更新操作可能会因为版本冲突而失败,这时可以使用合并【Merge】或其他方法解决;也可能因为锁定【Get Lock】而失败,这是需要先解锁【Release Lock】。
七、重命名文件或文件夹,并将修改提交到SVN服务器
只要在需要重命名的文件或文件夹上点击右键,点击TortiseSVN=>>Rename…,在弹出的窗体中输入新名称,点击OK按钮,就可以了。此方法也不是直接重命名,而是将该文件或文件夹的名称标记为重命名后名称,也需要我们使用SVN Commit提交到SVN服务器后才真正重命名。
八、删除文件或文件夹,并将修改提交到SVN服务器
最简单就是,你直接删除文件或文件夹,然后使用SVN Commit提交更新到SVN服务器。另外一种方法是在你要删除的文件或文件夹上点击右键=>>TortoiseSVN=>>Delete删除,此方法也不是直接删除,而是将该文件或文件夹的状态置为删除,也需要我们使用SVN Commit提交到SVN服务器后才真正删除。
说明:实际上,从你把源代码迁签入SVN服务器开始,每一个版本的数据和文件,就算是你已经删除了的,也都可以随时迁出。
以上只是TortoiseSVN最简单的几个功能,其实他的功能远不止这些,其他的功能大家可以在使用的过程中慢慢体会,有些功能我会在下面的教程中使用到,到时候会和大家讲清楚用法。
注意:向SVN服务器提交源代码的时候,一定不要提交bin、obj等文件夹,否则会很麻烦。但是web项目的bin目录除外,但是web项目的bin目录中的引用其他项目而生成的dll不需要提交。
一个好习惯:如果项目中引用了其他的第三方的程序集,比如EnterpriseLibrary、FCKEditor等,这时候不要简单从他们的安装位置引用,而是在你的解决方案下,添加一个Library的目录,把需要的程序集复制到这里,然后从Library目录引用,这样有什么好处,自己想一想吧!
转载于:https://www.cnblogs.com/Chary/p/No000092.html
[No000092]SVN学习笔记3-Import/Checkout(迁入/迁出),GetLock(加锁)相关推荐
- svn拉取文件合并_svn如何使用import目录作为工作拷贝+我的svn学习笔记
前奏 svn作为一款极其优秀的开源版本控制系统,应用广泛,从组织到个人遍及各行各业.因此学习和熟练掌握它,对提高我们日常工作效率和数据安全非常重要,尤其对开发人员协同管理Project的文档,代码,各 ...
- SVN学习笔记11 -- Eclipse 中 SVN的相关操作 -- checkout and update
在此提及一下,笔记9中需要插件的连接我已经进行更新,需要的小伙伴可以去下载哈!我上传的,不要积分! 好,接下来我就做回项目组成员喽! 1.checkout 我们打开另一个eclipse 工作空间(模拟 ...
- SVN 学习笔记 (二,一口气学会SVN)
博客分类: 版本管理 我打算一口气讲完SVN的使用,所以,在看之前呢,请先深深的吸一口气(怎么听着像黑龙公主),当然吸完后还是要呼出来的.不要憋着了. 我们可能希望一来就直接操作.列出一堆命令.详细的 ...
- SVN 学习笔记二(一口气学会SVN)
我打算一口气讲完SVN的使用,所以,在看之前呢,请先深深的吸一口气(怎么听着像黑龙公主),当然吸完后还是要呼出来的.不要憋着了. 我们可能希望一来就直接操作.列出一堆命令.详细的命令参数等信息,我们都 ...
- SVN 学习笔记-高级操作
所谓高级操作,只是曲高和寡,其实都不怎么用的.但是关键时候,可能会很有用. 这个高级只是针对基本操作而言.有些操作可能也是比较基本的. 清除锁 有时候我们在操作的时候,可能系统崩溃了,或者SVN非正常 ...
- Python学习笔记:Import详解2
目录 目录 一 module 二 package 一模块 一 module 通常模块为一个文件,直接使用import来导入就好了.可以作为module的文件类型有".py".&qu ...
- svn学习笔记(一)
一.svn介绍 1.1 项目管理中的版本控制问题 通常软件开发由多人协作开发,如果对代码文件.配置文件.文档等没有进行版本控制,将会出现很多问题: 备份多个版本,占用磁盘空间大 解决代码冲突困难 容易 ...
- 银河计算机网络,python学习笔记
python学习笔记 #####################20170820 import os os.chdir('/tmp')#更改目录 os.mkdir('/tmp/dir')#创建目录 o ...
- Python快速编程入门#学习笔记01# |第一章 :Python基础知识 (Python发展历程、常见的开发工具、import模块导入)
全文目录 ==先导知识== 1 认识Python 1.1.1 Python的发展历程 1.1.2 Python语言的特点 2. Python解释器的安装与Python程序运行 1.2.1 安装Pyth ...
最新文章
- 专栏-美国人口和都市区
- 北京某打工子弟学校之一
- spring初始化bean时执行某些方法完成特定的初始化操作
- razor java,如何在Razor中声明局部变量?
- CImg库【C++】
- JS经常使用正則表達式【分享】
- 中小微企业税务数据的指标分析
- 洛谷P1982 小朋友的数字
- windows配置phpredis
- 【优化求解】基于matlab遗传算法求解多城市多应急物流中心选址问题【含Matlab源码 1724期】
- P值计算(Excel)
- java int short区别_Java基础之数据比较Integer、Short、int、short
- 求超大文件上传方案( c# )
- proxy代理解决跨域问题
- 【springboot】.isEmpty()和ObjectUtils.isEmpty()的使用注意点
- temp.....................
- 蓝桥杯 ALGO-6 安慰奶牛
- 过程参数仪表与检测课后作业知识点总结
- Ubuntu 10.04 在 Vmware 虚拟机下安装 vmware tools
- [AHK]双击^键为ctrl+o,单击^输出6,三击。。。功能你想吧