Rails存储库从SVN转向Git
在Ruby on Rails 2.1版本发布的前夕,Rails开发团队也准备将代码的存储库从Subversion迁移到Git之上。在Ruby on Rails的官方博客里,DHH写到:
我们准备将Rails开发的代码存储库从Subversion迁移到Git之上,迁移过程将会在近期内完成。并且会使用Github来帮助开发者进行协作。在版本存储库迁移的同时,我们也会将问题跟踪系统转移到基于Rails开发的Lighthouse应用之上,于是到目前为止,我们的存储库和问题跟踪系统都是使用的Rails应用,这对我们是一个很好的鼓励。 在代码存储库迁移之后,我们将冻结现有Subversion的存储库以及Trac问题跟踪系统。这两个系统都会保留较长一段时 间,但是我们并不建议使用者再去访问它们。这意味着我们的Subversion存储库依然可以访问,但是如果你想获得最新的代码,需要在新的Git存储库 上更新。
为了帮助使用者更快的适应存储库系统的迁移,DHH同时也推荐了SVN使用者的Git快速上手教程。在对DHH声明的评论中,大部分开发者对此表示了赞赏与支持。其中,Scott Chacon为其他开发者推荐了为计算机科学家准备的Git介绍一文,文中讲解了当Git命令执行时,Git是究竟如何帮助我们处理工作的。Scott认为,了解Git是如何工作的,对于正确的使用Git有着积极的意义。
Git是Linus Torvalds为Linux内核开发而专门打造的版本控制软件,更加关注在管理大型项目时,代码版本的更新速度、效率以及可用性方面的提升,并为非线性 的协作开发提供良好的支持。Git帮助开发者保留历史版本在本地的全部记录,同时大型项目管理方面,效率比一般的版本控制工具都要高。在Linux内核开 发的版本控制中,Git发挥了积极的作用,Linus对其的评价是“傻瓜式的内容跟踪工具”。
Git基于GNU General Public License v2协议开放源代码。目前已从Linus Torvalds移交给Junio C Hamano维护。Git目前最新的版本是1.5.4.5,这个版本在之前的版本基础上修改了十多处Bug,并且对于部分文档进行了更新。
目前,Git也获得越来越多国内开发者的认可,并在项目开发中尝试使用Git来进行源代码的版本控制管理工作。对于使用Git所带来的好处,国内的开发者Robin Lu在Blog中这样评价道:
初始化非常方便...对于随便写两行代码就要放到SCM里的人来说,再合适不过。将Git用作备份系统,或 者同步两台机器文档来使用,都很方便。Git的绝大部分操作都在本地完成,不用和集中的SCM服务器交互,使用者可以放心的随时随地提交代码。在Git 中,分支管理更为容易,无论是建立新的分支,还是在分支之间切换,仅有一条命令就可以完成,不需要建立多余的目录。除此之外,分支之间合并时,不仅代码会 合并在一起,Check In的历史也会保留下来。
目前,包括Rails在内,已经有不少知名项目已经迁移到Git之上来进行源代码版本管理,比如Rubinius、Merb、Wine、 U-boot、Beryl等项目。尽管Git的命令繁多,但不少开发者为Git编写了小的脚本与批处理程序,进一步让Git命令的使用变得更加方便快捷, 并且对开发者更为友好。同时,基于Rails开发的Git存储库托管工具GitHub,也为开发者带来了更为方便的协作模式,关于GitHub的细节报 道,请阅读InfoQ中文站GitHub:基于Rails的Git库托管一文。
作者 高昂
- WebView 和 JS 交互,如何将 Java 对象和 List 传值给 JS ?
- Spring Boot 中使用 LogBack 配置
- Spring Boot 中使用 RabbitMQ
- 手把手教你dubbo怎么用?
- 一步一步实现Android的MVP框架
- Base封装之我的最简MVP架构
- 请求跨域的解决方案
- 运用Kubernetes进行分布式负载测试
- Spring Cloud(五)断路器监控(Hystrix Dashboard)
- 微信技术团队的又一力作,WCDB 简单易用的数据库框架
- Redis特性和应用场景
- Spring Cloud(四)服务提供者 Eureka + 服务消费者 Feign
- 智能下拉刷新框架-SmartRefreshLayout
- Spring Cloud(三)服务提供者 Eureka + 服务消费者(rest + Ribbon)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法