1. 代码仓库管理:gitlab
gitlab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
它拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
GitLab 要求服务器端采用 Gitolite 搭建(为了方便安装,现已经用gitlab-shell代替Gitolite[1])。[2]
2. 代码审查:gerrit
为了保障代码库的稳定性,团队协作的时候通常需要进行code-review, Gerrit就是为此而生,gerrit是一种开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的代码,决定是否能够提交,退回或是继续修改。它使用版本控制系统,Git作为底层。
3. 项目缺陷与进度管理:redmine
与gitlab的功能有部分重叠,他是一个代码缺陷管理和跟踪的软件,但更专注,自然功能上更加强大些,它整合了项目管理所需的各项功能:日历、燃尽图和甘特图 以协助视觉化表现专案与时间限制,问题跟踪和版本控制。此外,Redmine也可以同时处理多个项目。
4. 持续集成:jekins
Jenkins是一个用Java编写的开源的持续集成工具。在与Oracle发生争执后,项目从Hudson项目复刻。
Jenkins提供了软件开发的持续集成服务。它运行在Servlet容器中(例如Apache Tomcat)。它支持软件配置管理(SCM)工具(包括AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase和和RTC),可以执行基于Apache Ant和Apache Maven的项目,以及任意的Shell脚本和Windows批处理命令。Jenkins的主要开发者是川口耕介。[2]Jenkins是在MIT许可证下发布的自由软件。[3]
可以通过各种手段触发构建。例如提交给版本控制系统时被触发,也可以通过类似Cron的机制调度,也可以在其他的构建已经完成时,还可以通过一个特定的URL进行请求。
5. Wiki系统:media Wiki, Gollum