前言

在上一文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. Android之adb命令

    1.安装APK(如果加 -r 参数,保留已设定数据,重新安装filename.apk) adb install xxx.apk adb install -r xxx.apk 2.卸载APK(如果加 - ...

  2. MySQL之连接数据库的两种方法

    方法一: package DB; import java.sql.Connection; import java.sql.DriverManager; public class Conn { // 定 ...

  3. SQL批量修改表名

    SELECT NAME FROM SYS. ALL_OBJECTS WHERE TYPE= 'U' ORDER BY MODIFY_DATE DESC --查询所有表名 SELECT NAME FRO ...

  4. Mysql按时间段分组查询来统计会员的个数

    1.使用case when方法(不建议使用)-  代码如下 复制代码 SELECT    COUNT(DISTINCT user_id) user_count,    CASE    WHEN cre ...

  5. 细说SQL 连接

          连接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定连接条件.WHERE和HAVING子句       也可以包含搜索条件,以进一步筛选连接条件所选的行.         ...

  6. 推荐7款新鲜出炉的HTML5/CSS3应用

    1.HTML5/CSS3发光文字可自定义文字色彩效果很赞 要分享的这款HTML5/CSS3文字效果很帅,鼠标滑过文字时,文字会出现发光的特效,并且我们可以自定义文字和颜色. 在线演示 源码下载 2.H ...

  7. 9款超绚丽的HTML5/CSS3应用和动画特效

    1.CSS3飘带状3D菜单 菜单带小图标 这次我们要来分享一款很特别的CSS3菜单,菜单的外观是飘带状的,并且每一个菜单项有一个精美的小图标,鼠标滑过菜单项时,菜单项就会向上凸起,像是飘带飘动一样,形 ...

  8. DailyWallpaper - V1.01 released

    桌面每日一图 最近发现美国国家地理网站上有个photo of the day很不错,地址在这里.http://photography.nationalgeographic.com/photograph ...

  9. ●linux进程的查看与操作●

    查看进程:ps -le | more ,ps -aux | more ,ps & 后台运行  jobs 查看后台进程  fg [n]调到前台  bg放到后台 ctrl +c 终止  ctrl ...

  10. SUID或SGID程序中能不能用system函数

    system()函数的声明和说明如下: 注意它的描述那里,system()执行一个由command参数定义的命令,通过调用/bin/sh -c命令来实现这个功能.也就是说它的逻辑是这样的! 进程调用s ...