[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>
This commit is contained in:
parent
5da1606d0b
commit
820eca68c2
5
fetch.c
5
fetch.c
@ -15,6 +15,7 @@ int get_tree = 0;
|
|||||||
int get_history = 0;
|
int get_history = 0;
|
||||||
int get_all = 0;
|
int get_all = 0;
|
||||||
int get_verbosely = 0;
|
int get_verbosely = 0;
|
||||||
|
int get_recover = 0;
|
||||||
static unsigned char current_commit_sha1[20];
|
static unsigned char current_commit_sha1[20];
|
||||||
|
|
||||||
void pull_say(const char *fmt, const char *hex)
|
void pull_say(const char *fmt, const char *hex)
|
||||||
@ -214,7 +215,9 @@ int pull(char *target)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
for_each_ref(mark_complete);
|
if (!get_recover) {
|
||||||
|
for_each_ref(mark_complete);
|
||||||
|
}
|
||||||
|
|
||||||
if (interpret_target(target, sha1))
|
if (interpret_target(target, sha1))
|
||||||
return error("Could not interpret %s as something to pull",
|
return error("Could not interpret %s as something to pull",
|
||||||
|
3
fetch.h
3
fetch.h
@ -40,6 +40,9 @@ extern int get_all;
|
|||||||
/* Set to be verbose */
|
/* Set to be verbose */
|
||||||
extern int get_verbosely;
|
extern int get_verbosely;
|
||||||
|
|
||||||
|
/* Set to check on all reachable objects. */
|
||||||
|
extern int get_recover;
|
||||||
|
|
||||||
/* Report what we got under get_verbosely */
|
/* Report what we got under get_verbosely */
|
||||||
extern void pull_say(const char *, const char *);
|
extern void pull_say(const char *, const char *);
|
||||||
|
|
||||||
|
@ -491,6 +491,8 @@ int main(int argc, char **argv)
|
|||||||
} else if (argv[arg][1] == 'w') {
|
} else if (argv[arg][1] == 'w') {
|
||||||
write_ref = argv[arg + 1];
|
write_ref = argv[arg + 1];
|
||||||
arg++;
|
arg++;
|
||||||
|
} else if (!strcmp(argv[arg], "--recover")) {
|
||||||
|
get_recover = 1;
|
||||||
}
|
}
|
||||||
arg++;
|
arg++;
|
||||||
}
|
}
|
||||||
|
@ -231,6 +231,8 @@ int main(int argc, char **argv)
|
|||||||
get_verbosely = 1;
|
get_verbosely = 1;
|
||||||
else if (argv[arg][1] == 'w')
|
else if (argv[arg][1] == 'w')
|
||||||
write_ref = argv[++arg];
|
write_ref = argv[++arg];
|
||||||
|
else if (!strcmp(argv[arg], "--recover"))
|
||||||
|
get_recover = 1;
|
||||||
else
|
else
|
||||||
usage(local_pull_usage);
|
usage(local_pull_usage);
|
||||||
arg++;
|
arg++;
|
||||||
|
@ -119,6 +119,8 @@ int main(int argc, char **argv)
|
|||||||
} else if (argv[arg][1] == 'w') {
|
} else if (argv[arg][1] == 'w') {
|
||||||
write_ref = argv[arg + 1];
|
write_ref = argv[arg + 1];
|
||||||
arg++;
|
arg++;
|
||||||
|
} else if (!strcmp(argv[arg], "--recover")) {
|
||||||
|
get_recover = 1;
|
||||||
}
|
}
|
||||||
arg++;
|
arg++;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user