diff options
author | Jeff King <peff@peff.net> | 2009-04-07 03:14:20 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-04-07 23:22:15 -0700 |
commit | 7c2b3029df45a74d0ebd11afcc94259791cfb90d (patch) | |
tree | 5c3888be7cb3dc41dbd6ef7d93a8b58f059a98ad /refs.h | |
parent | 8cae19d987b1bbd43258558f591e39d9d216dcb3 (diff) | |
download | git-7c2b3029df45a74d0ebd11afcc94259791cfb90d.tar.gz git-7c2b3029df45a74d0ebd11afcc94259791cfb90d.tar.xz |
make get_short_ref a public function
Often we want to shorten a full ref name to something "prettier"
to show a user. For example, "refs/heads/master" is often shown
simply as "master", or "refs/remotes/origin/master" is shown as
"origin/master".
Many places in the code use a very simple formula: skip common
prefixes like refs/heads, refs/remotes, etc. This is codified in
the prettify_ref function.
for-each-ref has a more correct (but more expensive) approach:
consider the ref lookup rules, and try shortening as much as
possible while remaining unambiguous.
This patch makes the latter strategy globally available as
shorten_unambiguous_ref.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'refs.h')
-rw-r--r-- | refs.h | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -80,6 +80,7 @@ extern int for_each_reflog(each_ref_fn, void *); extern int check_ref_format(const char *target); extern const char *prettify_ref(const struct ref *ref); +extern char *shorten_unambiguous_ref(const char *ref); /** rename ref, return 0 on success **/ extern int rename_ref(const char *oldref, const char *newref, const char *logmsg); |