use strbuf_add_unique_abbrev() for adding short hashes
PATCH 1/1 use strbuf_add_unique_abbrev() for adding short hashes
Call strbuf_add_unique_abbrev() to add abbreviated hashes to strbufs instead of taking detours through find_unique_abbrev() and its static buffer. This is shorter and a bit more efficient.
--- builtin/checkout.c | 3 +-- pretty.c | 13 ++++++------- transport.c | 11 ++++------- 3 files changed, 11 insertions(+), 16 deletions(-)
builtin/checkout.c +1 -2
@@ -703,8 +703,7 @@ static int add_pending_uninteresting_ref(const char *refname,static void describe_one_orphan (struct strbuf *sb,struct commit *commit) {strbuf_addstr (sb," " ); -strbuf_addstr (sb, -find_unique_abbrev (commit->object.oid.hash,DEFAULT_ABBREV )); +strbuf_add_unique_abbrev (sb, commit->object.oid.hash,DEFAULT_ABBREV );strbuf_addch (sb,' ' );if (!parse_commit (commit))pp_commit_easy (CMIT_FMT_ONELINE , commit, sb);
pretty.c +6 -7
@@ -1143,8 +1143,8 @@ static size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */strbuf_addstr (sb,diff_get_color (c->auto_color,DIFF_RESET ));return 1 ; } -strbuf_addstr (sb,find_unique_abbrev (commit->object.oid.hash, - c->pretty_ctx->abbrev)); +strbuf_add_unique_abbrev (sb, commit->object.oid.hash, + c->pretty_ctx->abbrev);strbuf_addstr (sb,diff_get_color (c->auto_color,DIFF_RESET )); c->abbrev_commit_hash.len = sb->len - c->abbrev_commit_hash.off;return 1 ;
@@ -1154,8 +1154,8 @@ static size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */case 't' :/* abbreviated tree hash */ if (add_again (sb, &c->abbrev_tree_hash))return 1 ; -strbuf_addstr (sb,find_unique_abbrev (commit->tree->object.oid.hash, - c->pretty_ctx->abbrev)); +strbuf_add_unique_abbrev (sb, commit->tree->object.oid.hash, + c->pretty_ctx->abbrev); c->abbrev_tree_hash.len = sb->len - c->abbrev_tree_hash.off;return 1 ;case 'P' :/* parent hashes */
@@ -1171,9 +1171,8 @@ static size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */for (p = commit->parents; p; p = p->next) {if (p != commit->parents)strbuf_addch (sb,' ' ); -strbuf_addstr (sb,find_unique_abbrev ( - p->item->object.oid.hash, - c->pretty_ctx->abbrev)); +strbuf_add_unique_abbrev (sb, p->item->object.oid.hash, + c->pretty_ctx->abbrev); } c->abbrev_parent_hashes.len = sb->len - c->abbrev_parent_hashes.off;
transport.c +4 -7
@@ -321,11 +321,6 @@ static void print_ref_status(char flag, const char *summary, struct ref *to, str } } -static const char *status_abbrev (unsigned char sha1[20 ]) -{ -return find_unique_abbrev (sha1,DEFAULT_ABBREV ); -} -static void print_ok_ref_status (struct ref *ref,int porcelain) {if (ref->deletion)
@@ -340,7 +335,8 @@ static void print_ok_ref_status(struct ref *ref, int porcelain)char type;const char *msg; -strbuf_addstr (&quickref,status_abbrev (ref->old_oid.hash)); +strbuf_add_unique_abbrev (&quickref, ref->old_oid.hash, +DEFAULT_ABBREV );if (ref->forced_update) {strbuf_addstr (&quickref,"..." ); type ='+' ;
@@ -350,7 +346,8 @@ static void print_ok_ref_status(struct ref *ref, int porcelain) type =' ' ; msg =NULL ; } -strbuf_addstr (&quickref,status_abbrev (ref->new_oid.hash)); +strbuf_add_unique_abbrev (&quickref, ref->new_oid.hash, +DEFAULT_ABBREV );print_ref_status (type, quickref.buf, ref, ref->peer_ref, msg, porcelain);strbuf_release (&quickref);
Signature · 1 line
2.9.2
Hi René,
Quoted 3 lines · René Scharfe
Call
strbuf_add_unique_abbrev()to add abbreviated hashes to strbufs instead of taking detours throughfind_unique_abbrev()and its static buffer. This is shorter and a bit more efficient.
And less error-prone.
It is also a thing I need to change in my upcoming rebase--helper patches:
I had not known about this function.
Thank you,
Dscho
Quoted 10 lines · Johannes Schindelin
Quoted 3 lines · René Scharfe
Call
strbuf_add_unique_abbrev()to add abbreviated hashes to strbufs instead of taking detours throughfind_unique_abbrev()and its static buffer. This is shorter and a bit more efficient.And less error-prone.
It is also a thing I need to change in my upcoming rebase--helper patches:
I had not known about this function.
Great. I added it several months ago to avoid some hairy allocation code, so I am glad to see it finding new uses (both this patch and potential new ones).
-Peff