python 检查目录中的所有git存储库,看它们是否干净或脏。测试时间:GitPython == 0.1.7 argparse == 1.2.1 prettytable == 0.7.2
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 检查目录中的所有git存储库,看它们是否干净或脏。测试时间:GitPython == 0.1.7 argparse == 1.2.1 prettytable == 0.7.2相关的知识,希望对你有一定的参考价值。
import argparse
import os
import git
from prettytable import PrettyTable
if __name__ == "__main__":
p = argparse.ArgumentParser()
p.add_argument("base_dir")
args = p.parse_args()
repos = []
dirs = os.listdir(args.base_dir)
for path in [os.path.join(args.base_dir, d) for d in dirs]:
print "Loading repo %s" % path
try:
repos.append(git.Repo(path))
except git.InvalidGitRepositoryError:
pass
x = PrettyTable(("Path", "Clean"))
x.align["Path"] = "l"
clean = []
dirty = []
error = []
for repo in repos:
print "Checking repo %s" % repo.path
try:
if repo.is_dirty:
dirty.append(repo)
else:
clean.append(repo)
except git.errors.GitCommandError:
error.append(repo)
for repo in sorted(error, key=lambda x: x.path):
x.add_row((repo.path, "Error!"))
for repo in sorted(dirty, key=lambda x: x.path):
x.add_row((repo.path, "Dirty"))
for repo in sorted(clean, key=lambda x: x.path):
x.add_row((repo.path, "Clean"))
print x
print "%d errored, %d dirty, %d clean, %d total" % (
len(error),
len(dirty),
len(clean),
len(repos)
)
以上是关于python 检查目录中的所有git存储库,看它们是否干净或脏。测试时间:GitPython == 0.1.7 argparse == 1.2.1 prettytable == 0.7.2的主要内容,如果未能解决你的问题,请参考以下文章
检查目录是不是为 git 存储库(无需 cd 进入)
提交后将 git 存储库和工作目录复制到另一个位置,在检查状态时给出“未暂存的更改”
有没有办法列出终端中的所有 git 存储库?
计算 git 存储库中的行数
在所有子目录上运行 git pull [重复]
是否可以为子文件夹中的所有存储库执行 Git 状态?