我有一个包含许多分支的git仓库。我喜欢根据它们的活跃程度对分支进行排序。虽然我可以查找具有最新提交的那些,但我宁愿找到过去N天中提交次数最多的那些并按照这种方式排序。
关于如何做到这一点的任何想法?
提前致谢。
答案 0 :(得分:0)
您可以使用运行各种shell命令的简单脚本来执行此操作。
首先,您的脚本需要解析所有分支的名称。使用
git branch
将所有分支打印到stdout。
然后,您需要获取每个分支的提交数量。使用
git log BRANCH_NAME | grep -wc commit
其中BRANCH_NAME
是您正在检查提交数量的分支的名称。
然后,您只需要打印最大值。
一个简单的python脚本如下所示:
import subprocess
active_branch = "not found"
max_num = 0
cmd = "git branch --no-color"
process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
result = process.communicate()[0].replace("*", "").replace(" ", "").strip().split("\n")
for branch in result:
cmd = "git log " + branch + " | grep -wc commit"
process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
number = int(process.communicate()[0])
if number > max_num:
active_branch = branch
max_num = number
print("%s is the most active branch with %d commits." % (active_branch, max_num))