{"id":3418,"date":"2011-05-20T09:56:12","date_gmt":"2011-05-20T14:56:12","guid":{"rendered":"http:\/\/mjtsai.com\/blog\/?p=3418"},"modified":"2014-07-22T14:08:44","modified_gmt":"2014-07-22T18:08:44","slug":"sourcetree-1-2-1","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2011\/05\/20\/sourcetree-1-2-1\/","title":{"rendered":"SourceTree 1.2.1"},"content":{"rendered":"<p><a href=\"http:\/\/www.sourcetreeapp.com\">SourceTree<\/a> is a Git and Mercurial client (via <a href=\"http:\/\/twitter.com\/FogBugz\/status\/71562714631249920\">@FogBugz<\/a>). It seems to include all the expected features, including the ability to send diffs to BBEdit. Overall, I prefer the way <a href=\"http:\/\/www.git-tower.com\">Tower<\/a>&rsquo;s interface is designed. SourceTree&rsquo;s seems busier, a bit unpolished, and it wants you to make wide windows. However, SourceTree also seems to be faster at showing diffs, and it can do some things that Tower can&rsquo;t, such as blame view and per-file change logs (which, alas, do not seem to use <tt>--follow<\/tt> to track the history through moves and renames). After <a href=\"http:\/\/mjtsai.com\/blog\/2007\/07\/15\/subversion-to-git\/\">switching to Git<\/a> about four years ago and using it via Terminal and some AppleScripts for a long time, it&rsquo;s great to be able to choose from multiple good GUI clients (including Xcode 4). I plan to use several of them in concert going forward. The next thing I&rsquo;d like is for the clients to let you search based on the changed source lines, rather than just the commit messages.<\/p>\r\n<p>Update: Developer Steve Streeting replied to my e-mail almost immediately with this explanation:<\/p>\r\n<blockquote><p>I used to use --follow in an earlier version of SourceTree, until I discovered that, for now at least, this option is fundamentally flawed in Git, and it causes random dropping of log lines in many cases. This has been reported <a href=\"http:\/\/stackoverflow.com\/questions\/3650393\/git-log-over-restricts-output-when-using-follow\">here for example<\/a>.<\/p>\r\n<p>I don&rsquo;t know if git has any plan to fix this, but I disabled it a few point releases ago because it was doing more harm than good (at least the lack of history over rename is predictable). I intend to add a new option to the dialog to selectively allow users to re-enable it when they need it, so that hopefully you can get the information back in those cases without it randomly breaking other logs.\r\n<\/p><\/blockquote>","protected":false},"excerpt":{"rendered":"<p>SourceTree is a Git and Mercurial client (via @FogBugz). It seems to include all the expected features, including the ability to send diffs to BBEdit. Overall, I prefer the way Tower&rsquo;s interface is designed. SourceTree&rsquo;s seems busier, a bit unpolished, and it wants you to make wide windows. However, SourceTree also seems to be faster [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"","apple_news_api_id":"","apple_news_api_modified_at":"","apple_news_api_revision":"","apple_news_api_share_url":"","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[4],"tags":[377,605,30,32,607,376],"class_list":["post-3418","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-git","tag-git-tower","tag-mac","tag-macapp","tag-sourcetree","tag-versioncontrol"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/3418","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=3418"}],"version-history":[{"count":11,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/3418\/revisions"}],"predecessor-version":[{"id":3429,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/3418\/revisions\/3429"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=3418"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=3418"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=3418"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}