代码版本管理之SVN、Fisheye及其他

[b]1.为什么是SVN,而不是CVS?[/b]
cvs有几个大缺点:
1) tag记录在单个文件上,做版本发布的时候必须对整个项目的文件全部打上tag,操作十分不便。
2)cvs的版本管理是针对单个文件的,而不是针对整个项目,所以对cvs来说只有文件的版本而很难实现项目的版本
3)cvs陈旧的技术架构严重拖累了它,已经好多年没有进步了
而svn正好解决了以上的缺点,同时还带来更多的改进:
1).性能的提高。将更多的数据和操作放在本地,这样性能大大提高。svn协议在传输数据方面性能也是相当不错的,提交一个28M的二进制文件在局域网可以达到800Kb/s的速率,而且svn处理大文件根本感觉不到down机的现象,cvs在处理大文件就有很大的问题,在eclipse里面使用经常发生commit不一致的情况,这也是没有原子提交的问题
2).据说对二进制的文件也能当作文本文件一样来处理,版本只存储变化的部分,这样可以大大节约空间,提高效率
3).目录的版本控制。svn针对目录的移动、改名、删除都当作是版本的变化
4).原子性提交。是一个很好的改进,如果mysql有了事务处理,没有事务处理能叫数据库吗?当然,逻辑性的原子性提交svn是无法帮你完成的,一个开发人员修改了10个文件,做集成测试通过后准备提交代码,但是他一次只提交了8个文件,即使这8个文件成功提交,其他开发人员update到最新版本后也可能导致编译不通过或者运行不成功。所以:开发人员养成原子提交的习惯才真正有效,即要么10个修改过的文件一并提交,要么一个也不提交。当然svn也可以加上一个限制,提交必须整个项目提交,不过这样会带来更大的麻烦,比如临时修改的代码也提交了,完全不能自己控制提交某些代码。
5).原数据管理。目录和文件下的svn:property 也当作是版本的一部分,这是svn新的概念。
6).支持http,https协议,对于远程协作更为方便有效。不过据说https和svn+ssh效率不行。
7).svn是个新东西,所以相应的客户端也是新架构,所以tortoise-svn做的比tortoisecvs好多了,subclipse也不差,良好的客户端是方便使用的保障。
8)offline模式也可以提供很多功能,比如查看历史等等,如图:

需要说明一下,svn一般使用tags目录来做版本发布,branches下面存放分支,trunk是代码变更的主干。tag和branch都是通过copy revision的方式来进行,效率很高!而且操作很简单。

当然svn也有一些缺点:
1).不能回退误提交的版本,提交一次就将永远成为版本的一部分。
2).有待发现

[b]2.安装使用svn[/b]
windows下下载安装包,默认安装即可。安装成windows服务会方便使用,项目组使用选择svn服务即可了,所以apache也没必要安装。
使用svnadmin create初始化repository。
svn import导入版本库
具体可参照svnbook里面的《快速指南》
注:subclipse不能设置语言选项,默认读取eclipse的语言环境,所以一般是中文菜单,需要改成英文菜单得修改eclipse.ini,加上:
nl
en_US

在初始化repository和初始化导入版本库时有两点很重要:
1.项目的目录结构。
有三种目录结构可供选择
1)在svnadmin create的时候将不同项目建成不同的目录,即/project1,/project2。这样每个项目的独立的,用户权限都是独立的。事实上做这些配置也是很少的工作,copy文件修改一下就可以了。但是项目组新加一个成员必须修改好几个project的配置
2)svn/project/trunk/..., svn/project/branches/NAME/..., svn/project/tags/NAME/...
3)svn/trunk/project/.., svn/tags/project/.. ,svn/branches/project/..
2)3)两种目录结构使用的是一个repository,所以配置相同。一个repository中的revision是从1累加的,所以区分到单个project中revision将不再是连续的。1)中目录结构可以保证revision数量连续。
2.初始化导入版本的时候千万不要把不需要纳入版本管理的文件和目录导入到repository中,因为svn是不能回退的,这些东西将成为版本垃圾。一般不版本化的东西包括classes,build输出目录,.cvsignore等

