当前位置: 首页 > news >正文

TortoiseSvn介绍

TortoiseSvn 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。

TortoiseSvn安装过程
下载后,运行 TortoiseSvn-1.6.11.20210-win32-Svn-1.6.13.msi 程序,点击Next,下面的截图顺序即为安装步骤: 
【步骤1】 安装界面见图。

 

【步骤2】选择安装地址,见图。

【步骤3】安装成功,见图

 

(点击Finish按钮后会提示重启系统,就算不提示重启也一定要手动重启,不然添加到代码库里的文件夹或文件就不会显示图标)

卸载完的时候也需要重启系统

 

TortoiseSvn配置和使用方法

    前面我已经讲解了怎样安装TortoiseSVN。在系列三讲解中已经讲了怎么使用VisualSVN Server了,下面是TortoiseSVN的简单使用方法。 
 安装了LanguagePack_1.6.5.16974-win32-zh_CN之后打开TortoiseSvn的设置界面选择中文语言,见下图

 

签入源代码到SVN服务器

【步骤1】签入文件操作,连接SVN服务器

假如我们使用Visual Studio在文件夹StartKit中创建了一个项目,我们要把这个项目的源代码签入到VisualSVN Server上的代码库中里,首先右键点击StartKit文件夹,导入文件夹

这时候的右键菜单如下图所示:

 

【步骤2】签入新的项目文件
 点击Import,弹出下面的窗体,见下图其中https://10.3.2.150是服务器名,svn是代码仓库的根目录,StartKit是我们在系列三中添加的一个代码库: 
【注意】
 左下角的CheckBox(包括忽略文件),在第一次签入源代码时没有用,但是,在以后你提交代码的时候是非常有用的。 

 

点击OK按钮,会弹出下面的窗体,见下图要求输入凭据:

 

在上面的窗体中输入用户名和密码,点击OK按钮,如下图所示。

 

如上图所示,好了,源代码已经成功签入VisualSVN Server服务器了。这时候团队成员就可以迁出VisualSVN Server服务器上的源代码到自己的机器了。

 

签出源代码到本机

在本机创建文件夹StartKit,右键点击Checkout,弹出如下图的窗体,如下图

 

在上图中URL of Repository:下的文本框中输入VisualSVN Server中的代码库的地址,其他默认,点击OK按钮,就开始签出源代码了。

【注意】

 上图中的Checkout Depth(签出深度),有4个选项,分别是迁出全部、只签出下一级子目录和文件、只签出文件、只签出空项目,默认的是第一项。

上面的例子中,我们也可以使用web的方式访问代码库,在浏览器中输入http://10.3.2.150/svn/StartKit/ ,这时候也会弹出对话框,要求输入用户名和密码,通过验证后即可浏览代码库中的内容。 

 搞定!源代码已经成功签出到刚才新建的StartKit目录中。打开StartKit目录,可以看到如下图的文件夹结构如下图所示

 一旦你对文件或文件夹做了任何修改,那么文件或文件夹的显示图片就会发生变化。

下图中我修改了其中的二个文件如下图所示。

大家看一下不同状态所对应的图片如下图所示。

 

我们已经知道怎么将源代码签入到VisualSVN Server服务器,怎么从服务器签出代码到本机,也简单了解了不同状态所对应的图案啦。


提交修改过的文件到VisualSVN Server服务器 

上面的图中,我修改了位于StartTest文件中的二个文件Main.cpp和StartTest.cpp,下面演示如何提交到VisualSVN Server服务器。

【注意】提交源代码到服务器时,一定确保本机的代码是最新版本,否则可能提交失败,或者造成版本冲突(conflict)。

在StartTest文件夹上点击右键或在StartTest文件下的空白处点击右键,点击SVN Commit…弹出下面的窗体如下图所示。

点击OK按钮后,弹出如下图的窗体,

 

添加新文件到VisualSVN Server服务器 

    我们在StartKit文件下添加一个新的类文件a.cpp,状态为non-version状态,在StartKit文件下的空白处点击右键,点击SVN Commit…,和上面讲的提交修改过的文件到VisualSVN Server服务器一样,就可以了。

另外也可以在文件a.cpp上点击右键,点击TortoiseSVN=>>Add, 选中a.cpp文件,点击OK按钮,这样并没有将这个文件提交到SVN服务器,只是将这个文件标记为源代码库库中的文件,并将其状态置为新添加状态。

之后,我们要再SVN Commit这个文件一次,弹出如下图的窗体: 才可以将其真正提交到VisualSVN Server服务器上的代码库中。

 

