diff options
author | Junio C Hamano <junkio@cox.net> | 2005-10-29 13:02:18 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-10-29 13:02:18 -0700 |
commit | 0ffdbbfe36a25682cbb2e6b18b9217c93c97b424 (patch) | |
tree | 608a7d756ae586e9c40c88d73f9f1bd98f81f2e8 /local-fetch.c | |
parent | a67c1d0809f683e21baa9119f6a356c81b7e30b4 (diff) | |
download | git-0ffdbbfe36a25682cbb2e6b18b9217c93c97b424.tar.gz git-0ffdbbfe36a25682cbb2e6b18b9217c93c97b424.tar.xz |
Teach local-fetch about lazy object directories.
The latest init-db does not create .git/objects/??/ directories
anymore and expects the users of the repository to create them
as they are needed. local-fetch was not taught about it, which
broke local cloning with Cogito.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'local-fetch.c')
-rw-r--r-- | local-fetch.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/local-fetch.c b/local-fetch.c index 87a93de02..0a071144b 100644 --- a/local-fetch.c +++ b/local-fetch.c @@ -52,9 +52,10 @@ static int setup_indices(void) return 0; } -static int copy_file(const char *source, const char *dest, const char *hex, +static int copy_file(const char *source, char *dest, const char *hex, int warn_if_not_exists) { + safe_create_leading_directories(dest); if (use_link) { if (!link(source, dest)) { pull_say("link %s\n", hex); @@ -150,7 +151,7 @@ static int fetch_file(const unsigned char *sha1) static int object_name_start = -1; static char filename[PATH_MAX]; char *hex = sha1_to_hex(sha1); - const char *dest_filename = sha1_file_name(sha1); + char *dest_filename = sha1_file_name(sha1); if (object_name_start < 0) { strcpy(filename, path); /* e.g. git.git */ |