[b]3.fisheye[/b]
fisheye的功能类似于svn log(subclipse通过team-show history查看,tortoisesvn通过show log查看)。
当然fisheye是web界面查看的,通过功能远远强于svn log,同时fisheye还支持cvs,cvs log并没有svn log完善,所以对于cvs来说是相当有用的版本提交历史查看工具。
fisheye的changelog可以清晰的看到何时、何人做了哪些代码的修改,同时可以方便的看到提交的代码同前一版本或者前N版本有何不同。fisheye还有统计图,线性图、柱状图、饼图等。
[b]
4.crucible[/b]
fisheye仅仅是一个查看版本历史的工具,如果你是一个技术经理或者team leader,在查看项目成员提交的代码时有什么要评判注释的,crucible可以达到这个功能。crucible等于是一个代码审查工具。对代码的review comments还可以通过邮件发送给developer。crucible完全同fisheye结合在一起,安装了crucible就不用安装fisheye了。
[b]
5.jira[/b]
jira是众所周知的issue tracker,jira也是可以集成svn和fisheye的,而且实用性很强。
比如tester提交了一个bug,developer解决了这个bug,同时提交了几个java类,如果你想看到针对这个bug项目里面的代码做了哪些修改,jira-subversion plugin就发挥作用了。安装好subversion plugin之后,只需要developer在做svn commit的时候在comments里面写上jira id,在jira的subversion tab里面就会显示这个comments和这次提交的文件。

而jira fisheye plugin则是将fisheye的功能集成到jira中,同时也是随jira id来显示版本的变更记录。


注:
1)目前最新的atlassian-jira-subversion-plugin-0.10.3 不支持svn 1.5,不过通过升级svnkit到1.1.8以上版本就能解决这个问题。
2)fisheye plugin配置时,记得在fisheye管理界面中把Remote API设置成ON,要不然plugin连不上fisheye的!
Crucible 中文 使用说明 FishEYE JIRA SVN 代码审查工具 中文使用说明文档 Crucible 中文 使用说明 FishEYE JIRA SVN 代码审查工具 Crucible 中文使用说明文档 国内唯一中文说明文档,出自作者本人 转载者请注明作者 立即下载

相关推荐

大华视频监控云台测试工具

可以用来测试大华监控视频,包含通道、码流选择、截图、视频保存、云台方向控制、步长、缩放、焦距、光圈调整等功能。

java 矫正鱼眼图像_FishEye图片效果(桶式失真)算法(使用Java)?

你能够找到符合你想要的例子,这很好.将它们包含在您的问题中会很有帮助 – 它确保阅读它的人与您在同一页面上.所以这是一个link.你想要自己做事,而不依靠某些图书馆来为你做艰苦的工作也很好.但这并不意味着你必须忽略这些解决方案.这就是原因.看看在that link中实际使用的OpenCV.这些是以cv开头的函数:$grep -o "cv\w*" barrel.cpp | sort | uniqcv...

weixin_28902749的博客 419

低功耗蓝牙技术 > GAP和GATT介绍

GAP和GATT作为蓝牙协议栈中的关键协议,为BLE设备之间的通信提供了标准和框架。GAP主要负责设备的连接、广播和角色定义,而GATT则定义了BLE设备之间的具体通信方式,通过Services和Characteristics实现数据的传输和交换。在蓝牙技术的发展中,GAP和GATT两个协议扮演着关键的角色,为BLE(低功耗蓝牙)设备之间的通信提供了规范和框架。GATT连接是建立在GAP协议之上的,是一种独占连接,一个BLE外设同时只能连接一个中心设备。连接建立后,通信是双向的,不同于GAP的单向通信。

DL_62532的专栏 4032

svn修改提交路径_如何进行代码评审1(SVN+FishCru篇)

SVN+FishCru篇 交付质量管控措施要求投产任务必须经过代码评审,这是一个强制控制项,发布版本不完成此项检查是无法提交PPM变更工单的。所以我们今天介绍一下如何进行代码评审。代码评审按照版本控制工具分为两类,一类是SVN+FishCru,另一类是Git+BitBucket。本期我们先来介绍SVN+FishCru。FishCru是Fisheye和Crucible的简...

weixin_39717026的博客 1307

搭建微信机器人的方案都在这了!

