From: Junio C Hamano <gitster@pobox.com>
To: Beat Bolli <dev+git@drbeat.li>
Cc: git@vger.kernel.org, Paul Mackerras <paulus@samba.org>
Subject: Re: [PATCH v2] gitk: Add a "Copy commit summary" command
Date: Thu, 16 Jul 2015 10:02:41 -0700 [thread overview]
Message-ID: <xmqq380o593i.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <1437060565-4716-1-git-send-email-dev+git@drbeat.li> (Beat Bolli's message of "Thu, 16 Jul 2015 17:29:25 +0200")
Beat Bolli <dev+git@drbeat.li> writes:
> When referring to earlier commits in commit messages or other text, one
> of the established formats is
>
> <abbrev-sha> ("<summary>", <author-date>)
> ...
> +proc copysummary {} {
> + global rowmenuid commitinfo
> +
> + set id [string range $rowmenuid 0 7]
> + set info $commitinfo($rowmenuid)
> + set commit [lindex $info 0]
7 hexdigits is not always an appropriate value for all projects.
The minimum necessary to guarantee uniqueness varies on project, and
it is not a good idea to hardcode such a small value. Not-so-old
Linux kernel history seems to use at least 12, for example.
I believe that the "one of the established formats" comes from a
"git one" alias I published somewhere long time ago, that did
something like this:
git show -s --abbrev=8 --pretty='format:%h (%s, %ai' "$@" |
sed -e 's/ [012][0-9]:[0-5][0-9]:[0-5][0-9] [-+][0-9][0-9][0-9][0-9]$/)/'
where the combination of --abbrev=8 and format:%h asks for a unique
abbreviation that is at least 8 hexdigits long but can use more than
8 if it is not long enough to uniquely identify the given commit.
I do not offhand know how $commitinfo is populated, but perhaps you
can tweak that code to ask for both %H (for the full commit object
ID) and %h (for the unique abbreviation of appropriate length) and
store the value for %h to a new field in the $commitinfo($rowmenuid)
array, so that you do not have to have such a hard-coded truncation
here?
> + set date [formatdate [lindex $info 2]]
> + set summary "$id (\"$commit\", $date)"
> +
> + clipboard clear
> + clipboard append $summary
> +}
> +
> proc writecommit {} {
> global rowmenuid wrcomtop commitinfo wrcomcmd NS
next prev parent reply other threads:[~2015-07-16 17:02 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-16 15:29 [PATCH v2] gitk: Add a "Copy commit summary" command Beat Bolli
2015-07-16 17:02 ` Junio C Hamano [this message]
2015-07-17 8:50 ` Stefan Haller
2015-07-17 9:16 ` Beat Bolli
2015-07-16 20:48 ` Johannes Sixt
2015-07-17 9:22 ` Paul Mackerras
2015-07-17 15:30 ` Junio C Hamano
2015-07-18 12:23 ` Paul Mackerras
2015-07-18 12:45 ` Beat Bolli
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=xmqq380o593i.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox.com \
--cc=dev+git@drbeat.li \
--cc=git@vger.kernel.org \
--cc=paulus@samba.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.