如何查看repo sync操作中变更的仓库及上次同步更新的仓库?
嘿,这俩问题都是用repo工具时经常遇到的需求,我来给你拆解下具体操作:
一、在repo sync执行过程中查看哪些仓库发生了变更
其实最直接的方式就是盯着控制台输出:
- repo sync运行时会实时打印每个仓库的同步状态,要是看到类似
Fetching project xxx之后跟着Updating a1b2c3d..x9y8z7w的内容,就说明这个仓库有代码变更;如果显示Already up to date,那就是该仓库没有更新。 - 要是默认输出不够详细,你可以加
-v参数执行同步:repo sync -v。这样会输出更多细节,包括每个仓库的分支对比、拉取的具体提交记录,能更清晰地看到哪些仓库有更新动作。
二、列出上次repo sync操作更新的仓库列表
这里有几个实用的方法,你可以根据需求选:
- 查看repo的日志文件:repo会把每次sync的日志存在
.repo/repo/logs/目录下,里面的文件是按时间戳命名的(比如sync_2024-05-20T12-34-56.log)。找到最新的那个日志文件,用cat .repo/repo/logs/最新的日志文件名或者less .repo/repo/logs/最新的日志文件名打开,搜索Updating关键词就能快速定位到所有上次sync时更新过的仓库,日志里还会记录每个仓库的更新细节。 - 用repo forall结合git日志筛选:你可以执行
repo forall -c 'git log --oneline --since="$(date -d "1 hour ago")"',这里的时间范围可以根据你上次sync的时间调整——比如上次sync是昨天,就改成--since="1 day ago"。这个命令会遍历所有仓库,显示指定时间内的提交记录,有输出的仓库就是上次sync更新过的。 - 模拟同步提前看变更:如果想提前知道哪些仓库会在sync时更新,还可以用
repo sync --dry-run,这个命令会模拟同步过程,不会实际修改本地代码,能提前看到所有待更新的仓库列表。
内容的提问来源于stack exchange,提问作者GAMELASTER
相关产品推荐
相关产品推荐

