gitolite – 代码仓库管理

前三文 gitolite 代码仓库构建,分支管理和仓库分配已经讲清楚。如何屏蔽已经搭建完成的代码仓?某天发现其它更好用托管方式,如何删除 gitolite?


提示:此文章屏蔽某些代码仓,以及删除 gitolite。


文章目录

  • gitolite -- 代码仓库管理
  • Gitolite 托管清除
  • 1. gitolite 镜像仓变更
  • 1.1 镜像仓变更原理
  • 1.2 镜像仓变更示例
  • 2. gitolite 镜像仓删除
  • 2.1 gitolite 托管 repo 镜像仓删除
  • 2.2 删除镜像仓实体源码
  • 3. 卸载 Gitolite
  • 3.1 删除 Gitolite 源文件
  • 3.2 删除配置文件
  • 总结



Gitolite 托管清除

a) gitolite 镜像仓变更
b) gitolite 镜像仓删除
c) gitolite 卸载


1. gitolite 镜像仓变更

Gerrit 管理源码托管服务器难免发生故障,必要时需要数据迁移到另外一台服务器。此时 gitolite 可能需要重构,代码仓路径则会发生变更;重新同步代码时间过长,能否在原基础上切换代码仓? 当然可以。

1.1 镜像仓变更原理

每个代码仓通过切换 remote url 方式,可实现同步远程仓变更;从单个仓延拓到全部仓即可弯沉代码仓变更。

git remote set-url origin_name url_name

借助 Gerrit 执行脚本方式,协助完成

repo forall -c xxx.sh

1.2 镜像仓变更示例

如果仅仅是代码托管服务区变更或者 gitolite 路径变更,简单编写筛选仓库源名并替换相关 URL 脚本 url_change.sh。
例如原来代码仓路径 git@192.168.17.24:356x-r/xxxx 变更为 git@192.168.14.38:rk356x-r
简单编写脚本 即可实现代码迁移。

#!/bin/bash
# *********************** #
# Author by Sena
# *********************** #

URLA='git@192.168.17.24:356x-r'
URLB='git@192.168.14.38:rk356x-r'

if echo "$(git remote get-url $(git remote))" | grep -qwi $URLA ; then
    remote_path=$(git remote get-url $(git remote) | awk -F $URLA '{print $2 }')

    git remote set-url $(git remote) $URLB$remote_path
    echo remote set-url $(git remote) $URLB$remote_path
fi
exit 0

启动 repo 执行脚本,等待执行完成即可完成代码仓迁移。

cd 356x-android11
.repo/repo/repo forall -c ~/356x-android11/url-change.sh

2. gitolite 镜像仓删除

Android repo 镜像仓搭建完成后,代码镜像不断更新迭代。有时需要删除原有代码镜像仓。

2.1 gitolite 托管 repo 镜像仓删除

gitolite-admin 配置文件表中屏蔽部分仓路径,可管控用户访问。

cd ~/gitolite-admin
vi conf/gitolite.conf
-include "harmony.conf"
-@harmonies = user
+# include "harmony.conf"
+# @harmonies = user
 
-repo @harmony
-    RW+     =   @harmonies
+# repo @harmony
+#    RW+     =   @harmonies

2.2 删除镜像仓实体源码

gitolite 上 直接 ”删除“ gerrit 仓后,可能会出现无法链接到仓的错误提示。此时则需要重复 2.1 中方式则可以解决此问题。

cd ~/repositories/
rm -rf harmony

3. 卸载 Gitolite

3.1 删除 Gitolite 源文件

Gitolite 安装到用户 bin 目录,如果其它目录根据实际情况删除文件

rm rf ~/bin

3.2 删除配置文件

Gitolite 安装时在当前用户目录生成配置目录~/.gitolite 和初始化配置信息 ~/.gitolite.rc; 卸载时需要一并删除;~/.ssh/authorized_keys中 存放认证用户同样需要一并删除

~/.gitolite
~/.ssh/authorized_keys
~/.gitolite.rc
/var/gitolite # 可能存在
~/share/gitolite # 可能存在

总结

数据无价,请谨慎删除;删除永远比搭建容易。