有没有办法用git-svn来确定我前面或后面有多少提交?
谢谢!
答案 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