/*
* Copyright (C) 2005 Junio C Hamano
*/
-#include <fcntl.h>
-#include <unistd.h>
-#include <string.h>
-#include <stdlib.h>
#include "cache.h"
#include "commit.h"
-#include <errno.h>
-#include <stdio.h>
#include "pull.h"
static int use_link = 0;
static int use_symlink = 0;
static int use_filecopy = 1;
-static int verbose = 0;
static char *path;
-static void say(const char *fmt, const char *hex) {
- if (verbose)
- fprintf(stderr, fmt, hex);
-}
-
int fetch(unsigned char *sha1)
{
static int object_name_start = -1;
strcpy(filename + object_name_start + 3, hex + 2);
if (use_link) {
if (!link(filename, dest_filename)) {
- say("link %s\n", hex);
+ pull_say("link %s\n", hex);
return 0;
}
/* If we got ENOENT there is no point continuing. */
}
}
if (use_symlink && !symlink(filename, dest_filename)) {
- say("symlink %s\n", hex);
+ pull_say("symlink %s\n", hex);
return 0;
}
if (use_filecopy) {
munmap(map, st.st_size);
close(ofd);
if (status)
- fprintf(stderr, "cannot write %s (%ld bytes)\n",
- dest_filename, st.st_size);
+ fprintf(stderr, "cannot write %s\n", dest_filename);
else
- say("copy %s\n", hex);
+ pull_say("copy %s\n", hex);
return status;
}
fprintf(stderr, "failed to copy %s with given copy methods.\n", hex);
}
static const char *local_pull_usage =
-"git-local-pull [-c] [-t] [-a] [-l] [-s] [-n] [-v] commit-id path";
+"git-local-pull [-c] [-t] [-a] [-l] [-s] [-n] [-v] [-d] commit-id path";
/*
* By default we only use file copy.
get_tree = 1;
else if (argv[arg][1] == 'c')
get_history = 1;
+ else if (argv[arg][1] == 'd')
+ get_delta = 0;
else if (argv[arg][1] == 'a') {
get_all = 1;
get_tree = 1;
else if (argv[arg][1] == 'n')
use_filecopy = 0;
else if (argv[arg][1] == 'v')
- verbose = 1;
+ get_verbosely = 1;
else
usage(local_pull_usage);
arg++;