前言

在上一文http://www.cnblogs.com/wql025/p/5177699.html中,我们讲到了使用SVN的第一步,即下载、安装SVN的服务端软件--VisualSVN server和客户端软件--TortoiseSVN。现在,我们就来在此基础上学习怎样使用这两个软件的最基础的功能以及在eclipse上如何使用。

本文参考网址:http://blog.chinaunix.net/uid-26520343-id-3047514.html

首先,和oracle一样,用SVN服务端首先要开服务,所以小伙伴们一开机就打开这个服务吧(如果有用到本机作为服务器)。

一、添加一个版本库【Repository】

1.首先打开VisualSVN Server Manager。开始--》所有程序--》VisualSVN Server Manager。如图:

界面:

2.Repositories右键选择Create New Repository..

3.选择默认选项,点下一步

4.在Repository Name输入一个文件夹名作为保存项目的文件夹,点下一步

5.选择默认选项,点下一步

6.选择默认选项,点Create

7.本地SVN服务器的存储地址已经建好了。其中https://Lenovo-PC/svn/是本机的根地址。点Finish

建好的界面如下:

二、在SVN服务端VisualSVN 建立用户、用户组、赋权

1.右键Users,点击新建 User

2.为用户起名字和密码,点OK

3.一个用户创建完了

4.创建用户组,右键Groups,新建 Group

5.为这个新建的用户组起个名字(就已接下来要导入的本地项目名为名),点击Add,把新建的用户添加进来,点击OK

6.现在已经为testProject添加了developer1这个用户了,点击OK

7.现在就要给用户赋权了。右键刚才新建的版本库testProject,点击Properties

8.点击Add

9.选择要赋权的对象。可以是针对的是Everyone,可以是Groups,可以是Users下进行选择

10.选择用户及在紫色框中选择要赋予的权限,点确定

11.我们按照上面的方法再加一个test用户--测试人员,他只具备Read Only 权限。

三、将本地项目上传至/导入SVN服务器。

这里导入https://Lenovo-PC/svn/testProject这个地址。

1.新建一个项目--testProject

2.项目右键,选择TortoiseSVN-->导入

3.在testProject/后面起个名字作为这个仓库的子路径--这个名字和2.2所导入的项目名一样,作为这个项目的名字(如果不起的话,导入后就没有项目名字了。这点要注意下。),然后在“导入信息”下面的框中填写“导入项目到版本库”--这是记录日志,点击确定。

4.在弹出一个验证框输入用户名和密码,如下:输入创建的developer1 , 123 即可。

导入成功。

5.右键刷新新建的版本库testProject,即可看到已导入的项目。

四、检出项目到本地

1.在要检出的目录右键选择 SVN检出(K)

2.点击确定

3.检出成功

五、修改、添加文件...

5.1 修改代码

1.选择此项目的一个java文件。

2.用EditPlus打开,添加一行代码,保存后关闭。

3.可以看到修改后的变化。

4.现在我们提交代码,我是在MySvnTest.java所在的包提交,也可以直接在MySvnTest.java上提交。

5.下面选择提交的内容,分别是MySvnTest.java及其备份--MySvnTest.java.bak(注:这个文件的备份文件是上一次版本的备份。),点击确定。

6.提交完毕

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

5.2 添加代码

和修改的原来流程一样,这里就不说了。

5.3 更新代码

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

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

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

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

只要在需要重命名的文件或文件夹上点击右键,点击TortiseSVN=>>Rename…,在弹出的窗体中输入新名称,点击OK按钮,就可以了。此方法也不是直接重命名,而是将该文件或文件夹的名称标记为重命名后名称,也需要我们使用SVN Commit提交到SVN服务器后才真正重命名。

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

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

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

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

注意:向SVN服务器提交源代码的时候,一定不要提交bin、obj等文件夹,否则会很麻烦。但是web项目的bin目录除外,但是web项目的bin目录中的引用其他项目而生成的dll不需要提交。

一个好习惯:如果项目中引用了其他的第三方的程序集,比如EnterpriseLibrary、FCKEditor等,这时候不要简单从他们的安装位置引用,而是在你的解决方案下,添加一个Library的目录,把需要的程序集复制到这里,然后从Library目录引用,这样有什么好处,自己想一想吧。

六、eclipse从SVN服务器检出项目

1.打开SVN资源库视图,点击添加SVN资源

2.填写SVN服务器的版块库地址

3.在项目上右键选择--》检出为

4.点击next

5.选择项目位置,点击Finish

6.检出至本地成功

七、版本库迁移

假如有两个服务器A和B,版本库原来在A服务器上,现在要移到B服务器,做法如下

1,将A中的版本库更新到MYeclipse(注意要删除掉....\WebRoot\WEB-INF\下的calsses文件夹,因为这里包含Myeclipse自动编译文件,如果不删除就上传至版本库,check出来的项目同步时会报错),右击项目-team-disconntect(断开)-选择第一项-Yes,目的是将原来使用svn或cvs时项目中的.cvs和.svn文件清除掉

2,在B上安装客户端和服务端,再按上面讲的步骤在B的服务端上建版本库,然后把项目拷贝到B中的某个位置,使用svn客户端右击项目,选择import导入到版本库中

