From: drafnel@gmail.com
To: git@vger.kernel.org
Cc: gitster@pobox.com, nico@cam.org, spearce@spearce.org,
Brandon Casey <drafnel@gmail.com>
Subject: [PATCH 2/3] packed_git: add new PACK_KEEP flag and haspackkeep() access macro
Date: Sun, 2 Nov 2008 10:31:16 -0600 [thread overview]
Message-ID: <14846251.1225643403413.JavaMail.teamon@b303.teamon.com> (raw)
In-Reply-To: <1225643477-32319-1-git-send-email-foo@foo.com>
From: Brandon Casey <drafnel@gmail.com>
If you want to tell whether a pack has an associated ".keep" file you
would do:
if (haspackkeep(p))
do_something
Signed-off-by: Brandon Casey <drafnel@gmail.com>
---
cache.h | 2 ++
sha1_file.c | 5 +++++
2 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/cache.h b/cache.h
index 0cb9350..48cd366 100644
--- a/cache.h
+++ b/cache.h
@@ -686,7 +686,9 @@ extern struct packed_git {
} *packed_git;
#define PACK_LOCAL 1
+#define PACK_KEEP 2
#define ispacklocal(p) ((p)->flags & PACK_LOCAL)
+#define haspackkeep(p) ((p)->flags & PACK_KEEP)
struct pack_entry {
off_t offset;
diff --git a/sha1_file.c b/sha1_file.c
index e4141c9..8a027e9 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -841,6 +841,11 @@ struct packed_git *add_packed_git(const char *path, int path_len, int local)
return NULL;
}
memcpy(p->pack_name, path, path_len);
+
+ strcpy(p->pack_name + path_len, ".keep");
+ if (!access(p->pack_name, F_OK))
+ p->flags |= PACK_KEEP;
+
strcpy(p->pack_name + path_len, ".pack");
if (stat(p->pack_name, &st) || !S_ISREG(st.st_mode)) {
free(p);
--
1.6.0.2.588.g3102
next prev parent reply other threads:[~2008-11-02 16:31 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 ` [PATCH 2/3] sha1_file.c: split has_loose_object() into local and non-local counterparts drafnel
[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 ` drafnel [this message]
[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=14846251.1225643403413.JavaMail.teamon@b303.teamon.com \
--to=drafnel@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.