功能超级强大,虽不支持二次开发,但已有的功能足够个人使用,可惜官方作品已被腾讯告死,好在市面上还流落着不少破解版,有需要的自行搜索。可惜的是,微信官方已不准许新的微信号再使用 web 登录,这就直接从源头扼杀了 web 协议的微信机器人,虽说老的微信号还是能凑合着用,不过部分功能也受限。所以,这些都属于 PC 端的微信机器人。无论是 PC 端还是手机端,用 hook 方式实现的最大缺点就是要和某一个版本的微信客户端进行绑定,如果框架本身不对最新版本的微信适配,那使用的时候就无法升级到最新版本的微信。

weixin_47246330的博客 1万+

分布式推理服务(策略:数据并行、张量并行、流水线并行、专家并行)技术分析

摘要:分布式推理突破单GPU内存和算力限制,支持大模型部署。四种核心策略包括: 数据并行:复制模型拆分数据,提升吞吐但内存效率低; 流水线并行:模型分阶段执行,支持超大模型但存在计算气泡; 张量并行:拆分层内矩阵运算,延迟低但通信开销大; 专家并行:动态激活MoE模型专家,计算高效但路由复杂。实际应用中常组合策略(如3D并行),需权衡模型规模、硬件条件与性能目标。

技术引领业务创新 946

java 鱼眼照片的矫正_鱼眼镜头立体声校准OpenCV,Python

我使用本教程link成功校准了我的相机作为参考 . 这是代码:CHESSBOARD_SIZE = (9,6)img_dir_left = "/home/dir_left"img_dir_right = "/home/dir_right"criteria = (cv2.TERM_CRITERIA_EPS+cv2.TERM_CRITERIA_MAX_ITER, 30, 0.1)calib_flags ...

weixin_34511324的博客 407

NSIS教程(8): 基于第三方界面库的安装包界面

前面的几篇文章介绍了NSIS的传统界面的安装包和现代界面的安装包的制作方法,也提到了NSIS支持自定义页面(即使用page custom)的特性,自定义页面需要用户自己创建对话框、控件、添加控件响应等等,虽然NSIS提供了nsDialogs.nsh来支持这些功能,但使用起来还是不太方便(需要专门了解这个插件诸多用法),而且不够灵活,所以本文介绍一种终极的自定义界面的安装包解决方案,即完全使用第三方

while(1) { smile(); } 9万+

团队开发:利用fisheye代码审查(结合svn)

团队开发的时候,代码的审查是代码编写阶段中必不可少的一个工作。 现在说一下,什么是代码审查:     代码审查(Code Review)是软件开发中常用的手段,和QA测试相比,它更容易发现和架构以及时序相关等较难发现的问题,还可以帮助团队成员提高编程技能,统一编程风格等。       此处省略fisheye的安装。如有需要,请不(qing)要(lian)找(xi)我。     这里

赵崇 1万+

Mysql授权允许远程访问

前言 Mysql授权允许远程登录后,linux中安装的mysql可以与Navicat for Mysql(可视化)等连接,在可视化软件下管理数据库。 注意:不能使用临时密码 设置密码命令: alter user 'root'@'localhost' identified by '这里是你的密码'; 授权允许远程访问 一、授权命令: grant all privileges on *.* to '...

🏆 前端领域优质创作者 3万+

RK3568平台(音频篇)麦克风PDM接口录音

PDM = Pulse Density Modulation是一种用数字信号表示模拟信号的调制方法。PDM则使用远高于PCM采样率的时钟采样调制模拟分量,只有1位输出,要么为0,要么为1。因此通过PDM方式表示的数字音频也被称为Oversampled 1-bit Audio。相比PDM一连串的0和1,PCM的量化结果更为直观简单。以PDM方式作为模数转换的接收端,需要用到抽取滤波器(Decimation Filter),将密密麻麻的0和1代表的密度分量转换为幅值分量,而PCM方式得到的已经是幅值分量了。

weixin_49303682的博客 5195

代码审查的流程

来源:代码审查的必要性和最佳实践:https://glory.blog.youkuaiyun.com/article/details/117077938。

路边烧卖 3788

Winform从入门到精通(1)——Label(史上最全)

本篇文章是对专栏《winform控件从入门到精通》的详细介绍

qq_34059233的博客 4万+

<转>代码版本管理之SVN、Fisheye及其他

原链接:http://eyejava.iteye.com/blog/215899 http://hi.baidu.com/zeorliu/item/a7b5e1c0c23eda52ac00ef7e 使用 FishEye 直观了解 CVS 情况 转帖:http://www.cnblogs.com/flier/archive/2004/10/27/57511.html 原文:http:...

