@matheusbsbs / matheus-bagliano / commits / fdabc242f4
Fork 0

clone: fall back to copying if hardlinking fails

Note that it stops trying hardlinks if any fail. Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Daniel Barkalow committed May 20, 2008 at 14:15 UTC fdabc242f465771116e08d1ea3737fdb7453b2f1
1 file changed +7 -5
builtin-clone.c
+7 -5
@@ -207,13 +207,15 @@ static void copy_or_link_directory(char *src, char *dest)
207
208 if (unlink(dest) && errno != ENOENT)
209 die("failed to unlink %s\n", dest);
210 - if (option_no_hardlinks) {
211 - if (copy_file(dest, src, 0666))
212 - die("failed to copy file to %s\n", dest);
213 - } else {
214 - if (link(src, dest))
210 + if (!option_no_hardlinks) {
211 + if (!link(src, dest))
212 + continue;
213 + if (option_local)
214 die("failed to create link %s\n", dest);
215 + option_no_hardlinks = 1;
216 }
217 + if (copy_file(dest, src, 0666))
218 + die("failed to copy file to %s\n", dest);
219 }
220 closedir(dir);
221 }