gitolite – 代码仓库管理
前三文 gitolite 代码仓库构建,分支管理和仓库分配已经讲清楚。如何屏蔽已经搭建完成的代码仓?某天发现其它更好用托管方式,如何删除 gitolite?
提示:此文章屏蔽某些代码仓,以及删除 gitolite。
文章目录
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 # 可能存在
总结
数据无价,请谨慎删除;删除永远比搭建容易。