- 浏览: 1051384 次
- 性别:
- 来自: 郑州
文章分类
- 全部博客 (605)
- 数据挖掘 (22)
- spring (40)
- 工具使用 (39)
- java (137)
- JavaScript (40)
- webwork (12)
- web (120)
- 资源 (7)
- SSH (5)
- oracle (20)
- J2ME (1)
- 环境配置 (37)
- 项目管理 (29)
- mysql (14)
- struts (4)
- 项目总结 (27)
- ibatis学习 (33)
- 学习计划 (2)
- 缓存 (7)
- 重构 (3)
- Android (1)
- jquery (12)
- UML (3)
- 用户体验 (4)
- 习惯 (7)
- sakai (1)
- urlrewrite (4)
- rss (5)
- C plus plus (5)
- 算法 (5)
- 海量数据处理 (7)
- office(word、excel) (1)
- 面试题 (3)
- solr (8)
- 大数据 (2)
最新评论
-
hujin19861102:
截图看不见,最后一个webwrok的配置看不见
Ext+Webwork+Json 实现分页表格查询效果 -
蜗牛笔:
弱弱的问一句,要是分出来的词在词典中没有,那么两部分的pos- ...
ICTCLAS 中科院分词系统 -
weipeng1986:
授人予鱼不如授人予鱼,我想问你的是你是怎么总结的。比如第四种情 ...
JAVA中字符串连接效率的测试 -
xiaoqiang2008:
执行两次的原因是什么,好像楼主没弄清楚啊!是不是在web.xm ...
关于Spring中用quartz定时器在定时到达时同时执行两次的问题 -
Kent_Mu:
...
ibatis-dynamic的用法
本文目的
让未使用过版本控制器软件或者未使用过subversion软件的人员尽快上手。
subversion的使用技巧很多,这里只总结了最小使用集,即主要的基本功能,能够用来应付日常工作。
因此不涉及subversion服务器端的搭建和配置。
为什么要使用版本控制
当多人共同开发同一个软件时,会涉及源代码的共享以及带来的相关问题,比如追究某个代码是由谁在什么时间修改的。
下面列出版本控制带来的好处:
- 为团队提供了所有项目文档的回退按钮,个人IDE工具只能提供某个文件的回退按钮,而不能做到,比如回退到2008年6月12日下午3点10分时的所有项目文件;
- 支持多个开发人员在可控的方式下为相同的代码工作;
- 版本控制系统保存了文档在过去的各个改动,便于查找是谁,在何时,因为什么修改了文档;
- 支持在文档的主线上同时有多个版本(版本的分支和合并是版本控制的主要手段,一些开发团队仅仅是简单的共享代码主干);
- 支持查询在某个时点上项目各个文档的状态,可用于研究生产效率等(比如,统计项目哪个时期代码提交最活跃,以及每个人的代码提交频次等等),也可用于对以前的软件发行版的再发行(比如,以前构建的2.0版本的安装包丢失了,那么可以通过版本控制器记录的历史重新回溯到那个版本,然后重新构建出安装包)。
为什么使用subversion
首先,考虑的是使用免费开源和轻量级的版本控制器。
第二,要求使用比较广泛,可选的有cvs和svn。
这里选择svn,主要考虑是比较好集成apache使用,提交代码支持原子级操作(即,比如提交3个文件,如果因为网络或者其他原因,上传2个文件后中断,svn能做到服务器端回滚到提交前的状态,而cvs做不到这点,需要手工检查和恢复)。
subversion的程序构成
subversion程序,和mysql很类似,是c/s结构的,有客户端和服务器端。服务器端和客户端都是通过命令行方式启动和执行的。本文只会使用到客户端的命令。
第三方提供了各种图形界面的客户端工具,比如eclipse插件subclipse,windows图形界面工具tortoiseSVN。这些后面会提到它们的基本使用。
subversion资源
- subversion官方网站:http://subversion.tigris.org/
- subclipse官方网站:http://subclipse.tigris.org/
- tortoiseSVN官方网站:http://tortoisesvn.tigris.org/
- 使用subversion进行版本控制中文版在线版本:http://www.subversion.org.cn/svnbook/
安装subversion
有关subversion和subclise的安装暂略,因为目前提供的虚拟机开发环境已经安装和配置。
tortoiseSVN,可到官方网站上下载最新版本的windows安装包,默认安装,不需要做其他设置,安装后需要重启计算机。能在资源管理器中鼠标右键菜单看到如下图所示条目,就说明安装成功。
使用subversion
日常工作中使用subversion仅仅是几个命令或者操作,并不复杂。但是它内部的一些机制需要逐渐去理解。
检出代码
在刚开始进入一个开发队伍的时候,已经有版本控制和软件项目,使用的第一个命令往往是检出(checkout)代码。或者当使用和研究开源软件的时候,也是第一个要用到这个命令。这个命令的作用是把项目的源代码下载到用户本地,并且带有版本控制信息。
比如,执行以下命令获取一个项目的源代码:
这个命令将在本地当前目录建vfs.demo目录并将该服务器目录下的所有文件下载到本地,并且,会生成隐藏文件.SVN目录,用于记录版本控制信息。
tortoiseSVN有图形界面的检出操作,但是命令行方便快捷,建议使用命令行。
如果使用eclipse并安装了subclipse插件,可以通过插件导入项目。
然后,
选择或者新建资源库位置,
选择资源库中的项目目录。
然后,就可以完成(finish)了。
初始导入
何时使用初始导入,比如,对于java开发人员来说,在eclipse中编写了一个项目,并决定把项目共享到版本控制器上,这时就需要初始导入操作了。
以下以subclipse为例说明初始导入的步骤。
第一步,选择share project,共享你的项目:
选择通过svn共享项目:
填写svn提交的url:
这个url,需要subversion的管理员告知你,还有用户名和密码。如果想练习一下,google提供了免费的svn,你可以通过:http://code.google.com 申请项目,这样就会有类似我上面的url和权限。
然后可以直接点击finish,完成初始提交。选择next,可以做定制模块名和初始提交的信息,一般不需要。
如果你的svn服务器使用了https协议,需要接受一个数字证书,一般选择永久接受。
之后,会要求输入用户名和密码。建议勾选保存密码,否则会很麻烦。
这样,再看项目,会发现条目上多了问号,这时需要选择哪些目录和文件需要提交,哪些需要忽略,比如生成的class文件等。
选择需要忽略的文件或者目录,这时需要切换到导航视图下才能看到所有文件和目录:
从导航视图看到的情况:
选中需要忽略的目录和文件,操作svn:
然后提交整个项目即可。有关提交的操作见下文。
更新项目
项目在提交前,应该先做更新项目操作。比如有一个文件a.txt,已经提交到svn中,这样,可能有其他用户提交了新的改动到a.txt,你现在又修改了a.txt,准备提交你的改动。先操作更新a.txt,这样如果该文件在svn服务器已经改动,会将改动加入到当前本地的a.txt中。
在subclipse中的操作:
提交代码
提交代码,一般会级联当前目录下所有改动的内容。
删除代码
对于不再使用的代码,可以直接删除掉,比如通过windows删除文件,通过ubuntu的rm命令或者通过eclipse的delete功能,然后提交项目,subclipse会知道哪个文件被删除了,并将这个变化通知给svn服务器。
还原代码
如果代码做了改动,可以是多个文件,也可以删除了文件或者新增了文件,但是没有提交到svn服务器,可以通过还原功能恢复到改动前的样子。
版本的分支与合并
版本的分支和合并,是版本控制的核心功能。
比如,软件通过版本的分支,将项目分配给多人做分工开发,通过版本合并,将这些分工实现的代码合并到新的版本中;或者,修改代码bug的时候,可以先打出一个版本分支,保留出现bug的版本,比如分支版本名称为pre_fix_bug_2201,这里2201表示bug的代号,然后针对这个分支做修改fix这个bug,再将修改后的内容提交到一个新的分支版本,比如post_fix_bug_2201,再到适当时候将这个分支合并到代码主干中去。
以上说了一下版本分支与合并的用途,这里简单说一下svn版本分支合并的基本原理。
首先是版本分支,实际上是将当前版本“copy”到分支上,非常类似windows下,将某个目录的快捷方式复制到其他路径。这种copy,可以说是轻量级copy或者叫廉价copy,不是复制版本内容,而是做一个内部的引用。这样的copy很快,对服务器也没有空间上的开销。
版本的合并,是svn开发中的难点,当做版本合并的时候,服务器会试图智能的合并同一个文件的不同版本,可能会带来版本冲突,这需要操作者做手工的处理,消除版本冲突。合理分工的项目应该可以通过管理手段尽量避免这种情况。
以下是通过subclipse演示版本分支的操作。首先,项目文档应该已经全部提交,然后,选择
然后,填写url,一般是在tags/目录下:
然后默认选项,next即可,然后选择finish按钮。在svn的相应路径下就会有一个同名的项目。
打分支,实际上就是建立了一个项目的轻量级copy。
如何从版本的一个分支切换到另外一个分支,这也是很重要的,它能帮助你轻松在不同的项目版本中自动切换,而不必在eclipse里维持多个项目。
选择要切换的项目版本路径,或者直接输入亦可。
然后点击ok后,项目即可切换到该版本下。
在分支上做了改动,并且已经提交(一般tags目录下的项目约定是只读的,不建议改动,这里是为了举例方便),那么,可以将这个版本合并到trunk(主干)代码中,让主干也拥有最新的代码。
选择需要合并的源,比如从tags上面一个版本,合并到主干(trunk)代码中。
之后,需要设置一些合并的特性,这里默认配置即可。
执行完毕后,会有一个合并报告,可见没有出现冲突情况。
这时候看源代码,可以发现有改动,这些改动就是合并过来的代码。
改动如果没有问题,就可以提交,这样就完成了一次版本的合并工作。
“还原”已经提交的改动
如果文档没有提交,还原是很容易的,只需执行还原(revert)就可以了。有时候,已经提交了代码,结果发现了问题,需要回退到之前提交的版本,就不是很容易了。
这时候的还原,其实是将以前的某个修订本(revision)覆盖当前的本地工作拷贝。然后再提交这些改动,成为新的修订本。
下面演示一下。
首先提交了一个版本的改动,这是以后需要还原回来,这里,为了以后还原方便,要在提交的消息中说明改动了什么。(这一步在开发中是必须的,是纪律)
下面,再修改一下项目,然后提交一次,这里故意增加一个文件。
提交以后,后悔了,想恢复到前一个修订版。虽然可以通过版本号进行覆盖还原,但是一般人是无法记忆这个版本号的,另外就是实际情况往往更复杂,不会像示例中那样是相邻的两个修订版。
所以提交修订版时的注解消息就显得特别重要。
这时可以通过svn的日志功能查看到这些版本和它们的注释消息。
看到历次版本的消息内容。
这样,根据注释,我们很容易找到需要还原到以前的那个修订版。如果不放心,我们还可以根据上下文菜单,对比两个修订版的区别。
看比较结果。可以看出,增加了一个文件,另外一个文件中有一处差异。
那么,可以确定是从125修订版恢复(还原)。
更改后的项目,相当于用125修订版还原了126修订版。
可以看到126版本添加的文件不见了,另外VfsDemo.java文件也还原到125版本的内容。这时提交将成为127版本,这个版本其实就是125版本。算是还原了主干(trunk)上的代码。
刷新历史,可以看到修订版已经生效。
<script type="text/javascript"></script>
发表评论
-
PL/SQL
2017-04-01 10:46 447PL/SQL developer快速生成插入语句和查询语句 h ... -
memcache通过telnet连接 命令
2013-02-22 14:07 1163http://blog.chinaunix.net/uid ... -
eclipse 调整字体大小插件
2013-02-18 09:36 2971eclipse 编写的代码 示例,当进行代码 ... -
eclipse日志输出文件配置
2013-01-18 09:20 1778运行--运行配置--公共--标准输入与输出--文件--指定输 ... -
删除服务器目录.svn文件
2012-11-30 17:50 22731. 创建一个无后辍名的文件 2. 添加 rm ... -
myeclipse 安装svn插件
2012-11-02 11:15 880myeclipse 安装插件的方式 与 eclipse 有一 ... -
CSS 图片拼合生成器
2012-11-02 10:53 1838CSS 图片拼合生成器在线 工具(已测试使用,基本满足网站对s ... -
源代码控制 SVN & TortoiseSVN
2012-08-31 19:39 862http://hi.baidu.com/ssfnadn/ite ... -
eclipse 的一些设置
2012-08-16 22:06 17611. 控制台信息太多,程序跑完后只能保留最后的一部分之前的 ... -
Eclipse报Java heap space错误的解决方案
2012-08-16 16:43 12071当运行大数量的数据时: (1) 如果是java 应用程 ... -
ffmpeg 截取视频 播放中的图片
2012-06-19 09:14 1314http://www.cnblogs.com/live365w ... -
Memcached win 7下安装与使用
2012-06-12 20:52 10421. 下载Memcached的服务器端软件 Wind ... -
替换代码 前面的行号
2012-04-16 18:53 1045或许你也曾遇到 某些文章 代码 中含 有代码行号 的问 ... -
tomcat启动异常
2012-03-28 16:23 1444ERROR 2012-03-28 16:00:41,34 ... -
win7 Telnet
2012-03-17 18:46 1060找不到Telnet并不是Windows 7抛弃了Telnet, ... -
将excel中两列数据合并到一列
2012-03-08 12:58 2727假设数据在A,B列,需要将合并的数据放置到C列 c1输入 ... -
正确地kill java进程
2012-03-06 11:36 1361在linux/unix下,你会怎么中止一个java进程? ... -
TOMCAT中可以限制某些IP访问
2012-03-06 11:32 1131找到context区域,如 <context path= ... -
软件开机自动运行
2012-01-31 14:55 9031.点击开始菜单->程序,找到“启动”,点键点它,选择“ ... -
spring 测试框架与维护项目结合问题
2011-11-02 02:18 1173之前项目中一直用 junit进行单元测试,使用的版本一直是ju ...
相关推荐
Subclipse 是一个为 Eclipse IDE 添加 Subversion 支持的项目。支持几乎所有版本的Eclipse。Subclipse 1.8.4 ,支持Subversion 1.7.0,支持离线安装。解压后即可安装。
那么资源是适合你的,我安装了TortoiseSVN 1.14.5,Spring Tool Suite 4 (Version: 4.8.0.RELEASE),提示我插件版本太旧,使用了对应版本(svn_subclipse.core_4.3.4&javahl_1.14)的插件能够在eclipse中正常使用...
附件:eclipse的svn插件包 1、解压 2、将features里的文件拷贝到eclipse目录下的features中 将plugins里的文件拷贝到eclipse目录下的plugins中 3、重启eclipse show view - > other 中出现svn,就可以添加svn...
`features`目录下的文件是Eclipse的功能组件描述,这些组件定义了插件提供的功能和依赖关系;而`plugins`目录则包含了实际的插件实现,它们是Eclipse运行时加载的二进制代码。 安装过程通常涉及以下步骤: 1. 下载...
安装Subclipse插件的步骤如下: 1. **启动Eclipse**: 首先确保已经安装了Eclipse IDE,并且是与Subclipse兼容的版本。通常,Eclipse的最新版本都可以与Subclipse很好地协同工作。 2. **访问Marketplace**: 在...
1. **下载插件**:可以从Eclipse Marketplace或者官方网站下载Subversive或Subclipse这两款常用的SVN插件。 2. **安装插件**:在Eclipse中选择“Help” > “Eclipse Marketplace”,搜索对应插件并按照向导进行安装...
1. 下载SVN插件:首先,你需要从可靠的源下载适用于Eclipse的SVN插件,比如`subversive`或`subclipse`。这些插件提供了Eclipse与SVN服务器通信所需的功能。 2. 安装插件:在Eclipse中,可以通过“Help” > ...
- `index.html`: 可能是Subclipse插件的介绍页面,通常包含插件的详细信息和使用指南。 - `content.xml`: 可能包含了插件的元数据,如插件提供的功能和内容描述。 - `artifacts.xml`: 描述插件的组件和依赖关系,...
首先,确保Eclipse环境已安装,然后通过Help菜单下的Eclipse Marketplace搜索并安装“Subclipse”或“SlikSVN”,这两个都是常用的SVN插件。完成安装后,重启Eclipse,检查Preferences中是否新增了Team-SVN选项,这...
首先,安装Subclipse插件。在Eclipse中,可以通过“帮助”菜单选择“Eclipse Marketplace”选项,然后在搜索框中输入“Subclipse”进行搜索。找到相关的插件后,点击“安装”按钮,按照向导提示完成安装过程。注意,...
- 安装并配置完Flex Builder后,发现原有的Subclipse插件中的SVN视图(SVN View)和SVN透视图(SVN Perspective)都无法正常使用。 - 通过查看Eclipse配置目录(`configurations`)下的错误日志,提示找不到`feature.xml...
然而,有时在Eclipse集成开发环境中,开发者可能会遇到无法直接将SVN项目检出为Maven项目的问题,这正是m2eclipse-subclipse插件发挥作用的地方。 **1. m2eclipse插件:** m2eclipse是Eclipse中用于支持Maven项目的...
1. **Eclipse SVN插件**:Eclipse中的SVN插件通常称为Subversive或Subclipse,它提供了一个图形化的界面,方便用户与Subversion版本控制系统进行交互,包括检出、提交、更新、合并等操作。 2. **离线安装**:在无法...
eclipse svn离线插件subclipse
在Eclipse中,Subversion(SVN)插件是开发者进行版本控制的重要工具,它使得用户能够方便地与Subversion仓库进行交互,包括代码的提交、更新、查看历史等操作。 标题提到的"Eclipse3.3 svn插件",指的是为Eclipse ...
"eclipse-svn插件,直接放到插件目录下重启既可以"这个标题表明,我们将讨论如何在Eclipse中安装和使用SVN插件。 SVN是一种分布式版本控制系统,它允许开发者跟踪和管理代码的变化,同时支持团队协作。Eclipse中的...
本文将详细介绍如何让Eclipse下的Subclipse插件显示英文。 首先,安装Subclipse插件是前提。如果你尚未安装,可以通过Eclipse的"Help" -> "Eclipse Marketplace"搜索"Subclipse",然后按照提示进行安装。安装完成后...
Eclipse SVN 1.9离线包是一款专为Eclipse集成开发环境设计的Subversion(SVN)客户端插件的离线安装版本。Subversion是一个开源的版本控制系统,用于跟踪项目文件的更改,并允许团队成员协作。Eclipse SVN插件使得...
配合eclipse svn插件subclipse-4.3.4版本的javahl,将其中的features和plugins目录解压到与subclipse-4.3.4插件同一目录下即可。在eclipse 4.31版本上验证有效。
Subversive和Subclipse是两个主要的Eclipse SVN插件,它们都遵循Eclipse插件开发标准,与Eclipse平台无缝集成。 二、安装Eclipse SVN插件 1. Subversive安装: - 打开Eclipse,进入"Help" -> "Eclipse ...