{"id":6799,"date":"2015-07-04T01:10:03","date_gmt":"2015-07-04T05:10:03","guid":{"rendered":"http:\/\/esr.ibiblio.org\/?p=6799"},"modified":"2015-07-04T01:10:03","modified_gmt":"2015-07-04T05:10:03","slug":"git-weave-a-tool-for-synthesizing-repositories-from-fossil-tarballs","status":"publish","type":"post","link":"http:\/\/esr.ibiblio.org\/?p=6799","title":{"rendered":"git-weave, a tool for synthesizing repositories from fossil tarballs"},"content":{"rendered":"<p>Welcome to my first new-project release of the year, <a href=\"http:\/\/www.catb.org\/esr\/git-weave\/\">git-weave<\/a>.  It&#8217;s a polished and documented version of the script I used to reconstruct the early history of INTERCAL five years ago &#8211; see <a href=\"http:\/\/esr.ibiblio.org\/?p=2491\">Risk, Verification, and the INTERCAL Reconstruction Massacree<\/a> for the details on that one.<\/p>\n<p>git-weave can be used to explode a git repository into a sequence of per-commit directory trees accompanied by a metadata file describing parent-child linkage, holding committer\/author\/timestamps\/comment metadata, and carrying tags.<\/p>\n<p>Going in the other direction, it can take the same sequence of trees plus metadata file and reconstruct the live repository.  Round-tripping is lossless.<\/p>\n<p>What it&#8217;s really useful for is reconstructing a partial but useful ancient history of a project from before it was put under version control.  Find its release archives, synthesize a metadata file, apply this tool, and you get a repository that can easily be glued to the modern, more continuous history.<\/p>\n<p>Yes, you only get a commit for each release tree or patch you can dig up, but this is better than nothing and often quite interesting.<\/p>\n<p>Nifty detail: the project logo is the ancient Egyptian hieroglyph for a weaver&#8217;s shuttle.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Welcome to my first new-project release of the year, git-weave. It&#8217;s a polished and documented version of the script I used to reconstruct the early history of INTERCAL five years ago &#8211; see Risk, Verification, and the INTERCAL Reconstruction Massacree for the details on that one. git-weave can be used to explode a git repository&hellip; <a class=\"more-link\" href=\"http:\/\/esr.ibiblio.org\/?p=6799\">Continue reading <span class=\"screen-reader-text\">git-weave, a tool for synthesizing repositories from fossil tarballs<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6799","post","type-post","status-publish","format-standard","hentry","category-general","entry"],"_links":{"self":[{"href":"http:\/\/esr.ibiblio.org\/index.php?rest_route=\/wp\/v2\/posts\/6799","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/esr.ibiblio.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/esr.ibiblio.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/esr.ibiblio.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/esr.ibiblio.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6799"}],"version-history":[{"count":1,"href":"http:\/\/esr.ibiblio.org\/index.php?rest_route=\/wp\/v2\/posts\/6799\/revisions"}],"predecessor-version":[{"id":6800,"href":"http:\/\/esr.ibiblio.org\/index.php?rest_route=\/wp\/v2\/posts\/6799\/revisions\/6800"}],"wp:attachment":[{"href":"http:\/\/esr.ibiblio.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6799"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/esr.ibiblio.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6799"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/esr.ibiblio.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6799"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}