{"id":32,"date":"2008-07-24T00:05:56","date_gmt":"2008-07-24T05:05:56","guid":{"rendered":"http:\/\/littlesvr.ca\/grumble\/2008\/07\/24\/why-dont-people-use-version-control\/"},"modified":"2012-12-05T00:58:00","modified_gmt":"2012-12-05T05:58:00","slug":"why-dont-people-use-version-control","status":"publish","type":"post","link":"http:\/\/littlesvr.ca\/grumble\/2008\/07\/24\/why-dont-people-use-version-control\/","title":{"rendered":"Why don&#8217;t people use version control?"},"content":{"rendered":"<p>Ever since I read the subversion manual I&#8217;ve been really impressed with version control, and with subversion especially. Like any other student in CS I&#8217;ve had my fair share of &#8220;Where is the latest version of my assignment? Crap, it&#8217;s on my desktop at home and it&#8217;s due in two hours&#8221;. And subversion got rid of that problem for me.<\/p>\n<p>A couple of times I did a 30-minute tutorial on subversion to a class of CS students. I did my best to emphasize how easy it is to use and how significant a problem it solves. I&#8217;m sure I convinced a few to use it, but not nearly as many as I should have.<\/p>\n<p>I guess there are two significant reasons why students don&#8217;t bother with subversion:<\/p>\n<p><strong>1 &#8211; No time to learn it <\/strong><\/p>\n<p>Even though there are really just 5 commands one needs to know to make good use of it &#8211; it&#8217;s 5 commands the students don&#8217;t feel like learning.<\/p>\n<p>One shouldn&#8217;t blame the poor students, they already have so much to learn, especially in the beginning of a program. They have to manage their time just like anybody else, and learning something that&#8217;s supposed to save them from trouble at some undefined point(s) in the future isn&#8217;t high on their list of priorities.<\/p>\n<p><strong>2 &#8211; No server<\/strong><\/p>\n<p>Most people aren&#8217;t as impressed as me with Linux servers and don&#8217;t have their own linux box they could use for a subversion server. And if they do they&#8217;re on Rogers or Bell and they&#8217;re not allowed to have a public server on that connection.<\/p>\n<p>So even though the subversion server installation is possibly the easiest of any serious server, and creating a repository can be done in a 2-line shell script it&#8217;s really beyond the average student&#8217;s ability.<\/p>\n<p>All this is quite unfortunate for many reasons, among them:<\/p>\n<ul>\n<li>In the real world, unless a CS student ends up being a sysadmin or a webmaster &#8211; they&#8217;ll be required to know and use version control. The concepts of how version control works should be learned in school.<\/li>\n<li>Graduate students work on years-long projects. Working on a piece of code for a year with no version control is wrong for so many reasons I won&#8217;t bother explaining it here.<\/li>\n<\/ul>\n<p>I&#8217;m working on a solution for this problem. That&#8217;s all I&#8217;ll say for now (until I work out the logistics).<\/p>\n<p>Excercise for the reader: figure out what I called this project (I registered the domain name as soon as I decided to take the project on).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ever since I read the subversion manual I&#8217;ve been really impressed with version control, and with subversion especially. Like any other student in CS I&#8217;ve had my fair share of &#8220;Where is the latest version of my assignment? Crap, it&#8217;s on my desktop at home and it&#8217;s due in two hours&#8221;. And subversion got rid &hellip; <\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":{"0":"entry","1":"post","2":"publish","3":"author-andrew","4":"post-32","6":"format-standard","7":"category-safeforseneca"},"_links":{"self":[{"href":"http:\/\/littlesvr.ca\/grumble\/wp-json\/wp\/v2\/posts\/32","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/littlesvr.ca\/grumble\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/littlesvr.ca\/grumble\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/littlesvr.ca\/grumble\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/littlesvr.ca\/grumble\/wp-json\/wp\/v2\/comments?post=32"}],"version-history":[{"count":2,"href":"http:\/\/littlesvr.ca\/grumble\/wp-json\/wp\/v2\/posts\/32\/revisions"}],"predecessor-version":[{"id":662,"href":"http:\/\/littlesvr.ca\/grumble\/wp-json\/wp\/v2\/posts\/32\/revisions\/662"}],"wp:attachment":[{"href":"http:\/\/littlesvr.ca\/grumble\/wp-json\/wp\/v2\/media?parent=32"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/littlesvr.ca\/grumble\/wp-json\/wp\/v2\/categories?post=32"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/littlesvr.ca\/grumble\/wp-json\/wp\/v2\/tags?post=32"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}