Re: [PATCHv2] Warnings before rebasing -i published history
- From
Matthieu Moy <matthieu.moy@grenoble-inp.fr>
- Date
- Jun 11, 2012, 10:55 UTC
- Message-ID
- <vpq1ulm86dh.fsf@bauges.imag.fr>
- In-Reply-To
- <1339409091-28150-1-git-send-email-Lucien.Kong@ensimag.imag.fr>
Lucien Kong <Lucien.Kong@ensimag.imag.fr> writes:
Show 5 quoted lines
> "git rebase -i" can be very dangerous if used on an already published > history. This code detects that one is rewriting a commit that is an > ancestor of a remote-tracking branch, and warns the user through the > editor. This feature is controlled by a new config key > rebase.checkremoterefs.
For the lazy, you could provide an example of result in the commit message. People don't want to review how the patch is written if they disagree with the result.
> + two_sha1=$(echo "$tmp" | sed -n 1p) && > + three_sha1=$(echo "$tmp" | sed -n 2p) && > + four_sha1=$(echo "$tmp" | sed -n 3p) &&
IIRC, the test suite was made to give reproducible sha1, so you shouldn't need these.
Show 6 quoted lines
> + echo "pick $two_sha1 two_commit" >expected && > + echo "# Commit above this line appear in: origin/master" >>expected && > + echo "pick $three_sha1 three_commit" >>expected && > + echo "# Commit above this line appear in: origin/master" >>expected && > + echo "pick $four_sha1 four_commit" >>expected && > + test_cmp expected actual
You don't want to repeat "Commit above this line" for each commit. What I meant in my previous suggestion was
pick foo pick bar # Commits above this line appear in origin/master pick boz
i.e. just show where the remote points once.
-- Matthieu Moy http://www-verimag.imag.fr/~moy/