From: Sebastian Gniazdowski <psprint@zdharma.org>
To: git@vger.kernel.org
Subject: Would this tool be useful - encoding repository data into single URL
Date: Tue, 9 May 2017 14:48:47 +0200 [thread overview]
Message-ID: <etPan.5911baaf.74b0dc51.6b4c@MacMini> (raw)
Hello
I wonder about usability of following tool. Quick-start:
giturl https://github.com/zdharma/giturl -r devel -p lib/coding_functions.cpp
Protocol: https
Site: github.com
Repo: zdharma/giturl
Revision: devel
File: lib/coding_functions.cpp
gitu://ŬṽǚǫoŒẗ6ẏȅcЭÑẩőn4ầŘїệαЃȣϟṈӛŀї
It does Huffman encoding and base-1024 encoding to pack given data into single URL. The Unicode characters selected for base-1024 encoding are letters, not symbols, so double-clicking in e.g. web browser selects the whole code, making it easy to grab a repository data.
Decoding:
giturl -qd ŬṽǚǫoŒẗ6ẏȅcЭÑẩőn4ầŘїệαЃȣϟṈӛŀї
https://github.com/zdharma/giturl / rev:devel / file:lib/coding_functions.cpp
I can also encode commits relative to given revision, e.g. bits 10011 are commits 1, 4, 5. Easy to add to the g-code. Selecting 10th commit is only 1 character in base-1024.
However I wonder if this has any uses. Could be patches sent this way? Having refs/patches/<name>, encoding <name> in URL, sending it instead of inlining/attaching a diff, selecting e.g. 3 commits via the bit-mask mentioned. That said, it's more about easy-grab of repository data and storage in well-defined, consistent format, not in language "the branch is ..., commit a7a35cb". Does this make sense?
There are 2 implementations, in Zsh (uses Zshell like e.g. Ruby, not interactively) and C++11 (mostly because of std::regex):
https://github.com/zdharma/giturl
https://github.com/zdharma/cgiturl
--
Sebastian Gniazdowski
psprint /at/ zdharma.org
next reply other threads:[~2017-05-09 12:55 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-09 12:48 Sebastian Gniazdowski [this message]
2017-05-09 13:40 ` Would this tool be useful - encoding repository data into single URL Ævar Arnfjörð Bjarmason
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=etPan.5911baaf.74b0dc51.6b4c@MacMini \
--to=psprint@zdharma.org \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.