[PATCH] Create a symbolic link as a regular file on filesystems without symlinks.
- From
Johannes Sixt <johannes.sixt@telecom.at>
- Date
- Feb 27, 2007, 21:41 UTC
- Message-ID
- <11726125052184-git-send-email-johannes.sixt@telecom.at>
- In-Reply-To
- <1172612504272-git-send-email-johannes.sixt@telecom.at>
If core.symlinks = false, the filesystem is actually populated with a regular file that contains the link text.
Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> --- builtin-apply.c | 2 +- entry.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/builtin-apply.c b/builtin-apply.c index bec95d6..1636807 100644 --- a/builtin-apply.c +++ b/builtin-apply.c @@ -2284,7 +2284,7 @@ static int try_create_file(const char *path, unsigned int mode, const char *buf, { int fd; - if (S_ISLNK(mode)) + if (trust_symlink_fmt && S_ISLNK(mode)) /* Although buf:size is counted string, it also is NUL * terminated. */ diff --git a/entry.c b/entry.c index c2641dd..3d5c0e4 100644 --- a/entry.c +++ b/entry.c @@ -100,6 +100,11 @@ static int write_entry(struct cache_entry *ce, char *path, struct checkout *stat if (to_tempfile) { strcpy(path, ".merge_link_XXXXXX"); fd = mkstemp(path); + } else if (!trust_symlink_fmt) { + /* write a regular file */ + fd = create_file(path, 0666); + } + if (to_tempfile || !trust_symlink_fmt) { if (fd < 0) { free(new); return error("git-checkout-index: unable to create "
-- 1.5.0.19.gddff