Skip to content

NorthIsUp/cgiturl

Repository files navigation

paypal

What is CGiturl?

It's a tool that allows you to pack Git repository data into single URL. For example:

% cgiturl 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ầŘїệαЃȣϟṈӛŀї

% cgiturl -d gitu://ŬṽǚǫoŒẗ6ẏȅcЭÑẩőn4ầŘїệαЃȣϟṈӛŀї
Protocol: https
Site:     github.com
Repo:     zdharma/giturl
Revision: devel
File:     lib/coding_functions.cpp

This is C++11 implementation. There is the main Zsh implementation too. You don't have to use Zsh as your shell, just have it installed, like Ruby.

The resulting URL is highly compressed thanks to use of Huffman codes and base-1024 encoding. Compare length of the above data to the gcode in URL:

ŬṽǚǫoŒẗ6ẏȅcЭÑẩőn4ầŘїệαЃȣϟṈӛŀї
https://github.com/zdharma/giturldevellib/coding_functions.cpp

It is 29 vs 62 characters, and you would normally need additional description like "the branch is: ", etc. Giturl allows to easily grab repository data from web page and terminal.

Limitations

Only following characters can appear in input data – in the server, repository path, revision, etc.: [a-zA-Z0-9._~:-]

Characters used in base-1024 encoding

The characters are carefully chosen so that double clicking GitURL selects the whole gcode. Asian scripts are not used because characters from them are double-width and they would consume the space saved by the compressions.

0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
µºÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáãäæçèéêëìíîïðñòóôõöøúûüýþÿĀ
āĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľ
ĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻż
ŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒƓƔƖƗƘƙƚƛƜƝƞƟƠơƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽ
ƾƿǀǁǂǃǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZdzǴǵǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆ
ȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɂɃɄ
ɅɆɇɈɋɌɍɎɏḀḁḂḃḄḅḆḇḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴ
ḵḶḷḸḹḺḻḼḽḾḿṀṁṂṃṄṅṆṇṈṉṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲ
ṳṴṵṶṷṸṹṺṻṼṽṾṿẀẁẂẃẄẅẆẇẈẉẊẋẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẜẝẟẠạẢảẤấẦầẨẩẪẫẬậẮắẰằ
ẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữ
ỰựỲỳỴỵỶỷỸỹỻͻͼͽΆΈΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΫάέήίΰαβγδεζηθικλμνξοπ
ρςστυφχψϋόύώϐϑϒϔϕϖϗϘϙϚϛϜϝϞϟϠϥϧϨϩϫϬϭϮϯϰϱϲϵϷϸϹϻϼϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌ
ЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъ
ыьэюяѐёђѓєѕіїјљњћќѝўџѡѢѣѥѫѱѲѳѵѷѻѽѿҀҁҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝҞҟҡҢңҤҥ
ҩҪҫҬҭҮүҰұҲҳҵҶҷҸҹҺһӀӁӂӃӄӅӆӇӈӉӊӋӌӎӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠӡӢӣӤӥӦӧӨөӪӫӬӭ
ӮӯӰӱӲӳӴӵӶӷӸӹӺӻӼӽӾӿאבגדטךכלםמסעףפץצקרשװ

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published