(参考:http://www.cnblogs.com/lzhdim/archive/2009/04/23/1442189.html

http://hi.baidu.com/hsyl/blog/item/7ad43b2986af8bf498250a54.html         )

后记

本来想做一下用户权限测试--即用test用户看看能不能修改SVN检出至eclipse的代码,可能因为在3.4步选择了“保存认证”,所以在eclipse检出SVN的项目时并没有弹出输入用户名/密码的验证框--这个以后有时间再测。

已测试,测试结果与“后记”中推测一致,如下:

1.在将本地项目导入至版本库时输入用户名、密码的弹出框不要选“保持认证”。

2.在eclipse检出本地项目时就会弹出“输入用户名和密码”的验证框。

3.当输入密码后就会显示这个资源下的项目--不过为了省事,我们上面还是点击保持密码好了。

--测试失败--算了,以后测试。下次测试在两台电脑上测试。

SVN--VisualSVN server 服务端和 TortoiseSVN客户端的基础使用的更多相关文章

  1. SVN--下载、安装VisualSVN server 服务端和 TortoiseSVN客户端

    前言: 在http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407610.html的博客中已经很详细地介绍了SVN的服务器--VisualS ...

  2. QT server服务端如何判断客户端断开连接

    在QT编程中有时会用到server服务端与客户端进行TCP网络通信,服务端部分代码如下: 1.创建server用于监听客户端套接字 this->server = new QTcpServer(t ...

  3. Photon Server 服务端编程

    Photon Server 和 Unity3D 数据交互: Photon Server 服务端编程 Unity3D 客户端编程 VS2017 之 MYSQL实体数据模 一:Photon Server的 ...

  4. 全网最详细的PLSQL Developer + Oracle client的客户端 或者 PLSQL Developer + Oracle server服务端的下载与安装过程(图文详解)

    不多说,直接上干货! 环境说明: 本地没有安装Oracle服务端,oracle服务端64位,是远程连接,因此本地配置PLSQL Developer64位. Oracle database使用在本机部署 ...

  5. SVN server 服务端修改端口号

    SVN server 服务端修改端口号 在实际使用中可能当安装svn server 服务后,发现与后续其他程序端口冲突, 1.打开svn server 管理界面->操作->properti ...

  6. Linux搭建SVN服务器(服务端)

    Linux搭建SVN服务器(服务端) 1 安装SVN SVN客户端:TortoiseSVN,官网下载:https://tortoisesvn.net/downloads.html(客户端) # yum ...

  7. [发布]SuperIO v2.2.5 集成OPC服务端和OPC客户端

    SuperIO 下载:本站下载 百度网盘 1.修复串口号大于等于10的时候导致IO未知状态. 2.优化RunIODevice(io)函数内部处理流程,二次开发可以重载这个接口. 3.优化IO接收数据, ...

  8. Delphi XE5通过WebService开发Web服务端和手机客户端

    Delphi XE5通过WebService开发Web服务端和手机客户端介绍 我们开发一个三层的android程序 建立一个webservices  stand-alone vcl applicati ...

  9. 【2】循序渐进学 Zabbix:安装配置 Zabbix Server 服务端

    上一篇 [1]循序渐进学 Zabbix :初识与基础依赖环境搭建( LNMP ) 安装 Zabbix Server 上篇我们在 192.168.200.101 上面安装了 Zabbix 所依赖的 LN ...

随机推荐

  1. 根据数据库内容动态生成html页面

    之前使用了很多方法,但是都很复杂. 项目里包括了数据库的管理页面,对数据库进行修改(新增,插入,删除)等之后,在另一个页面使用. 使用时采用按下相应label弹出所有信息的方法,以html的形式将数据 ...

  2. 集合类学习之HashMap

    一.HashMap概述 HashMap基于哈希表的 Map 接口的实现.此实现提供所有可选的映射操作,并允许使用 null 值和 null 键.(除了不同步和允许使用 null 之外,HashMap  ...

  3. Cocos2d-JS动画

    与动作密不可分的还有动画,动画又可以分为场景过渡动画和帧动画.场景过渡动画我们在以往介绍过,这一个我们只介绍帧动画.帧动画帧动画就是按一定时间间隔.一定的顺序.一帧一帧地显示帧图片.我们的美工要为精灵 ...

  4. 【学习笔记】【C语言】指向函数的指针

    每个函数都有自己的内存地址,指针保存了函数的地址后就能指向函数了. #include <stdio.h> double haha(double d, char *s, int a) { } ...

  5. CustomTabBarViewController

    // AppDelegate.m // CustomTabBar // // Created by qianfeng on 15/7/9. // Copyright (c) 2015年 qianfen ...

  6. UI1_ScrollViewHomeWork

    // // AppDelegate.m // UI1_ScrollViewHomeWork // // Created by zhangxueming on 15/7/13. // Copyright ...

  7. struts2的包和命名空间

    struts2提供了命名空间的功能,主要是为了处理同一个WEB应用中包含同名Action的情形.struts2以命名空间的方式来管理Action,同一个命名空间里不能有同名的Action,不同的命名空 ...

  8. 解析XML文档之一:使用SAX解析

    使用sax解析xml方法总结 解析的的xml文档格式如下 <?xml version="1.0" encoding = "UTF-8"?> < ...

  9. [Guava源码分析]Objects 和 ComparisonChain:帮助重写Object方法

    我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3874194.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...

  10. 使用inotify检测linux目录内文件变化

    #include <unistd.h> #include <sys/inotify.h> #include <stdio.h> #include <error ...