git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: easy way to demonstrate length of colliding SHA-1 prefixes?

From
Robert P. J. Day <rpjday@crashcourse.ca>
Date
Dec 2, 2018, 16:24 UTC
Message-ID
<alpine.LFD.2.21.1812021123050.5509@localhost.localdomain>
In-Reply-To
<87y398uknn.fsf@evledraar.gmail.com>
On Sun, 2 Dec 2018, Ævar Arnfjörð Bjarmason wrote:
Show 17 quoted lines
> On Sun, Dec 02 2018, Robert P. J. Day wrote:
>
> >   as part of an upcoming git class i'm delivering, i thought it
> > would be amusing to demonstrate the maximum length of colliding
> > SHA-1 prefixes in a repository (in my case, i use the linux kernel
> > git repo for most of my examples).
> >
> >   is there a way to display the objects in the object database
> > that clash in the longest object name SHA-1 prefix; i mean, short
> > of manually listing all object names, running that through cut and
> > sort and uniq and ... you get the idea.
> >
> >   is there a cute way to do that? thanks.
>
> You'll always need to list them all. It's inherently an operation
> where for each SHA-1 you need to search for other ones with that
> prefix up to a given length.
  i assumed as much, just wasn't sure about the esoteric dark corners
of git i've never gotten to yet.
Show 10 quoted lines
> Perhaps you've missed that you can use --abbrev=N for this, and just
> grep for things that are loger than that N, e.g. for linux.git:
>
>     git log --oneline --abbrev=10 --pretty=format:%h |
>     grep -E -v '^.{10}$' |
>     perl -pe 's/^(.{10}).*/$1/'
>
> This will list the 4 objects that need more than 10 characters to be
> shown unambiguously. If you then "git cat-file -t" them you'll get
> the disambiguation help.
  that's pretty close to what i came up with, thanks.
rday
-- 
========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                  http://crashcourse.ca/dokuwiki

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================
Previous: Ævar Arnfjörð BjarmasonNext: Matthew DeVore
Message 3 of 5 in “easy way to demonstrate length of colliding SHA-1 prefixes?”
  1. Robert P. J. DayDec 2, 2018
  2. Ævar Arnfjörð BjarmasonDec 2, 2018
  3. Robert P. J. DayDec 2, 2018
  4. Matthew DeVoreDec 3, 2018
  5. Jeff KingDec 3, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.