Git-svn:确定前面或后面的提交数量

时间:2013-06-04 15:34:55

标签: git-svn

有没有办法用git-svn来确定我前面或后面有多少提交?

谢谢!

2 个答案:

答案 0 :(得分:1)

不直接。但是,您可以做的是从Subversion存储库的本地副本中找出您前方和/或后方的距离。

首先从git svn fetch开始,让您的本地存储库保持最新状态,然后从那里开始。

要了解您当前所在的分支中有多少次提交,但尚未提交给Subversion服务器的提交,有一大堆技巧,但最明显的是运行{{1 ,并查看列出要推送到Subversion的提交数量。

简短版本:运行git svn dcommit --dry-run

要计算出Subversion存储库中有多少提交,但是你正在处理的分支中没有,你需要先解决或知道你正在使用的Subversion分支的名称。您可以从git svn dcommit --dry-run | grep diff-tree | wc -l的第一行或git svn dcommit --dry-run开始执行此操作。

假设您的分支是git log -1 --grep git-svn-id,而父Subversion分支是master。然后,您可以运行remotes/svn/trunk来计算远程主干中而不是分支中的所有提交。

作为上述所有内容的替代方法,在创建分支时,将其指定为跟踪Subversion分支。例如,当我基于远程主干创建本地分支时,我按如下方式创建它:

git svn rev-list master..remotes/svn/trunk | wc -l

现在,每当我git checkout -b new-branch-name -t remotes/svn/trunk git status时,输出都会包含一条线,告诉我每个分支相对于另一个分支的前后距离。

对于已存在的分支,您可以将其设置为跟踪Subversion分支,如下所示:

git checkout new-branch-name

答案 1 :(得分:0)

在git> = 1.9中,似乎存在一个错误,导致无法使用--set-upstream/--set-upstream-to

在git 2.23.0中对我也不起作用

解决方法是手动修改.gitconfig:how-to-set-upstream-branch-in-git-svn