aboutsummaryrefslogtreecommitdiff
path: root/builtin-rerere.c
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2007-04-05 16:34:51 -0700
committerJunio C Hamano <junkio@cox.net>2007-04-05 16:34:51 -0700
commit77e6f5bc1009aa588a3b2235758bf5be13b23d85 (patch)
treecb040ac72459291eda6adf1aa9f10778bc54cdbf /builtin-rerere.c
parent33580fbd308593e36395926fd35b501976ad322a (diff)
parentb5da24679ec73f458988523dce9dd17b4e9b0e02 (diff)
downloadgit-77e6f5bc1009aa588a3b2235758bf5be13b23d85.tar.gz
git-77e6f5bc1009aa588a3b2235758bf5be13b23d85.tar.xz
Merge branch 'maint'
* maint: Fix lseek(2) calls with args 2 and 3 swapped Honor -p<n> when applying git diffs Fix dependency of common-cmds.h Fix renaming branch without config file DESTDIR support for git/contrib/emacs gitweb: Fix bug in "blobdiff" view for split (e.g. file to symlink) patches Document --left-right option to rev-list. Revert "builtin-archive: use RUN_SETUP" rename contrib/hooks/post-receieve-email to contrib/hooks/post-receive-email. rerere: make sorting really stable. Fix t4200-rerere for white-space from "wc -l"
Diffstat (limited to 'builtin-rerere.c')
-rw-r--r--builtin-rerere.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/builtin-rerere.c b/builtin-rerere.c
index b463c07f0..8c2c8bdc1 100644
--- a/builtin-rerere.c
+++ b/builtin-rerere.c
@@ -117,10 +117,13 @@ static int handle_file(const char *path,
else if (!prefixcmp(buf, "======="))
hunk = 2;
else if (!prefixcmp(buf, ">>>>>>> ")) {
+ int one_is_longer = (one->nr > two->nr);
+ int common_len = one_is_longer ? two->nr : one->nr;
+ int cmp = memcmp(one->ptr, two->ptr, common_len);
+
hunk_no++;
hunk = 0;
- if (memcmp(one->ptr, two->ptr, one->nr < two->nr ?
- one->nr : two->nr) > 0) {
+ if ((cmp > 0) || ((cmp == 0) && one_is_longer)) {
struct buffer *swap = one;
one = two;
two = swap;