• Posts tagged "git"

Blog Archives

LoadError – library not found for class Digest::HMAC — digest/hmac

LoadError – library not found for class Digest::HMAC — digest/hmac

Question?

solution

Reference

https://github.com/code-mancers/mailgun-ruby/commit/b35ab9d9e2e936c00e6e65c17b87c942bbaa4c0c

https://github.com/mailgun/mailgun-ruby/pull/16

capistrano3 shared/bin is empty

REASON

capistrano3 部署后shared/bin下没有任何的命令工具

Anyalize

Solution

vim config/deploy.rb

set :bundle_binstubs, -> { shared_path.join(‘bin’) }

why?

https://github.com/capistrano/bundler/blob/master/CHANGELOG.md

https://github.com/capistrano/bundler/pull/61

https://github.com/capistrano/bundler/issues/45#issuecomment-69349237

Reference

http://qiita.com/yuuna/items/27a561a14399c5343d2f

升级ruby2.2.0后遇见的问题!

eventmachine

solve:

reference: https://github.com/eventmachine/eventmachine/issues/495

持续集成平台go 简介以及安装指南

go

Go流程图:

安装

安装注意事项

1. 保证服务器的内存至少为1G内存,否则启动服务器进程会被中断
2. 需要重新定位服务器hostname到/etc/hosts中 127.0.0.1 go-server
3. 需要装java jdk包

安装步骤

安装遇见错误相关

hostname错误
内存问题

相关链接

go下载地址

chef脚本:
https://github.com/huhongda/chef-go

Reference

http://blogs.360.cn/360cloud/2014/05/13/%E6%8C%81%E7%BB%AD%E4%BA%A4%E4%BB%98%E5%B7%A5%E5%85%B7thoughtworks-go%E9%83%A8%E7%BD%B2step-by-step/

CentOS6.5 安装gitlab以及gitolite迁移gitlab

gitlab 的安装使用以及数据结构

安装

环境:

  • CentOS6.5
  • 基于 nignx + unicorn 搭建的应用环境, 如果想要换成passenger,可以参考网上的文档
  • ruby环境是基于rbenv搭建的

1: install vim

2: install git > 1.7.10

  • install git

reference: http://tecadmin.net/how-to-upgrade-git-version-1-7-10-on-centos-6/#

  • git config

3: install dependent rpm

  • first: replace yum repo

  • second: install

4: install rbenv && Ruby

  • add users: git

  • use rbenv-installer install rbenv

  • install Ruby

  • install bundler

5: install gitlab

  • install gitlab shell

  • install mysql, redis, nginx

refer: http://blog.58share.com/?p=291

  • install gitlab

  • install gem

  • start server

  • check env

  • 编译静态文件配置nginx配置

  • 绑定host

  • 部署成功

  • 安装文档refer:

http://www.digitalsanctuary.com/tech-blog/general/installing-gitlab-on-redhat-enterprise-5-rhel-5.html

https://gitlab.com/gitlab-org/gitlab-ce/blob/6-6-stable/doc/install/installation.md

将gitolite迁移到gitlab步骤

1. 初始化mysql 配置

初始化后:即可以登陆超级管理员账户:

2. 将现有的项目导入到gitlab中

3. 获取root的api密钥token 并写如客户端配置并执行api相关操作

  • 创建用户并塞入对应的 ssh-key, 新创建的用户无创建分组的权限。
  • 获取已经创建的 分组, 并根据分组,将用户写入不同的分组中
  • 将admin 管理员加入所有的分组中, 手动将对应的用户设置为管理员,并允许创建分组
  • 有邮箱的用户操作,涉及到线上数据库的更新,线上测试机器的拉取,手动创建虚拟用户并添加对应的权限
  • 合并人员需要设置为master 针对该项目
  • 管理员账户,并修改他们对应的权限控制以及创建的项目数

4. 写脚本将所有通过api创建的用户的确认状态修改为已确认状态,并在项目下执行操作

$ vim lib/task/gitlab/user.rake

执行操作

其他的相关配置

  • 配置smtp 邮件服务

$ vim config/environments/production.rb

  • 配置ldap

$ vim config/gitlab.yml

NOTES: 迁移项目遇到的坑

