summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 9053521)
raw | patch | inline | side by side (parent: 9053521)
author | Junio C Hamano <junkio@cox.net> | |
Mon, 2 May 2005 04:07:40 +0000 (21:07 -0700) | ||
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | |
Mon, 2 May 2005 04:07:40 +0000 (21:07 -0700) |
Currently pull() calls fetch() without checking whether we have
the wanted object but all of the existing fetch()
implementations perform this check and return success
themselves. This patch moves the check to the caller.
I will be sending a trivial git-local-pull which depends on
this in the next message.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
the wanted object but all of the existing fetch()
implementations perform this check and return success
themselves. This patch moves the check to the caller.
I will be sending a trivial git-local-pull which depends on
this in the next message.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
http-pull.c | patch | blob | history | |
pull.c | patch | blob | history | |
rpull.c | patch | blob | history |
diff --git a/http-pull.c b/http-pull.c
index d877c4abe3ff7766d858bfeac5c9a0eaf1385b65..f693aba61b4dcb4b738faf1335ec74aa1545e45d 100644 (file)
--- a/http-pull.c
+++ b/http-pull.c
char *url;
char *posn;
- if (has_sha1_file(sha1)) {
- return 0;
- }
-
local = open(filename, O_WRONLY | O_CREAT | O_EXCL, 0666);
if (local < 0)
index 86a7b6901fe69a82c12c3470b456982ef52cebd0..bbef245fc8321a64f5bc936ac2c221c71983f68e 100644 (file)
--- a/pull.c
+++ b/pull.c
int get_history = 0;
int get_all = 0;
+static int make_sure_we_have_it(unsigned char *sha1)
+{
+ if (has_sha1_file(sha1))
+ return 0;
+ return fetch(sha1);
+}
+
static int process_tree(unsigned char *sha1)
{
struct tree *tree = lookup_tree(sha1);
return -1;
for (entries = tree->entries; entries; entries = entries->next) {
- if (fetch(entries->item.tree->object.sha1))
+ if (make_sure_we_have_it(entries->item.tree->object.sha1))
return -1;
if (entries->directory) {
if (process_tree(entries->item.tree->object.sha1))
{
struct commit *obj = lookup_commit(sha1);
- if (fetch(sha1))
+ if (make_sure_we_have_it(sha1))
return -1;
if (parse_commit(obj))
return -1;
if (get_tree) {
- if (fetch(obj->tree->object.sha1))
+ if (make_sure_we_have_it(obj->tree->object.sha1))
return -1;
if (process_tree(obj->tree->object.sha1))
return -1;
for (; parents; parents = parents->next) {
if (has_sha1_file(parents->item->object.sha1))
continue;
- if (fetch(parents->item->object.sha1)) {
+ if (make_sure_we_have_it(parents->item->object.sha1)) {
/* The server might not have it, and
* we don't mind.
*/
retval = get_sha1_hex(target, sha1);
if (retval)
return retval;
- retval = fetch(sha1);
+ retval = make_sure_we_have_it(sha1);
if (retval)
return retval;
return process_commit(sha1);