git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: drafnel@gmail.com
To: gitster@pobox.org
Cc: git@vger.kernel.org, spearce@spearce.org, nico@cam.org,
	ae@op5.se, Brandon Casey <drafnel@gmail.com>
Subject: [PATCH 2/3] sha1_file.c: split has_loose_object() into local and non-local counterparts
Date: Sun,  9 Nov 2008 23:59:57 -0600	[thread overview]
Message-ID: <5374142.1226296710939.JavaMail.teamon@b307.teamon.com> (raw)
In-Reply-To: <1226296798-31522-2-git-send-email-foo@foo.com>

From: Brandon Casey <drafnel@gmail.com>


Signed-off-by: Brandon Casey <drafnel@gmail.com>
---
 cache.h     |    1 +
 sha1_file.c |   19 +++++++++++++------
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/cache.h b/cache.h
index 37ab457..1ec90f1 100644
--- a/cache.h
+++ b/cache.h
@@ -578,6 +578,7 @@ extern int move_temp_to_file(const char *tmpfile, const char *filename);
 
 extern int has_sha1_pack(const unsigned char *sha1, const char **ignore);
 extern int has_sha1_file(const unsigned char *sha1);
+extern int has_loose_object_nonlocal(const unsigned char *sha1);
 
 extern int has_pack_file(const unsigned char *sha1);
 extern int has_pack_index(const unsigned char *sha1);
diff --git a/sha1_file.c b/sha1_file.c
index f2b25bd..4912205 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -423,23 +423,30 @@ void prepare_alt_odb(void)
 	read_info_alternates(get_object_directory(), 0);
 }
 
-static int has_loose_object(const unsigned char *sha1)
+static int has_loose_object_local(const unsigned char *sha1)
 {
 	char *name = sha1_file_name(sha1);
-	struct alternate_object_database *alt;
+	return !access(name, F_OK);
+}
 
-	if (!access(name, F_OK))
-		return 1;
+int has_loose_object_nonlocal(const unsigned char *sha1)
+{
+	struct alternate_object_database *alt;
 	prepare_alt_odb();
 	for (alt = alt_odb_list; alt; alt = alt->next) {
-		name = alt->name;
-		fill_sha1_path(name, sha1);
+		fill_sha1_path(alt->name, sha1);
 		if (!access(alt->base, F_OK))
 			return 1;
 	}
 	return 0;
 }
 
+static int has_loose_object(const unsigned char *sha1)
+{
+	return has_loose_object_local(sha1) ||
+	       has_loose_object_nonlocal(sha1);
+}
+
 static unsigned int pack_used_ctr;
 static unsigned int pack_mmap_calls;
 static unsigned int peak_pack_open_windows;
