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

Reply via email to