{"id":889,"date":"2014-10-02T11:01:18","date_gmt":"2014-10-02T11:01:18","guid":{"rendered":"http:\/\/lousodrome.net\/blog\/light\/?p=889"},"modified":"2014-10-02T11:02:27","modified_gmt":"2014-10-02T11:02:27","slug":"quick-change-list-overview-script","status":"publish","type":"post","link":"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/","title":{"rendered":"Quick change list overview script"},"content":{"rendered":"<p>A part of my daily routine when arriving at the office in the morning is a quick overview of the code changes since the previous day. It&#8217;s not a full blown code review, I only rapidly look at the most important parts of the code base, but I make a point\u00a0of doing it every day. It allows me to stay informed and notice if something is wildly going in the wrong direction.<\/p>\n<p>This is something I do every day, so it has to be quick and simple. I don&#8217;t want to have to open three windows, ctrl-select and right click all over the place. Especially since, like I said, it&#8217;s the morning, meaning my neurons are still not talking to each other much yet. I need something dead simple.<\/p>\n<p>Here is a short command line shell script I wrote for doing just that: show me the changes since the previous working day. It uses date with some fancy options to figure weekdays, as well as colordiff and less for comfortable reading. Just launch it from the terminal, and there you have all the changes ready to be scrolled. Feel free to use it if you find it useful.<\/p>\n<pre>#!\/bin\/sh\r\n\r\nargn=$#\r\nif [ $argn -lt 1 ]\r\nthen\r\n    echo \"Usage: $0 &lt;paths&gt;\"\r\n    exit 1\r\nfi\r\n\r\n(\r\ndateRequest=\"yesterday\"\r\nstartDate=`date --date=\"$dateRequest\" +\"%F\"`\r\nstartDay=`date --date=\"$dateRequest\" +\"%u\"`\r\n\r\nif [ $startDay -gt 5 ]\r\nthen\r\n    dateRequest=\"last Friday\"\r\n    startDate=`date --date=\"$dateRequest\" +\"%F\"`\r\n    startDay=`date --date=\"$dateRequest\" +\"%u\"`\r\nfi\r\n\r\necho \"Changes since $startDate:\";echo;echo\r\n\r\nfor d in $@\r\ndo\r\n    echo \"$d\"\r\n    svn log -r{\"$startDate\"}:HEAD \"$d\"\r\n    svn diff -r{\"$startDate\"}:HEAD \"$d\" -x --ignore-space-change | colordiff\r\ndone\r\n) | less -R\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>A part of my daily routine when arriving at the office in the morning is a quick overview of the code changes since the previous day. It&#8217;s not a full blown code review, I only rapidly look at the most &hellip; <a href=\"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[573,581,572,577,575,580,564,574,579,578,576,148,582],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.13 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Quick change list overview script &ndash; Light is beautiful<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Quick change list overview script &ndash; Light is beautiful\" \/>\n<meta property=\"og:description\" content=\"A part of my daily routine when arriving at the office in the morning is a quick overview of the code changes since the previous day. It&#8217;s not a full blown code review, I only rapidly look at the most &hellip; Continue reading &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/\" \/>\n<meta property=\"og:site_name\" content=\"Light is beautiful\" \/>\n<meta property=\"article:published_time\" content=\"2014-10-02T11:01:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-10-02T11:02:27+00:00\" \/>\n<meta name=\"author\" content=\"Julien Guertault\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Zavie\" \/>\n<meta name=\"twitter:site\" content=\"@Zavie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Julien Guertault\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/\"},\"author\":{\"name\":\"Julien Guertault\",\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/a16a2a69d73eca763ffdf125c49eaa2f\"},\"headline\":\"Quick change list overview script\",\"datePublished\":\"2014-10-02T11:01:18+00:00\",\"dateModified\":\"2014-10-02T11:02:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/\"},\"wordCount\":204,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/a16a2a69d73eca763ffdf125c49eaa2f\"},\"keywords\":[\"bash\",\"changelog\",\"code review\",\"console\",\"diff\",\"repository\",\"script\",\"shell\",\"Subversion\",\"svn\",\"terminal\",\"tool\",\"versioning\"],\"articleSection\":[\"Random\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/\",\"url\":\"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/\",\"name\":\"Quick change list overview script &ndash; Light is beautiful\",\"isPartOf\":{\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/#website\"},\"datePublished\":\"2014-10-02T11:01:18+00:00\",\"dateModified\":\"2014-10-02T11:02:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/lousodrome.net\/blog\/light\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Quick change list overview script\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/#website\",\"url\":\"https:\/\/lousodrome.net\/blog\/light\/\",\"name\":\"Light is beautiful\",\"description\":\"Thoughts of a graphics programmer, demoscener and spare time photographer\",\"publisher\":{\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/a16a2a69d73eca763ffdf125c49eaa2f\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/lousodrome.net\/blog\/light\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/a16a2a69d73eca763ffdf125c49eaa2f\",\"name\":\"Julien Guertault\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2e5fc7a18e1701e1bb61a5da0ef35cf7?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2e5fc7a18e1701e1bb61a5da0ef35cf7?s=96&d=identicon&r=g\",\"caption\":\"Julien Guertault\"},\"logo\":{\"@id\":\"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/image\/\"},\"url\":\"https:\/\/lousodrome.net\/blog\/light\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Quick change list overview script &ndash; Light is beautiful","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/","og_locale":"en_US","og_type":"article","og_title":"Quick change list overview script &ndash; Light is beautiful","og_description":"A part of my daily routine when arriving at the office in the morning is a quick overview of the code changes since the previous day. It&#8217;s not a full blown code review, I only rapidly look at the most &hellip; Continue reading &rarr;","og_url":"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/","og_site_name":"Light is beautiful","article_published_time":"2014-10-02T11:01:18+00:00","article_modified_time":"2014-10-02T11:02:27+00:00","author":"Julien Guertault","twitter_card":"summary_large_image","twitter_creator":"@Zavie","twitter_site":"@Zavie","twitter_misc":{"Written by":"Julien Guertault","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/#article","isPartOf":{"@id":"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/"},"author":{"name":"Julien Guertault","@id":"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/a16a2a69d73eca763ffdf125c49eaa2f"},"headline":"Quick change list overview script","datePublished":"2014-10-02T11:01:18+00:00","dateModified":"2014-10-02T11:02:27+00:00","mainEntityOfPage":{"@id":"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/"},"wordCount":204,"commentCount":0,"publisher":{"@id":"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/a16a2a69d73eca763ffdf125c49eaa2f"},"keywords":["bash","changelog","code review","console","diff","repository","script","shell","Subversion","svn","terminal","tool","versioning"],"articleSection":["Random"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/","url":"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/","name":"Quick change list overview script &ndash; Light is beautiful","isPartOf":{"@id":"https:\/\/lousodrome.net\/blog\/light\/#website"},"datePublished":"2014-10-02T11:01:18+00:00","dateModified":"2014-10-02T11:02:27+00:00","breadcrumb":{"@id":"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/lousodrome.net\/blog\/light\/2014\/10\/02\/quick-change-list-overview-script\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/lousodrome.net\/blog\/light\/"},{"@type":"ListItem","position":2,"name":"Quick change list overview script"}]},{"@type":"WebSite","@id":"https:\/\/lousodrome.net\/blog\/light\/#website","url":"https:\/\/lousodrome.net\/blog\/light\/","name":"Light is beautiful","description":"Thoughts of a graphics programmer, demoscener and spare time photographer","publisher":{"@id":"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/a16a2a69d73eca763ffdf125c49eaa2f"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/lousodrome.net\/blog\/light\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/a16a2a69d73eca763ffdf125c49eaa2f","name":"Julien Guertault","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2e5fc7a18e1701e1bb61a5da0ef35cf7?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2e5fc7a18e1701e1bb61a5da0ef35cf7?s=96&d=identicon&r=g","caption":"Julien Guertault"},"logo":{"@id":"https:\/\/lousodrome.net\/blog\/light\/#\/schema\/person\/image\/"},"url":"https:\/\/lousodrome.net\/blog\/light\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/lousodrome.net\/blog\/light\/wp-json\/wp\/v2\/posts\/889"}],"collection":[{"href":"https:\/\/lousodrome.net\/blog\/light\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lousodrome.net\/blog\/light\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lousodrome.net\/blog\/light\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lousodrome.net\/blog\/light\/wp-json\/wp\/v2\/comments?post=889"}],"version-history":[{"count":0,"href":"https:\/\/lousodrome.net\/blog\/light\/wp-json\/wp\/v2\/posts\/889\/revisions"}],"wp:attachment":[{"href":"https:\/\/lousodrome.net\/blog\/light\/wp-json\/wp\/v2\/media?parent=889"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lousodrome.net\/blog\/light\/wp-json\/wp\/v2\/categories?post=889"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lousodrome.net\/blog\/light\/wp-json\/wp\/v2\/tags?post=889"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}