Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
builtin/show-ref: rewrite to use object_id
author
Michael Haggerty
<mhagger@alum.mit.edu>
Mon, 25 May 2015 18:38:51 +0000
(18:38 +0000)
committer
Junio C Hamano
<gitster@pobox.com>
Mon, 25 May 2015 19:19:32 +0000
(12:19 -0700)
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/show-ref.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
635b99a
)
diff --git
a/builtin/show-ref.c
b/builtin/show-ref.c
index 8e255360772236113d5ec211de963ad0e3175687..18f84fbc53883ceb30564b44e604361857aa9f33 100644
(file)
--- a/
builtin/show-ref.c
+++ b/
builtin/show-ref.c
@@
-17,16
+17,17
@@
static int deref_tags, show_head, tags_only, heads_only, found_match, verify,
static const char **pattern;
static const char *exclude_existing_arg;
static const char **pattern;
static const char *exclude_existing_arg;
-static void show_one(const char *refname, const
unsigned char *sha1
)
+static void show_one(const char *refname, const
struct object_id *oid
)
{
{
- const char *hex = find_unique_abbrev(
sha1
, abbrev);
+ const char *hex = find_unique_abbrev(
oid->hash
, abbrev);
if (hash_only)
printf("%s\n", hex);
else
printf("%s %s\n", hex, refname);
}
if (hash_only)
printf("%s\n", hex);
else
printf("%s %s\n", hex, refname);
}
-static int show_ref(const char *refname, const unsigned char *sha1, int flag, void *cbdata)
+static int show_ref(const char *refname, const struct object_id *oid,
+ int flag, void *cbdata)
{
const char *hex;
unsigned char peeled[20];
{
const char *hex;
unsigned char peeled[20];
@@
-69,14
+70,14
@@
static int show_ref(const char *refname, const unsigned char *sha1, int flag, vo
* detect and return error if the repository is corrupt and
* ref points at a nonexistent object.
*/
* detect and return error if the repository is corrupt and
* ref points at a nonexistent object.
*/
- if (!has_sha1_file(
sha1
))
+ if (!has_sha1_file(
oid->hash
))
die("git show-ref: bad ref %s (%s)", refname,
die("git show-ref: bad ref %s (%s)", refname,
-
sha1_to_hex(sha1
));
+
oid_to_hex(oid
));
if (quiet)
return 0;
if (quiet)
return 0;
- show_one(refname,
sha1
);
+ show_one(refname,
oid
);
if (!deref_tags)
return 0;
if (!deref_tags)
return 0;
@@
-88,7
+89,8
@@
static int show_ref(const char *refname, const unsigned char *sha1, int flag, vo
return 0;
}
return 0;
}
-static int add_existing(const char *refname, const unsigned char *sha1, int flag, void *cbdata)
+static int add_existing(const char *refname, const struct object_id *oid,
+ int flag, void *cbdata)
{
struct string_list *list = (struct string_list *)cbdata;
string_list_insert(list, refname);
{
struct string_list *list = (struct string_list *)cbdata;
string_list_insert(list, refname);
@@
-109,10
+111,8
@@
static int exclude_existing(const char *match)
static struct string_list existing_refs = STRING_LIST_INIT_DUP;
char buf[1024];
int matchlen = match ? strlen(match) : 0;
static struct string_list existing_refs = STRING_LIST_INIT_DUP;
char buf[1024];
int matchlen = match ? strlen(match) : 0;
- struct each_ref_fn_sha1_adapter wrapped_add_existing =
- {add_existing, &existing_refs};
- for_each_ref(
each_ref_fn_adapter, &wrapped_add_existing
);
+ for_each_ref(
add_existing, &existing_refs
);
while (fgets(buf, sizeof(buf), stdin)) {
char *ref;
int len = strlen(buf);
while (fgets(buf, sizeof(buf), stdin)) {
char *ref;
int len = strlen(buf);
@@
-193,9
+193,6
@@
static const struct option show_ref_options[] = {
int cmd_show_ref(int argc, const char **argv, const char *prefix)
{
int cmd_show_ref(int argc, const char **argv, const char *prefix)
{
- struct each_ref_fn_sha1_adapter wrapped_show_ref =
- {show_ref, NULL};
-
if (argc == 2 && !strcmp(argv[1], "-h"))
usage_with_options(show_ref_usage, show_ref_options);
if (argc == 2 && !strcmp(argv[1], "-h"))
usage_with_options(show_ref_usage, show_ref_options);
@@
-213,12
+210,12
@@
int cmd_show_ref(int argc, const char **argv, const char *prefix)
if (!pattern)
die("--verify requires a reference");
while (*pattern) {
if (!pattern)
die("--verify requires a reference");
while (*pattern) {
-
unsigned char sha1[20]
;
+
struct object_id oid
;
if (starts_with(*pattern, "refs/") &&
if (starts_with(*pattern, "refs/") &&
- !read_ref(*pattern,
sha1
)) {
+ !read_ref(*pattern,
oid.hash
)) {
if (!quiet)
if (!quiet)
- show_one(*pattern,
sha1
);
+ show_one(*pattern,
&oid
);
}
else if (!quiet)
die("'%s' - not a valid ref", *pattern);
}
else if (!quiet)
die("'%s' - not a valid ref", *pattern);
@@
-230,8
+227,8
@@
int cmd_show_ref(int argc, const char **argv, const char *prefix)
}
if (show_head)
}
if (show_head)
- head_ref(
each_ref_fn_adapter, &wrapped_show_ref
);
- for_each_ref(
each_ref_fn_adapter, &wrapped_show_ref
);
+ head_ref(
show_ref, NULL
);
+ for_each_ref(
show_ref, NULL
);
if (!found_match) {
if (verify && !quiet)
die("No match");
if (!found_match) {
if (verify && !quiet)
die("No match");