aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2007-02-25 19:09:59 -0800
committerJunio C Hamano <junkio@cox.net>2007-02-25 19:09:59 -0800
commit0b1f6475570b915c56f380f2bd790ff94e606ef4 (patch)
tree8fb327c2cf258674d67ff9a60261f3eade002e54
parentd2dc6222d4e2f7fa5efc82175d14d60d7b804687 (diff)
parent17cd29b25c0f480a3c6e1dd9617d9c6046e3c280 (diff)
downloadgit-0b1f6475570b915c56f380f2bd790ff94e606ef4.tar.gz
git-0b1f6475570b915c56f380f2bd790ff94e606ef4.tar.xz
Merge branch 'jc/merge-symlink' into maint
* jc/merge-symlink: merge-recursive: fix longstanding bug in merging symlinks merge-index: fix longstanding bug in merging symlinks
-rw-r--r--merge-index.c2
-rw-r--r--merge-recursive.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/merge-index.c b/merge-index.c
index a9983dd78..7027d7865 100644
--- a/merge-index.c
+++ b/merge-index.c
@@ -60,7 +60,7 @@ static int merge_entry(int pos, const char *path)
break;
found++;
strcpy(hexbuf[stage], sha1_to_hex(ce->sha1));
- sprintf(ownbuf[stage], "%o", ntohl(ce->ce_mode) & (~S_IFMT));
+ sprintf(ownbuf[stage], "%o", ntohl(ce->ce_mode));
arguments[stage] = hexbuf[stage];
arguments[stage + 4] = ownbuf[stage];
} while (++pos < active_nr);
diff --git a/merge-recursive.c b/merge-recursive.c
index 58989424d..397a7ad85 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -589,7 +589,7 @@ static void update_file_flags(const unsigned char *sha,
memcpy(lnk, buf, size);
lnk[size] = '\0';
mkdir_p(path, 0777);
- unlink(lnk);
+ unlink(path);
symlink(lnk, path);
} else
die("do not know what to do with %06o %s '%s'",