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

Re: [RFC] - url-safe base64 commit-id's

From
Bryan Turner <bturner@atlassian.com>
Date
Feb 28, 2017, 06:30 UTC
Message-ID
<CAGyf7-Hp5b5r-NROVehnpwS2cSdwMz_kSUgzaQJ03Ba+K8g9wA@mail.gmail.com>
In-Reply-To
<CAAj3zPzwWr4u1qSMp5CwVMzExW2eg9LQ7t7RX-5m6fRRGh9pcA@mail.gmail.com>

On Mon, Feb 27, 2017 at 6:27 PM, G. Sylvie Davies <sylvie@bit-booster.com> wrote:

Show 19 quoted lines
> Is there any appetite for base64'd commit-id's, using the url-safe
> variant (e.g. RFC 4648 [1] with padding removed)?
>
> And so this:
> 712bad335dfa9c410a83f9873614a19726acb3a8
>
> Becomes this:
> cSutM136nEEKg_mHNhShlyass6g
>
>
> Under the hood things cannot change (e.g., ".git/objects/71/") because
> file systems are not always case sensitive.
>
> But for "git log" and "git show" output it would be nice. And helps
> with ambiguous commit id's too if you only want to specify a 7
> character commit-id, since that encodes 42 bits instead of 28 bits.
> I've run into problems with maximum command length on windows (32767
> chars) because I was specifying so many commit-ids on the command-line
> that I blew past that limit. This would help there, too.

Depending on the command, have you considered using stdin instead? git log, for example, is perfectly happy to read commit IDs from stdin instead of the command line.

In general, I think the pattern of getting away from command line arguments is better than trying to shoehorn more data into the same character limit. Base64 encoding might help get a few more arguments into the available limit, but in the end it's not going to solve the underlying problem.

Show 8 quoted lines
>
> Might be particularly helpful with the transition to a new hash.
> e.g., a 43 character Base64 id instead of a 64 character hex id.
>
>
> - Sylvie
>
> [1] - https://tools.ietf.org/html/rfc4648#page-7
Previous: G. Sylvie Davies
Message 2 of 2 in “[RFC] - url-safe base64 commit-id's”
  1. G. Sylvie DaviesFeb 28, 2017
  2. Bryan TurnerFeb 28, 2017

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.