这个 python 脚本是迄今为止我想出的最好的。我只是把它拼凑在一起,粗略地使用了第一对夫妇,似乎行为正确,但我忍不住觉得有一种更简单的方法来做到这一点,甚至是内置的东西(尽管我已经搜索过和搜索过)。
感谢您的帮助。
#!/usr/bin/env python import sys import subprocess s = subprocess.Popen("git svn log --show-commit --oneline".split(" "), stdout=subprocess.PIPE) # Grab the last svn commit's data revision, sha, message = s.stdout.readlines().pop(0).split(" | ") # Grab display of commits since svn rebase s = subprocess.Popen(("git log %s..HEAD --oneline" % sha).split(" "), stdout=subprocess.PIPE) log = s.stdout.read().strip() if len(log.splitlines()) > 0: print ("%d commits ahead of svn. To push them to svn, use 'git svn dcommit'.\n" % len(log.splitlines())) print log else: print "No local commits that need 'git svn dcommit'" sys.exit(0)
最佳答案
在尝试了 Greg 的建议后,我得到了这个:
git log remotes/trunk.. --oneline
我将使用别名或将其包装在一个小脚本中。
之所以可行而他的建议没有,是因为我的 remopte svn 分支是 remotes/trunk
而不是 git-svn
。我不知道这是否是标准的,特别是因为 Greg 假定 git-svn
。
关于git - 命令(或脚本)类似于 git status 以显示自上次 git svn dcommit 以来的所有本地提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2097737/