我已经根据Adam Spiers 在之前的 SO 线程中的回答设置了一个流程,以定期将 Git 存储库发布到 SVN 存储库中的路径。一切都很好,但有一件我还没有弄清楚。当我使用 获取后续 Git 更改时cherry-pick
,我如何确定在这个 Git 端发生了哪些新更改,需要将其挑选到 SVN 端?
更具体地说,在我将 Git 历史初始推送到 SVN 之后,我现在坐在一个master
与 Git 起源具有相同内容和补丁历史的分支上,但它origin/master
基本上与它的完整历史不同:
% git --no-pager diff master git-svn
% git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 3 and 2 different commit(s) each, respectively.
#
nothing to commit (working directory clean)
现在,我获取新的上游更改:
% git fetch
remote: Counting objects: 5, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From /cygdrive/c/foo/git/testrep
6d7dd94..08d3d19 master -> origin/master
在这一点上,我需要弄清楚哪些修订需要精心挑选,然后我会挑选它们并做一个git svn dcommit
. 但我不知道如何获得樱桃清单。我已经尝试了各种git cherry
命令,并且都git cherry origin master
报告git cherry master origin
了每边基本上每一个变化的长列表。
我应该求助于解析日志文件中的最后一个樱桃挑选吗?我正在使用git cherry-pick -x
,所以我确实有记录。