diff options
author | Luben Tuikov <ltuikov@yahoo.com> | 2006-10-12 14:52:42 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-10-15 23:06:31 -0700 |
commit | a9cb3c6ecb97c4734423045f47899e03f135d3bd (patch) | |
tree | fa2f08dac9932d1d5e20bedcecc2e40e17bc2d25 /git-revert.sh | |
parent | 1974bf620b436b014bfe86179ff76485610a4887 (diff) | |
download | git-a9cb3c6ecb97c4734423045f47899e03f135d3bd.tar.gz git-a9cb3c6ecb97c4734423045f47899e03f135d3bd.tar.xz |
git-revert with conflicts to behave as git-merge with conflicts
In a busy project, reverting a commit almost always results
in a conflict between one or more files (depending on the
commit being reverted). It is useful to record this
conflict in the commit-to-be message of the resulting commit
(after the resolve). The process now becomes:
git-revert <SHA-1>
<git complains and prints failed automatic>
<user manually resolves>
git-update-index <resolved files>
git-commit -s
And the commit message is now a merge of the revert commit
message and the conflict commit message, giving the user a
chance to edit it or add more information:
Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-revert.sh')
-rwxr-xr-x | git-revert.sh | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/git-revert.sh b/git-revert.sh index 2bf35d116..066e67753 100755 --- a/git-revert.sh +++ b/git-revert.sh @@ -141,9 +141,18 @@ git-read-tree -m -u --aggressive $base $head $next && result=$(git-write-tree 2>/dev/null) || { echo >&2 "Simple $me fails; trying Automatic $me." git-merge-index -o git-merge-one-file -a || { + mv -f .msg "$GIT_DIR/MERGE_MSG" + { + echo ' +Conflicts: +' + git ls-files --unmerged | + sed -e 's/^[^ ]* / /' | + uniq + } >>"$GIT_DIR/MERGE_MSG" echo >&2 "Automatic $me failed. After resolving the conflicts," echo >&2 "mark the corrected paths with 'git-update-index <paths>'" - echo >&2 "and commit with 'git commit -F .msg'" + echo >&2 "and commit the result." case "$me" in cherry-pick) echo >&2 "You may choose to use the following when making" |