虽一毫而莫取
发布于
批量迁移邮件和代码
还有几天就将告别一段生活。TODO 里搁置了几天的任务,今天总算完成了。
迁移邮件
公司用的是腾讯企业邮箱,迁移邮件方法,最直接的是批量转发。这样效率太低,一次只能转发 10 封。于是下载了 Foxmail 客户端,支持直接用微信登录。然后可以把邮件全部都转移到不同账号的文件夹下面。我自己也有腾讯企业邮箱,于是直接右键完成操作。理论上公司邮箱注销了,不至于影响到我个人的邮箱吧?
迁移代码
代码仓库都在 git gogs 上,首先获取所有仓库地址:
[...document.querySelectorAll('li.private a')].map(x=>x.href).join('\n')
将链接全都复制到 文件夹里的 repo.txt
里边。
然后写一个 powershell 脚本,完成以下任务:
- 获取
repo.txt
的内容 - 遍历每一个地址
- 克隆仓库
- 进到仓库目录
- 遍历所有分支
- 拉取最新代码
一开始一直报错,还以为是要异步完成才行,结果发现忘记切换目录了
$file = get-content repo.txt;
foreach ($r in $file) {
git clone $r
$name = $r -Split "/"
cd $name[4]
$result = git branch -r;
echo $result
foreach ($n in $result) {
if ( -not ( $n -match '->' ) ) {
git checkout -t $n.Trim(" `t`n`r")
git pull
}
}
cd ../
}
2021年5月27日 更新:
获取 gitLab 上的仓库地址:
a = [...document.querySelectorAll('.projects-list>li h3 a')].map(x=>x.href).join('\n')
copy(a)
shell 脚本:
- 获取
repo
的内容 - 先进到项目目录,克隆仓库,再进到仓库目录
#!/bin/bash
while read line; do
echo $line;
dir="$(cut -d'/' -f4 <<<$line)";
dir2="$(cut -d'/' -f5 <<<$line)";
mkdir -p $dir
cd $dir
git clone $line $dir2;
cd $dir2
branch=$(git branch -r | tail -n +2)
for b in $branch ; do
git checkout -t $b
git pull
done;
cd ../../
done < repo