1. 通过接口获取用户数据,默认只能获取20条, 可以分页,每页最多100条数据

2. 通过接口获取项目,默认只能获取20条

3. 如果是迁移项目,若以前的git项目是有多层级接口,需要修正为一层,比如 java/abc/aaa.git => java/abc_aaa.git, 因为gitlab是不支持多层级结构的

4. 项目创建中有些带有关键字的项目是不能创建成功的,比如 java/admin.git , ruby/services.git

5. gitlab clone项目无论是ssh, http 都会调用http请求,通过http请求判断用户的权限等操作。而我们的http请求是做了ldap访问权限设置的,因此需要对将本机(gitlab服务器)的IP加入ldap的白名单中

相关命令参考

  • 将现有的项目导入到gitlab中去

* 添加所有的用户到所有的分组中(admin的角色是owner)

* 添加所有的用户到所有的项目中(admin的角色是master)

* 添加一个特殊的用户到所有的分组中(角色为developer)

* 添加一个特殊的用户到所有的项目中(角色为developer)

## gitlab 其他相关参考 #### API相关 如果gitlab中有你的公钥,你就可以通过authentication_token来调用api

gitlab api gem

refere: https://github.com/NARKOZ/gitlab

问题: 这个gem包的接口是v2的,但是gitlab 现在稳定版的是 V3了,但是部分功能能用,有些接口中描述的功能是需要自己去写的

other helps

refer:http://mrk1869.com/blog/gitlab_installation/

git升级解决方案

How to Upgrade Git version >= 1.7.10 on CentOS 6

refer:http://tecadmin.net/how-to-upgrade-git-version-1-7-10-on-centos-6/#

git clone项目时报无环境变量

refer:http://thoughtpointers.net/2013/04/18/using-rbenv-with-gitlab-shell-on-os-x/

git push error

解决: 修改 gitlab-shell/config/gitlab.yml 中的redis-cli 的路径为正确的路径

解决: 是由于缺少内存导致的,如果用的是vps的话,用free -m 看看是否是内存太少,或者是没有使用swap内存,如果没有swap,需要加swap,一般是内存的1倍或者1.5倍

Reference

http://mrk1869.com/blog/gitlab_installation/ http://www.digitalsanctuary.com/tech-blog/general/installing-gitlab-on-redhat-enterprise-5-rhel-5.html https://gitlab.com/gitlab-org/gitlab-ce/blob/6-6-stable/doc/install/installation.md http://git.58share.com/help/api/README

this is a project for gitlab api

https://github.com/NARKOZ/gitlab

https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/groups.md

gitolite搭建git服务器

gitolite搭建git服务器

客户端

  1. 生成密钥对

  1. 上传公钥

Server端

  1. 切换到git用户
  2. 安装gitolite

客户端

进入 ~/.ssh/ 目录中

创建文件

然后就可以用域名的形式

git clone git:gitolite-admin 将管理员配置地址clone下来

通过gitolite-admin管理git仓库

 

参考:https://github.com/sitaramc/gitolite

git 使用tig查看版本历史提交

使用tig查看版本控制

tig官网: http://jonas.nitro.dk/tig/

安装

CentOS:

mac:

使用

视图切换: 在主界面按大写S可以察看当前分支的状态,按t打开文件树,在文件树上按B可以察看blame界面,按H显示本地分支,按l显示log summery,在commit上按d显示commit内容。

显示选项: 在察看commit的界面里按.可以切换行号。 在主界面按大写D可以调整commit日期显示。 主界面按A选择显示committer的方式

does not map back to the address

git push origin master时会出来这样的提示
does not map back to the address – POSSIBLE BREAK-IN ATTEMPT!
Address 192.168.100.100 maps to localhost, but this does not map back to the address – POSSIBLE BREAK-IN ATTEMPT!

是因为DNS服务器把 192.168.x.x 的地址都反向解析成 localhost,而DNS服务器是不能由我们控制的,不能对其进行修改。
解决的办法就是,编辑 客户端 /etc/hosts 文件

ok!

gitosis搭建git服务器

git版本控制器的安装以及git服务器的搭建

环境介绍

  • linux系统:CentOS-6.3

1.git的安装和配置

(1)使用yum源安装git

(2)创建全局git配置文件

(更多…)