yingbin920的博客 229

基于 Qt C++ 的战术通信终端

logMessage(QString("新客户端连接来自: %1:%2").arg(incomingTcpSocket->peerAddress().toString()).arg(incomingTcpSocket->peerPort()));logMessage(QString("服务器已启动,在 [%1]:%2 监听IPv6连接...").arg(ui->lineEditAddress->text()).arg(port));

寒寒豆豆软件公司的博客 78

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

创业团队技术选型摘要

  1,开发环境操作系统 centOS或Red Hat Enterprise Linux Server,64bit   2,代码版本管理系统 Subversion是标准配置,svn+git搭配使用更是如鱼得水(参考 同时使用svn和git进行代码版本管理 )。   3,项目管理系统 首选jira,集成fisheye插件结合svn很方便做代码复查(code review)   4...

iteye_10060的博客 205

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

谈软件工程各环节中的辅助工具

谈软件工程各环节中的辅助工具

IT那些事儿 4796

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Atlassian代码评审Fisheye and Crucible中代码库编码格式修改

有时候你发现自己的代码库在查看或者在代码评审的时候发现中文乱码,这时候就得看看我的文章了

yieryi_ 3081

struts+hibernate+spring 版本控制svn的URL地址

eclipse中的svn插件链接地址 subeclipse - http://subclipse.tigris.org/update_1.8.x 都采用subversion 进行版本控制,可以根据URL通过浏览器直接查看,也可以用svn客户端checkout下来,仔细研究源码还是不错呀。 =================== Struts ==================...

我是传奇 142

FeCru基本操作

一直困扰于产品代码随着时间的流逝日趋腐朽,组员提交的代码质量无法进行有效审查,代码审核无法形成正反馈,同样的解决方案需要一遍遍地重复,同样的问题要一次次地强调。最终于最近决定引入代码审核平台。

夫礼者的专栏 1153

struts+hibernate+spring 版本控制svn的URL地址[转]

struts+hibernate+spring 版本控制svn的URL地址[转] 2007-08-09 16:04 struts+hibernate+spring 版本控制svn的URL地址 转自:http://hi.baidu.com/eako/blog/item/2b33a686d36acf3e66096e1d.html =================== Stru...

琳尼克斯的专栏 248

浅谈Atlassian产品搭建的敏捷管理体系(一)

Dream big, work smart, deliver fast 使用Atlassian的产品已经有三年多,但是大部分主要以JIRA和Confluence为主,今年年初加入一创业团队负责技术团队的搭建,从零开始通过部署Atlassian产品、制定开发流程,由于创业团队人手不够,自身也参与了大部分的开发工作,开始有一些考虑不周的地方,随着工作的展开不断调整,通过半年的努力也引来了第一轮的投资,

程序猿DD 2849

项目管理工具集

1.版本管理工具    CVS和SVN   客户端 :小海龟(www.tortoisecvs.org)    客户端: 小海龟(http://tortoisesvn.tigris.org/)。    差异比较工具:WinMerge   Web代码浏览工具:CVSTrac(CVSTracNT windows版)Fisheye   帐号管理工具:CVSTrac(CVSTracNT

风行天下 1201

JAVA敏捷开发环境搭建

前面介绍了创业型软件公司的工作模式,这里详细介绍下如何实施,第一步是先要搭建环境,有了环境才能开展工作。 整个软件项目分为四个环境 开发本地环境、开发环境、测试环境、IDC环境。和传统C++开发不一样的模式是多了第一个开发本地环境。这是为什么呢,因为目前大部分开发人员还是比较熟悉windows下开发。对于mac和linux下直接使用软件并且开发的中国开发者还是少之又少...

weixin_34387468的博客 393

Arch-05-05- 借鉴大牛们的工具箱

  Matt Raible:App Fuse 的大大。 源码控制:SVN 源码查看器:FishEye Wiki: Confluence Bug追踪器:JIRA 持续集成: Hudson   数据库工具:DBeaver   ============================================================================ 整...

cnmqw的专栏 144
上一篇: svn:ignore
下一篇: svn pre-revprop-change.bat
eyejavaeye
博客等级 码龄20年 74粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值