From mboxrd@z Thu Jan 1 00:00:00 1970 From: Leo Famulari Subject: Re: Version numbers for VCS snapshots Date: Sun, 21 Feb 2016 17:52:56 -0500 Message-ID: <20160221225256.GA21678@jasmine> References: <874mem8mwx.fsf@gnu.org> <8737u344ov.fsf@elephly.net> <87twmjp2qs.fsf_-_@gnu.org> <56A063D1.80608@uq.edu.au> <20160121062251.GA25513@jasmine> <20160121184424.GB12122@jasmine> <87fuxqwsm7.fsf@gnu.org> <20160221043515.GA17164@jasmine> <87bn7axw0w.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:42589) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aXcsD-0002Jo-8p for guix-devel@gnu.org; Sun, 21 Feb 2016 17:53:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aXcsA-0001Yt-0f for guix-devel@gnu.org; Sun, 21 Feb 2016 17:53:05 -0500 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:57841) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aXcs9-0001YN-Sz for guix-devel@gnu.org; Sun, 21 Feb 2016 17:53:01 -0500 Content-Disposition: inline In-Reply-To: <87bn7axw0w.fsf@gmail.com> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Alex Kost Cc: guix-devel@gnu.org On Sun, Feb 21, 2016 at 12:17:19PM +0300, Alex Kost wrote: > Leo Famulari (2016-02-21 07:35 +0300) wrote: > > > On Thu, Jan 21, 2016 at 10:05:36PM +0100, Ludovic Courtès wrote: > [...] > >> I prefer 7! This is how Git usually truncates SHA1s, so it can’t be wrong. > > > > I stumbled across this email earlier, which reminded me of this > > discussion about hash lengths: > > https://lkml.org/lkml/2010/10/28/287 > > > > There are currently 13 7-character hash collisions in Guix's git repo: > > > > $ git rev-list --objects --all | cut -c1-7 | sort | uniq -dc > > 2 0d2b24c > > 2 11e0632 > > 2 1f3ab8d > > 2 229bd6c > > 2 7c4a7b7 > > 2 9ff8b63 > > 2 aa27b56 > > 2 c10c562 > > 2 d96cdce > > 2 dab4329 > > 2 dc27d1c > > 2 ea119a2 > > 2 f56cc27 > > Hm, when I tried "git rev-list --objects --all" I got some ridiculous > number of lines (I pressed C-c C-c after about 78000 lines). Does this > command really do what you wanted? (I'm sorry I didn't RTFM well enough > to understand what it does). It lists the objects in the repository, so not just commits. I'm not presenting this as evidence that something is wrong with our repo, just that 7 characters is not enough to unambiguously refer to things in git repos of projects our size. For example, with `git show`. It's more of an informational link than a call to action. Although I am updating all of our uses of git-reference to use the method we agreed upon upthread, before any of those upstream repos grow too large for the identifiers we are currently using. > > I'm not sure if the following command is correct to find such > collisions, but it gives nothing (i.e., no collisions): > > git log --oneline | cut -c1-7 | sort | uniq -dc Indeed, we only have about 10000 commits. 6 characters is where we get collisions in our log. > > -- > Alex