# HG changeset patch # User Martin von Zweigbergk # Date 1583532845 28800 # Node ID 6d953b3fc2bd3a84da611d9c4e9e2935cc871026 # Parent ad718271a9ebb1e0061e78d2c7b6f7901f830b38 git: make {shortest()} return shortest *unique* prefix It used to return the prefix of the specified length as long as the full node was unique (i.e. always). Differential Revision: https://phab.mercurial-scm.org/D8256 diff -r ad718271a9eb -r 6d953b3fc2bd hgext/git/gitlog.py --- a/hgext/git/gitlog.py Tue Feb 11 00:44:59 2020 -0500 +++ b/hgext/git/gitlog.py Fri Mar 06 14:14:05 2020 -0800 @@ -170,7 +170,7 @@ matches = int( self._db.execute( 'SELECT COUNT(*) FROM changelog WHERE node LIKE ?', - (pycompat.sysstr(nodehex + b'%'),), + (pycompat.sysstr(candidate + b'%'),), ).fetchone()[0] ) if matches == 1: diff -r ad718271a9eb -r 6d953b3fc2bd tests/test-git-interop.t --- a/tests/test-git-interop.t Tue Feb 11 00:44:59 2020 -0500 +++ b/tests/test-git-interop.t Fri Mar 06 14:14:05 2020 -0800 @@ -180,10 +180,6 @@ summary: Add beta -node|shortest works correctly - $ hg log -r tip --template "{node|shortest}\n" - 6626 - hg annotate $ hg annotate alpha @@ -221,3 +217,15 @@ nothing to commit, working tree clean $ hg status + +node|shortest works correctly + $ hg log -T '{node}\n' | sort + 3d9be8deba43482be2c81a4cb4be1f10d85fa8bc + 6626247b7dc8f231b183b8a4761c89139baca2ad + a1983dd7fb19cbd83ad5a1c2fc8bf3d775dea12f + ae1ab744f95bfd5b07cf573baef98a778058537b + c5864c9d16fb3431fe2c175ff84dc6accdbb2c18 + d8ee22687733a1991813560b15128cd9734f4b48 + $ hg log -r ae1ab744f95bfd5b07cf573baef98a778058537b --template "{shortest(node,1)}\n" + ae +