I struggled with the same problem and came up with similar ideas, such as Ryan and Adam Dymtruk, and found them not very satisfactory: comparing the final analysis is difficult and also does not show you where the βerrorβ was introduced if you find it.
In my current rebuild workflow, there is a comparison of each reinstalled commit with the original, so I can identify and fix potential errors as they occur and not restart again. I use the following pair of git aliases to facilitate this:
rc = !git diff -w $(cat .git/rebase-merge/stopped-sha) > .git/rebase-merge/current-diff rd = !git diff -w $(cat .git/rebase-merge/stopped-sha) | diff
git rc
stores the difference between the latest HEAD
version from a branch that is reinstalling. After replaying the next commit, git rd
compares this saved diff with the difference between the new HEAD
and the next commit on the branch allocation. Therefore, it shows that only the difference (βerrorβ) is introduced by replaying the last commit.
After checking diff, call git rc
to update the saved diff and continue rebase.
Instead of manually calling git rc
and git rd
you can even add them to your git-rebase-todo
so that they are called automatically after replaying each commit.
kynan source share