path: root/
diff options
authorLuben Tuikov <>2006-10-12 21:52:42 (GMT)
committerJunio C Hamano <>2006-10-16 06:06:31 (GMT)
commita9cb3c6ecb97c4734423045f47899e03f135d3bd (patch)
treefa2f08dac9932d1d5e20bedcecc2e40e17bc2d25 /
parent1974bf620b436b014bfe86179ff76485610a4887 (diff)
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 <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to '')
1 files changed, 10 insertions, 1 deletions
diff --git a/ b/
index 2bf35d1..066e677 100755
--- a/
+++ b/
@@ -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 '
+ git ls-files --unmerged |
+ sed -e 's/^[^ ]* / /' |
+ uniq
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
echo >&2 "You may choose to use the following when making"