{"id":70,"date":"2004-01-31T11:13:43","date_gmt":"2004-01-31T17:13:43","guid":{"rendered":"http:\/\/www.mooreds.com\/wordpress\/?p=70"},"modified":"2004-01-31T11:13:43","modified_gmt":"2004-01-31T17:13:43","slug":"checking-the-status-of-your-files-using-cvs","status":"publish","type":"post","link":"https:\/\/www.mooreds.com\/wordpress\/archives\/70","title":{"rendered":"Checking the status of your files, using CVS"},"content":{"rendered":"<p>When I used <a href='http:\/\/www.cvshome.org'>CVS<\/a> a few years ago, I remember a colleague writing a tremendous perl script that you could run from anywhere in the CVS source tree.  It would let you know whether you had files that weren&#8217;t in CVS, needed to be updated, or were going to be merged.  It was quite a nice piece of perl code, which essentially parsed the output of <code>cvs status<\/code>, and the information it output was quite useful at the end of a long bug fixing or coding session (&#8220;hey, what files did I change again?&#8221;).  However, it also needed to be maintained and documented, as well as explained to users.<\/p>\n<p>The other day, I stumbled on something which works almost as well, but is part of CVS already: <code>cvs -qn up<\/code>.  The <code>q<\/code> option tells CVS to be quiet, and not chat about all the directories that it sees.  The <code>n<\/code> option tells CVS not to make any changes on the filesystem, but just tell you what changes it would have made.  Here&#8217;s some sample output:<\/p>\n<p><code>[moore@localhost guide]$ cvs -qn up<br \/>\n? securityTechniques\/NewStuff.rtf<br \/>\nM securityTechniques\/InputValidation.rtf<br \/>\nM securityTechniques\/SessionManagement.rtf<br \/>\nU securityTechniques\/AuthenticationWorkingDraft.doc<br \/>\n<\/code><\/p>\n<p><code>M<\/code> means that the file has been changed locally.  <code>?<\/code> means that the file exists on the locally, but not in the repository.  <code>U<\/code> means that  the file has changed in the repository, but not yet been updated locally.  For more information on the output of update, look <a href='http:\/\/www.cvshome.org\/docs\/manual\/cvs-1.11.10\/cvs_16.html#SEC154'>here<\/a>.<\/p>\n<p>Use this command and never lose track of the files in your CVS tree again.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When I used CVS a few years ago, I remember a colleague writing a tremendous perl script that you could run from anywhere in the CVS source tree. It would [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-70","post","type-post","status-publish","format-standard","hentry","category-programming"],"_links":{"self":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts\/70","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/comments?post=70"}],"version-history":[{"count":0,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts\/70\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/media?parent=70"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/categories?post=70"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/tags?post=70"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}