{"id":2634,"date":"2015-09-04T23:20:26","date_gmt":"2015-09-05T06:20:26","guid":{"rendered":"http:\/\/upon2020.com\/blog\/?p=2634"},"modified":"2015-09-04T23:21:31","modified_gmt":"2015-09-05T06:21:31","slug":"have-lots-of-git-repositories-teensy-git-360-is-really-helpful","status":"publish","type":"post","link":"https:\/\/upon2020.com\/blog\/2015\/09\/have-lots-of-git-repositories-teensy-git-360-is-really-helpful\/","title":{"rendered":"Have lots of git repositories? Teensy git-360 is really helpful"},"content":{"rendered":"<p><a href=\"http:\/\/ubos.net\/\">UBOS<\/a> development involves lots of git repositories: our own UBOS code, code to build UBOS, code from various developers with various apps, code to package those apps for UBOS &#8230; and most of it is stored in separate git repositories.<\/p>\n<p>The common question: did I check in everything? what did I miss?<\/p>\n<p>Anybody who works with many repositories has encountered this problem. Usually there is some missing check-in in some git repository that you didn&#8217;t remember was even involved in what you were doing, or a missed &#8220;git push&#8221; or something like that. The next thing you know is that you broke the build. Not good. This happens because it&#8217;s really hard to &#8220;see&#8221; the status of all those repositories: manually checking involves just too much typing.<\/p>\n<p>So I wrote a little script called <strong>git-360<\/strong>, which has turned out really helpful. It is so little that this blog post is about to have more characters than the script! Basically, you give the script a few directories that might be git directories, and it will tell you what&#8217;s going on, such as:<\/p>\n<pre>% git-360 ~\/git\/github.com\/*\/*\r\n\r\n=== uboslinux\/ubos-tools ===\r\nStatus: clean\r\n\r\n=== uboslinux\/ubos-virt ===\r\nStatus: clean\r\n\r\n=== jernst\/owncloud-core ===\r\nStatus:\r\n\u00a0\u00a0\u00a0\u00a0 M lib\/private\/request.php\r\n\r\n... (lots more)<\/pre>\n<p>It can also show branches and tags, compare with tags and few other tricks, and it will learn more I&#8217;m sure. You can <a href=\"https:\/\/github.com\/uboslinux\/ubos-tools\/blob\/master\/ubos-misc-tools\/git-360\">download it<\/a> from one of the UBOS git repositories (so we can bundle it with UBOS), but you can easily run it on pretty much any computer that has Perl. License: GPL.<\/p>\n<p>Happy git hacking!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>UBOS development involves lots of git repositories: our own UBOS code, code to build UBOS, code from various developers with various apps, code to package those apps for UBOS &#8230; and most of it is stored in separate git repositories. The common question: did I check in everything? what did I miss? Anybody who works&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"webmentions_disabled":false,"footnotes":""},"categories":[66,371],"tags":[402],"class_list":["post-2634","post","type-post","status-publish","format-standard","hentry","category-technical","category-ubos","tag-git","kind-"],"kind":false,"_links":{"self":[{"href":"https:\/\/upon2020.com\/blog\/wp-json\/wp\/v2\/posts\/2634","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/upon2020.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/upon2020.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/upon2020.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/upon2020.com\/blog\/wp-json\/wp\/v2\/comments?post=2634"}],"version-history":[{"count":2,"href":"https:\/\/upon2020.com\/blog\/wp-json\/wp\/v2\/posts\/2634\/revisions"}],"predecessor-version":[{"id":2636,"href":"https:\/\/upon2020.com\/blog\/wp-json\/wp\/v2\/posts\/2634\/revisions\/2636"}],"wp:attachment":[{"href":"https:\/\/upon2020.com\/blog\/wp-json\/wp\/v2\/media?parent=2634"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/upon2020.com\/blog\/wp-json\/wp\/v2\/categories?post=2634"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/upon2020.com\/blog\/wp-json\/wp\/v2\/tags?post=2634"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}