使用docker重建Gitlab服务

新年假期回到公司,就发现一个噩耗,就是代码服务器意外关机,重启不成功。虽然我知道linux的机器意外关机会造成不可以预知的损坏,但是在10多年的linux使用生涯中还是真的未遇过。这次终于给我遇上了。

虽然数据在年前已经备份过了。不过我想到的是如果这台机救不回来,要我重新安装这个gitlab服务就真的疼苦了。虽然当初安装的时候有把关键点都记录下来。不过再安装一次的确痛苦。关键是迁移数据的问题。我还发现一个问题就是我没有记录当时安装的gitlab的版本,低级错误。不过经过维护部门的努力,机器是可以重新启动,gitlab服务也正常。不过在等待维护部门的修复,就等待了好几天。好在影响不大,其实这些东西本应不用我操心的。不过公司一共4个开发团队,就我一个团队使用代码管理。其他几个部门还是原始社会的手工管理。所以这个代码服务器想移交去维护部门都不行。

虽然这次救活了,但是我还是需要准备万一下次再出问题的时候,修复不了机器的时候做好准备了。作为快速搭建服务,首选是使用docker进行部署。目前已经有人做好了docker-gitlab的image镜像。目前这个image的版本使用gitlab 7.8.1,不过我们使用的gitlab的版本是6.6.5的版本。不知道数据库是否可以平滑升级。

找了一台Ubuntu 14.04机器进行测试。其实使用这个docker-gitlab的container比较简单,他的github页面说明比较详细。如果新建的gitlab服务,参照他的说明就可以了。比较简单。但是有一个坑,这个可能是docker-compose(原有的fig)的bug。

继续阅读“使用docker重建Gitlab服务”

在redhat6上安装gitlab

由于公司需要搭建一个代码服务器,我当然选择了Git啦,不过如果只是安装Git的话,缺少了web界面去管理这个Git代码库,所以选择了Gitlab。不过Gitlab的官方安装指引只有ubuntu。我在ubuntu安装的时候没有遇到任何问题。不过在redhat6上安装就遇到较多的问题。所以在此记录一下,方便后人。讲真,为了安装这个代码服务器前前后后折腾了差不多成个星期,从成本效益来说,还不如去使用第三方的服务,例如,githut、bitbucket,或者国内的一些类似的服务商。还免维护。不过老板最终决定自己搭建。老细永远是对的。那就只能做。

由于文章我从markdown编辑器Mou copy过来的,可能在wordpress排版有点问题,大家将就看吧。

在github上找到一篇装教程 https://github.com/gitlabhq/gitlab-recipes/tree/master/install/centos

在安装前先看看注意事项。

继续阅读“在redhat6上安装gitlab”

Hg代码管理转换Git代码管理-方便xcode使用Git

最近搞iphone开发,iphone开发使用xcode是好必然的。虽然有其他开发工具,例如appcode。不过我觉得还是原生的xcode比较好。特别是查看帮助的时候非常方便。加上appcode这个工具是java开发的。运行速度不乐观。还有些开发者是vim+插件,我就真的不想折腾vim+插件。所以我老老实实用xcode。

xcode在在代码管理方面集成了svn和git的。svn现在来算已经是老古董了。所以使用git是必然的。不过公司使用的居然是Hg代码管理。这就真的难为了xcode了。由于xcode不支持Hg。虽然可以用其他图像化Hg软件来进行管理,例如SourceTree(支持Git和Hg)、MacHg。在代码对比与版本对比都没有使用xcode那样直观方便,可以边对比边修改开发。在xcode哪里非常方便查找出某一段代码是什么时候添加上去的。由谁添加的。当时代码提交的注释都会详细显示出来。这个功能非常实用。

现在需要把hg的代码库转换成git的代码库。

转换方式有:

1、一次性转换。把hg的代码库转成git的代码库。以后都用git代码库。

大家可用hg-fast-export 脚本

$ git clone git://repo.or.cz/fast-export.git

不过这个对于我来说不是一个好方面,因为你不能够要求公司以后都改用Git来管理。

2、使用插件把Hg转换成git。服务端为Hg,客户端数据为git的。

找了一下,发觉有一个比较有名的插件Hg-Git mercurial plugin。 不过是服务端是Git,客户端是Hg。与我的需求相反的。虽然在github.com上有几个Git-Hg的插件。当时看了一下说明好像都是在Hg-Git上修改的。而且都是只读单向的。即可以从Hg服务器上clone成Git的代码库,还可以pull新的更新。当是客户端的git代码库有文件修改后是不能push上Hg服务器的。

有点杯具啊。不过我认真研究Hg-Git后。发觉他可以把一个现有的hg项目推送一个空的Git服务。这样又出现一个新希望了。上网再搜索了一下,果然有人和我的想法有点相同。大家请点这里, 我的应用可能比他再复杂一点。

继续阅读“Hg代码管理转换Git代码管理-方便xcode使用Git”