Browse Source

[PATCH] Implement --recover for git-*-fetch

With the --recover option, we verify that we have absolutely
everything reachable from the target, not assuming that things
reachable from refs will be complete.

Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Daniel Barkalow 20 years ago committed by Junio C Hamano
parent
commit
820eca68c2
  1. 5
      fetch.c
  2. 3
      fetch.h
  3. 2
      http-fetch.c
  4. 2
      local-fetch.c
  5. 2
      ssh-fetch.c

5
fetch.c

@ -15,6 +15,7 @@ int get_tree = 0; @@ -15,6 +15,7 @@ int get_tree = 0;
int get_history = 0;
int get_all = 0;
int get_verbosely = 0;
int get_recover = 0;
static unsigned char current_commit_sha1[20];

void pull_say(const char *fmt, const char *hex)
@ -214,7 +215,9 @@ int pull(char *target) @@ -214,7 +215,9 @@ int pull(char *target)
return -1;
}

for_each_ref(mark_complete);
if (!get_recover) {
for_each_ref(mark_complete);
}

if (interpret_target(target, sha1))
return error("Could not interpret %s as something to pull",

3
fetch.h

@ -40,6 +40,9 @@ extern int get_all; @@ -40,6 +40,9 @@ extern int get_all;
/* Set to be verbose */
extern int get_verbosely;

/* Set to check on all reachable objects. */
extern int get_recover;

/* Report what we got under get_verbosely */
extern void pull_say(const char *, const char *);


2
http-fetch.c

@ -491,6 +491,8 @@ int main(int argc, char **argv) @@ -491,6 +491,8 @@ int main(int argc, char **argv)
} else if (argv[arg][1] == 'w') {
write_ref = argv[arg + 1];
arg++;
} else if (!strcmp(argv[arg], "--recover")) {
get_recover = 1;
}
arg++;
}

2
local-fetch.c

@ -231,6 +231,8 @@ int main(int argc, char **argv) @@ -231,6 +231,8 @@ int main(int argc, char **argv)
get_verbosely = 1;
else if (argv[arg][1] == 'w')
write_ref = argv[++arg];
else if (!strcmp(argv[arg], "--recover"))
get_recover = 1;
else
usage(local_pull_usage);
arg++;

2
ssh-fetch.c

@ -119,6 +119,8 @@ int main(int argc, char **argv) @@ -119,6 +119,8 @@ int main(int argc, char **argv)
} else if (argv[arg][1] == 'w') {
write_ref = argv[arg + 1];
arg++;
} else if (!strcmp(argv[arg], "--recover")) {
get_recover = 1;
}
arg++;
}

Loading…
Cancel
Save