-- 
1.6.0.2.588.g3102

  parent reply	other threads:[~2008-11-10  6:00 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-31 19:32 getting list of objects for packing Brandon Casey
2008-10-31 20:40 ` Nicolas Pitre
2008-10-31 20:48   ` Brandon Casey
2008-10-31 21:30     ` Junio C Hamano
2008-10-31 21:40       ` Brandon Casey
2008-10-31 22:23         ` Jakub Narebski
2008-11-01  0:00         ` Brandon Casey
2008-11-02  3:35           ` [PATCH] t7700: demonstrate mishandling of objects in packs with a .keep file drafnel
2008-11-02 16:31             ` [PATCH 1/3] packed_git: convert pack_local flag into generic bit mask drafnel
2008-11-03 16:12               ` Shawn O. Pearce
2008-11-03 18:24                 ` Brandon Casey
2008-11-03 20:37                 ` [PATCH v2 1/3] t7700: demonstrate mishandling of objects in packs with a .keep file Brandon Casey
2008-11-03 20:41                   ` [PATCH v2 2/3] packed_git: convert pack_local flag into a bitfield and add pack_keep Brandon Casey
2008-11-03 20:43                     ` [PATCH v2 3/3] pack-objects: honor '.keep' files Brandon Casey
2008-11-03 20:49                       ` Shawn O. Pearce
2008-11-05 22:37                       ` Brandon Casey
2008-11-06 23:22                         ` Brandon Casey
2008-11-07  0:30                           ` Junio C Hamano
2008-11-07  1:17                             ` Brandon Casey
2008-11-07  8:12                               ` Andreas Ericsson
2008-11-07 19:25                                 ` Shawn O. Pearce
2008-11-10  5:59                             ` recognize loose local objects during repack drafnel
2008-11-10 21:03                               ` Junio C Hamano
     [not found]                             ` <1226296798-31522-1-git-send-email-foo@foo.com>
2008-11-10  5:59                               ` [PATCH 1/3] t7700: demonstrate mishandling of loose objects in an alternate ODB drafnel
     [not found]                               ` <1226296798-31522-2-git-send-email-foo@foo.com>
2008-11-10  5:59                                 ` drafnel [this message]
     [not found]                                 ` <1226296798-31522-3-git-send-email-foo@foo.com>
2008-11-10  5:59                                   ` [PATCH 3/3] pack-objects: extend --local to mean ignore non-local loose objects too drafnel
2008-11-07  1:52                           ` [PATCH 1/4] pack-objects: new option --honor-pack-keep Brandon Casey
2008-11-07  1:54                             ` [PATCH 2/4] repack: don't repack local objects in packs with .keep file Brandon Casey
2008-11-07  1:55                               ` [PATCH 3/4] repack: do not fall back to incremental repacking with [-a|-A] Brandon Casey
2008-11-07  1:56                                 ` [PATCH 4/4] builtin-gc.c: use new pack_keep bitfield to detect .keep file existence Brandon Casey
2008-11-07  8:14                               ` [PATCH 2/4] repack: don't repack local objects in packs with .keep file Andreas Ericsson
2008-11-07  8:13                             ` [PATCH 1/4] pack-objects: new option --honor-pack-keep Andreas Ericsson
2008-11-03 22:14                   ` [PATCH v3] t7700: demonstrate mishandling of objects in packs with a .keep file Brandon Casey
2008-11-04 19:17                   ` [PATCH v2 1/3] " Andreas Ericsson
2008-11-04 19:49                     ` Brandon Casey
2008-11-04 19:55                       ` Junio C Hamano
2008-11-04 20:01                         ` Brandon Casey
2008-11-04 20:21                       ` Andreas Ericsson
2008-11-04 23:55                   ` Junio C Hamano
2008-11-12  8:09                   ` Jeff King
2008-11-12 17:10                     ` Junio C Hamano
2008-11-12 19:17                       ` Jeff King
2008-11-12 17:30                     ` Brandon Casey
2008-11-12 17:59                       ` repack and .keep series Brandon Casey
2008-11-12 17:59                         ` [PATCH 1/6] t7700: demonstrate mishandling of objects in packs with a .keep file Brandon Casey
2008-11-12 17:59                           ` [PATCH 2/6] packed_git: convert pack_local flag into a bitfield and add pack_keep Brandon Casey
2008-11-12 17:59                             ` [PATCH 3/6] pack-objects: new option --honor-pack-keep Brandon Casey
2008-11-12 17:59                               ` [PATCH 4/6] repack: don't repack local objects in packs with .keep file Brandon Casey
2008-11-12 17:59                                 ` [PATCH 5/6] repack: do not fall back to incremental repacking with [-a|-A] Brandon Casey
2008-11-12 17:59                                   ` [PATCH 6/6] builtin-gc.c: use new pack_keep bitfield to detect .keep file existence Brandon Casey
2008-11-13  0:50                                   ` [PATCH] t7700: test that 'repack -a' packs alternate packed objects Brandon Casey
2008-11-12 18:10                       ` [PATCH v2 1/3] t7700: demonstrate mishandling of objects in packs with a .keep file Junio C Hamano
2008-11-12 18:19                         ` Junio C Hamano
     [not found]             ` <1225643477-32319-1-git-send-email-foo@foo.com>
2008-11-02 16:31               ` [PATCH 2/3] packed_git: add new PACK_KEEP flag and haspackkeep() access macro drafnel
     [not found]               ` <1225643477-32319-2-git-send-email-foo@foo.com>
2008-11-02 16:31                 ` [PATCH 3/3] pack-objects: honor '.keep' files drafnel
2008-11-03 16:17                   ` Shawn O. Pearce
2008-11-03 10:35             ` [PATCH] t7700: demonstrate mishandling of objects in packs with a .keep file Andreas Ericsson
2008-11-03 18:20               ` Brandon Casey
2008-11-03 20:25                 ` Andreas Ericsson
2008-11-03 22:02                   ` Brandon Casey
2008-11-04 19:25                     ` Andreas Ericsson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5374142.1226296710939.JavaMail.teamon@b307.teamon.com \
    --to=drafnel@gmail.com \
    --cc=ae@op5.se \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.org \
    --cc=nico@cam.org \
    --cc=spearce@spearce.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).