monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-devel] Re: Proposal for human readable revision IDs


From: Steven Grimm
Subject: [Monotone-devel] Re: Proposal for human readable revision IDs
Date: Mon, 12 Sep 2005 11:04:30 -0700
User-agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)

On 12/09/05, Jon Bright <address@hidden> wrote:

I also agree with this. For me,

568b-2462-456e-9a57-4326-93df-936d-4835

would be much more readable than

568b2462456e9a57432693df936d4835

To me, they're both meaningless gobbeldygook that I can't say out loud to someone when I want to tell them which recent checkin has a fix for their bug. I think the only differences between the two are that the first one takes less screen real estate and I can select the first one by double-clicking, which I can't reliably do with the hyphens there.

I guess it depends on what you want to do with revision IDs. It's not like you're ever actually *reading* one per se; it has no intrinsic meaning. There are only a few reasons I ever care about a revision ID in any version control system:

1. To supply it to a version-control system command or another app (bug-tracking system, etc.) I doubt many people will ever type a hex ID in by hand, so hyphens don't matter here; you'll be cutting and pasting. And that's easier without the hyphens because they can act as word breaks.

2. To refer to it verbally. Which is impractical with SHA1 IDs no matter how you render it; if I want to refer to a revision in speech I have to tag it.

3. To compare it against another one. Only in one case out of four billion is it insufficient to compare, say, the first and last four digits of an SHA1 hash, which is easy enough to do without the hyphens. The chances of making a mistake in a visual comparison are orders of magnitude higher than the chances that any 8 digits will actually be the same between two hashes.

My vote (as a mere user of monotone, not yet a contributor) is to keep them as they are.

Is there any significant performance penalty to having zillions of tags in the system? I think most people's objections to the hashcodes would be be satisfied with a hook script that auto-tags revisions with a much shorter, likely-but-not-guaranteed unique, value at commit time (username + timestamp, DB name + autoincremented serial number, etc.) I know if I had that, I'd probably never refer to a hex revision ID. What happens when there's a name collision between tags during a synchronize, anyway?

-Steve




reply via email to

[Prev in Thread] Current Thread [Next in Thread]