git - 命令(或脚本)类似于 git status 以显示自上次 git svn dcommit 以来的所有本地提交?

标签 git git-svn

这个 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/

相关文章:

git - 如何设置 gitattributes 来过滤文件的一部分?

Git-Svn:在 dcommit 之后保留提交时间戳

git - 如何在git中获取文件的版本树?

git:svn不是git命令-Mac

git 说文件已被修改但我还没有碰过它们

git - 使用git笔记的多个分支

git - git 上的每个目录权限

git - 如何在一次操作中执行 git svn fetch + rebase?

git - 默认情况下,如何使用我的所有参数制作 git log show tree?

git - 为什么 `git blame` 和 GitHub blame 不一样?