{"id":5023,"date":"2005-06-03T21:22:00","date_gmt":"2005-06-03T21:22:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/buckh\/2005\/06\/03\/cvs-compared-with-team-foundation-version-control\/"},"modified":"2005-06-03T21:22:00","modified_gmt":"2005-06-03T21:22:00","slug":"cvs-compared-with-team-foundation-version-control","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/buckh\/cvs-compared-with-team-foundation-version-control\/","title":{"rendered":"CVS compared with Team Foundation Version Control"},"content":{"rendered":"<p>In the Team Foundation forum a question was asked regarding CVS compared to Team Foundation Version Control.&nbsp; Here&#8217;s what I wrote.<\/p>\n<blockquote>\n<p>Of course, Team Foundation is much more than version control since we have integrated work item tracking, reporting, etc.<\/p>\n<p>I&#8217;m biased, of course, and I&#8217;m probably leaving stuff out.&nbsp; I&#8217;ve used CVS in the past, but I wasn&#8217;t exactly a power user.&nbsp; Okay, here goes.<\/p>\n<p>TFS has atomic checkins.&nbsp; When you check in, it all succeeds or fails.&nbsp; No changes are committed unless the whole thing succeeds.&nbsp; CVS does not have this.<\/p>\n<p>TFS has <a href=\"http:\/\/blogs.msdn.com\/buckh\/search.aspx?q=shelving&amp;p=1\">shelving<\/a>, and CVS does not.&nbsp; Shelving is a great way to juggle sets of changes as well as backup changes without checking them in.<\/p>\n<p>TFS has a SQL database for the server, and CVS does not.&nbsp; This means that adminstering it uses the same tools famililar to database admins (in beta 2, there is ADAM data not in SQL, but ADAM has been removed &#8212; ignore this comment if it doesn&#8217;t mean anything to you).<\/p>\n<p>CVS and TFS both support parallel development.&nbsp; Everyone checks out and modifies files and resolves conflicts before checking in.&nbsp; There&#8217;s no need to grab an exclusive lock.<\/p>\n<p>CVS does a better job with &#8220;offline&#8221; mode than TFS in version 1.&nbsp; It&#8217;s inherent to CVS because you just modify files and then sync up with the repository before checking in. &nbsp;When you pend an edit in TFS, you must be able to talk to the server to do it.&nbsp; We&#8217;ll be doing a lot more for offline support in the next version.<\/p>\n<p>TFS branches in path space, which means that branch is a lot like copy.&nbsp; CVS branches are different.&nbsp; Branches in TFS can have different permissions (main vs. release branches).<\/p>\n<p>TFS has <a href=\"http:\/\/blogs.msdn.com\/team_foundation\/archive\/2005\/04\/15\/408700.aspx\">checkin policies<\/a>, and CVS does not.<\/p>\n<p>TFS supports rename\/move, but CVS does not.<\/p>\n<p>The TFS command line, h.exe, has really nice dialogs for command like checkin, shelve, and resolving conflicts (there&#8217;s also a \/noprompt option to suppress dialogs).&nbsp; CVS doesn&#8217;t have that.<\/p>\n<p>TFS comes with a full GUI, either VS 2005 or the Team Foundation Client (to be renamed Team Explorer).&nbsp; CVS does not have a GUI itself, though there are several available.<\/p>\n<p>TFS uses its SQL server for history queries.&nbsp; CVS doesn&#8217;t have that support.<\/p>\n<p>TFS uses SOAP over HTTP (or HTTPS) to communicate with the server.&nbsp; You don&#8217;t need to open other ports or tunnel through ssh for remote access as you would for CVS.<\/p>\n<p>TFS stores files compressed as reverse deltas (diffs from one version to the next).&nbsp; CVS can&#8217;t do that.<\/p>\n<p>CVS and TFS both have branch and merge capabilities, but the changesets used by TFS make it easier to manage.<br><\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>In the Team Foundation forum a question was asked regarding CVS compared to Team Foundation Version Control.&nbsp; Here&#8217;s what I wrote. Of course, Team Foundation is much more than version control since we have integrated work item tracking, reporting, etc. I&#8217;m biased, of course, and I&#8217;m probably leaving stuff out.&nbsp; I&#8217;ve used CVS in the [&hellip;]<\/p>\n","protected":false},"author":94,"featured_media":10268,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[6],"class_list":["post-5023","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-source-control"],"acf":[],"blog_post_summary":"<p>In the Team Foundation forum a question was asked regarding CVS compared to Team Foundation Version Control.&nbsp; Here&#8217;s what I wrote. Of course, Team Foundation is much more than version control since we have integrated work item tracking, reporting, etc. I&#8217;m biased, of course, and I&#8217;m probably leaving stuff out.&nbsp; I&#8217;ve used CVS in the [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/posts\/5023","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/users\/94"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/comments?post=5023"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/posts\/5023\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/media\/10268"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/media?parent=5023"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/categories?post=5023"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/tags?post=5023"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}