上面讲是添加文件,实际上,添加文件夹的步骤也是一样的,这里就不说了。 
 

更新本机代码与SVN服务器上最新的版本一致

    这个也很简单,只要在需要更新的文件夹上点击右键或在该文件下的空白处点击右键,点击SVN Update,就可以了。

【注意】更新操作可能会因为版本冲突而失败,这是可以使用合并【Merge】或其他方法解决;也可能因为锁定【Get Lock】而失败,这是需要先解锁【Release Lock】。

重命名文件或文件夹,并将修改提交到VisualSVN Server服务器

    只要在需要重命名的文件或文件夹上点击右键,点击TortiseSVN=>>Rename…,在弹出的窗体中输入新名称,点击OK按钮,就可以了。此方法也不是直接重命名,而是将该文件或文件夹的名称标记为重命名后名称,

也需要我们使用SVN Commit提交到VisualSVN Server服务器后才真正重命名。

删除文件或文件夹,并将修改提交到SVN服务器

    最简单就是,你直接删除文件或文件夹,然后使用SVN Commit提交更新到SVN服务器。另外一种方法是在你要删除的文件或文件夹上点击右键=>>TortoiseSVN=>>Delete删除,此方法也不是直接删除,而是将该文件或文件夹的状态置为删除,也需要我们使用SVN Commit提交到VisualSVN Server服务器后才真正删除。

【注意】实际上,从你把源代码迁签入SVN服务器开始,每一个版本的数据和文件,就算是你已经删除了的,也都可以随时迁出。

以上只是TortoiseSVN最简单的几个功能,其实他的功能远不止这些,其他的功能大家可以在使用的过程中慢慢体会,有些功能我会在下面的教程中使用到,到时候会和大家讲清楚用法。

【注意】向SVN服务器提交源代码的时候,一定不要提交bin、obj等文件夹,否则会很麻烦。但是web项目的bin目录除外,但是web项目的bin目录中的引用其他项目而生成的dll不需要提交。
 一个好习惯:如果项目中引用了其他的第三方的程序集,比如EnterpriseLibrary、FCKEditor等,这时候不要简单从他们的安装位置引用,而是在你的解决方案下,添加一个Library的目录,把需要的程序集复制到这里,然后从Library目录引用。

 

【注意】:如果要删除(把文件夹放入回收站或者直接shift+delete,不是指从SVN服务器上删除)受TortoiseSVN版本管理的文件夹的时候,要选择“去除版本控制并增加到忽略列表”,如下图

 

 

http://www.cnblogs.com/lyhabc/articles/2482381.html

相关文章:

  • C#中Monitor和Lock以及区别
  • HDU 1575 Tr A (矩阵乘法)
  • MVC使用基架添加控制器出现的错误:无法检索XXX的元数据
  • 从程序员的视角揭秘Silverlight
  • oracle索引再论
  • Android应用开发学习笔记之多线程与Handler消息处理机制
  • jquery $.each() 小探
  • HDU 4089 Activation
  • Linux 上安装 Subversion
  • PHP5.4第二天——数组、多维数组和数组函数
  • MySQL数据库中delimiter的作用概述
  • unigui验证微信服务器的有效性
  • python PIL except: IOError: decoder jpeg not available
  • Pyp 替代sed,awk的文本处理工具
  • 看电影读小说,你就能懂经济学
  • 【Leetcode】104. 二叉树的最大深度
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • jquery cookie
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Service Worker
  • spring cloud gateway 源码解析(4)跨域问题处理
  • Spring-boot 启动时碰到的错误
  • use Google search engine
  • vue数据传递--我有特殊的实现技巧
  • win10下安装mysql5.7
  • 聚类分析——Kmeans
  • 设计模式 开闭原则
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 译有关态射的一切
  • gunicorn工作原理
  • Java总结 - String - 这篇请使劲喷我
  • Linux权限管理(week1_day5)--技术流ken
  • 带你开发类似Pokemon Go的AR游戏
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​ArcGIS Pro 如何批量删除字段
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • #NOIP 2014# day.1 T2 联合权值
  • #pragma pack(1)
  • #Z2294. 打印树的直径
  • %check_box% in rails :coditions={:has_many , :through}
  • (04)odoo视图操作
  • (33)STM32——485实验笔记
  • (ibm)Java 语言的 XPath API
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (十一)手动添加用户和文件的特殊权限
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (一)基于IDEA的JAVA基础1
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。