<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Weiqi Gao&#039;s Observations - cvs tag</title>
  <link>http://www.weiqigao.com/blog/tags/cvs/</link>
  <description>Sharing My Experience...</description>
  <language>en</language>
  <copyright>Weiqi Gao</copyright>
  <lastBuildDate>Fri, 11 May 2012 12:48:36 GMT</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  <image>
    <url>http://pebble.sourceforge.net/common/images/powered-by-pebble.gif</url>
    <title>Weiqi Gao&#039;s Observations</title>
    <link>http://www.weiqigao.com/blog/</link>
  </image>
  
  
  <item>
    <title>Subversion, CVS, Bazaar-NG (bzr), ...</title>
    <link>http://www.weiqigao.com/blog/2006/05/18/subversion_cvs_bazaar_ng_bzr.html</link>
    
      
        <description>
          &lt;p&gt;Mark and Jonathan had a little Subversion problem today.  They wanted to move a directory in the repo and had a hard time doing it.&lt;/p&gt;

&lt;/p&gt;I&#039;ve been using Subversion for a long time and never had any problems with it.  However, I had never attempted to move a directory.  So I tried a little experiement with my toy repo using the svn command from Cygwin:&lt;/p&gt;

&lt;pre style=&#034;margin-left:3em&#034;&gt;[weiqi@gao] $ &lt;b&gt;svn co file:///var/svnroot&lt;/b&gt;
A    svnroot/trunk
A    svnroot/branches
A    svnroot/src
A    svnroot/src/foo.txt
A    svnroot/tags
Checked out revision 14.
[weiqi@gao] $ &lt;b&gt;ls&lt;/b&gt;
&lt;span style=&#034;color:blue&#034;&gt;svnroot&lt;/span&gt;/
[weiqi@gao] $ &lt;b&gt;cd svnroot&lt;/b&gt;
[weiqi@gao] $ &lt;b&gt;ls&lt;/b&gt;
&lt;span style=&#034;color:blue&#034;&gt;branches&lt;/span&gt;/  &lt;span style=&#034;color:blue&#034;&gt;src&lt;/span&gt;/  &lt;span style=&#034;color:blue&#034;&gt;tags&lt;/span&gt;/  &lt;span style=&#034;color:blue&#034;&gt;trunk&lt;/span&gt;/
[weiqi@gao] $ &lt;b&gt;svn move src trunk&lt;/b&gt;
svn: Can&#039;t move &#039;trunk/src/.svn/props/foo.txt.svn-work.tmp&#039; to &#039;trunk/src/.svn/p
rops/foo.txt.svn-work&#039;: Permission denied&lt;/pre&gt;

&lt;p&gt;I don&#039;t know what causes this problem.  But the problem goes away if I performs a server side move (&lt;tt&gt;svn move file:///var/svnroot/src file:///var/svnroot/trunk&lt;/tt&gt;).&lt;/p&gt;

&lt;hr align=&#034;center&#034; noshade=&#034;noshade&#034; size=&#034;1&#034; width=&#034;60%&#034;&gt;

&lt;p&gt;&#034;Why can&#039;t they just add the directory moving (and atomic commit) features to CVS?&#034;&lt;/p&gt;
&lt;p&gt;&#034;The maintainers of CVS wrote Subversion.&#034;&lt;/p&gt;

&lt;hr align=&#034;center&#034; noshade=&#034;noshade&#034; size=&#034;1&#034; width=&#034;60%&#034;&gt;

&lt;p&gt;And then there&#039;s &lt;a href= &#034;http://bazaar-vcs.org/&#034; &gt;Bazaar-NG (bzr)&lt;/a&gt;.  It&#039;s in both Cygwin and Fedora Core 5.  I vaguely know that it&#039;s a new kind of source control system, but not much more.  I read about it on &lt;a href= &#034;http://www.markshuttleworth.com/&#034; &gt;Mark Shuttleworth&lt;/a&gt;&#039;s &lt;a href= &#034;http://www.markshuttleworth.com/archives/34&#034; &gt;blog&lt;/a&gt; 10 days ago.&lt;/p&gt;

&lt;p&gt;Mark Shuttleworth, for those who don&#039;t already know, is the man behind the &lt;a href= &#034;http://www.ubuntu.com/&#034; &gt;Ubuntu Linux distribution&lt;/a&gt;.  (He was on &lt;a href= &#034;http://flickr.com/photos/webmink/148204920/&#034; &gt;stage with Jonathan Schwartz&lt;/a&gt; at JavaOne on Tuesday announcing the availability of Java in Debian and Ubuntu repositories.)&lt;/p&gt;

&lt;p&gt;Bzr is definitely different from CVS and Subversion.  Their tutorial is easy to follow.  And I like the fact that I&#039;m always working in a branch and can commit to my branch without bothering other developers.  However, some of the other features are not so easy to get used to.  For example, there is not a central repository.  (I guess that&#039;s why it is called a decentralized source control system.)  Everybody has his own branch, which they can push to a web site for others to marvel at.  And everybody can merge from everybody else&#039;s branch.&lt;/p&gt;

&lt;p&gt;It also seems to me that all the revisions are stored in a &lt;tt&gt;.bar&lt;/tt&gt; subdirectory of the working directory, just like in the SCCS days.  If I loose my hard drive, I loose my branch.&lt;/p&gt;

&lt;p&gt;What do you do when you want to release version 1.0?  Whose branch do you use?&lt;/p&gt;

&lt;p&gt;However, this &lt;a href= &#034;http://www.omat.nl/drupal/?q=node/76&#034; &gt;blog entry from Tom Albers&lt;/a&gt; shows a different scenario where bzr&#039;s usage may add value.  Because you can very easily bring any old directory laying around your hard drive under bzr&#039;s control (&lt;tt&gt;bzr init; bzr add; bzr commit;&lt;/tt&gt;) you can version directories that isn&#039;t normally versioned.&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://www.weiqigao.com/blog/2006/05/18/subversion_cvs_bazaar_ng_bzr.html#comments</comments>
    <guid isPermaLink="true">http://www.weiqigao.com/blog/2006/05/18/subversion_cvs_bazaar_ng_bzr.html</guid>
    <pubDate>Thu, 18 May 2006 05:16:34 GMT</pubDate>
  </item>
  
  <item>
    <title>A Bit Of CVS Mystery</title>
    <link>http://www.weiqigao.com/blog/2005/10/30/a_bit_of_cvs_mystery.html</link>
    
      
        <description>
          &lt;p&gt;I had to deal with a bit of CVS mystery at work last Friday (or this Friday depending on whether the week starts with a Sunday or a Monday and however the adjectives &#039;last,&#039; &#039;this,&#039; and &#039;next&#039; work with days of the week&amp;mdash;&lt;a href= &#034;http://www.weiqigao.com/blog/2005/08/09/when_is_next_tuesday.html&#034; &gt;I&#039;m still confused&lt;/a&gt;&amp;mdash;anyway, it was two &lt;a href= &#034;http://www.weiqigao.com/blog/2004/12/11/how_many_days_ago_was_that.html&#034; &gt;days ago&lt;/a&gt;) whereby messages such as the following is issued for an entire subdirectory structure:&lt;/p&gt;

&lt;pre style=&#034;margin-left:3em&#034;&gt;[...]
cvs update: move away lib/asdf/qwer.cpp; it is in the way
C lib/asdf/qwer.cpp
cvs update: move away lib/asdf/qwer.h; it is in the way
C lib/asdf/qwer.h
[...]&lt;/pre&gt;

&lt;p&gt;This happened whenever I tried to update my workspace with my usual CVS command in the project directory:&lt;/p&gt;

&lt;pre style=&#034;margin-left:3em&#034;&gt;[weiqi@gao] $ &lt;b&gt;cvs -q -z9 up -dP&lt;/b&gt;&lt;/pre&gt;

&lt;p&gt;A simplified version of the project directory is as follows:&lt;/p&gt;

&lt;pre style=&#034;margin-left:3em&#034;&gt;
&lt;span style=&#034;color:blue&#034;&gt;$project-dir&lt;/span&gt;/
  +-&lt;span style=&#034;color:blue&#034;&gt;module-1&lt;/span&gt;/
  +-&lt;span style=&#034;color:blue&#034;&gt;module-2&lt;/span&gt;/
  +-...
  +-&lt;span style=&#034;color:blue&#034;&gt;module-n&lt;/span&gt;/
  +-&lt;span style=&#034;color:blue&#034;&gt;bin&lt;/span&gt;/
  +-&lt;span style=&#034;color:blue&#034;&gt;lib&lt;/span&gt;/&lt;/pre&gt;

&lt;p&gt;where &lt;tt style=&#034;color:blue&#034;&gt;module-1&lt;/tt&gt;, &lt;tt&gt;...&lt;/tt&gt;, &lt;tt style=&#034;color:blue&#034;&gt;module-n&lt;/tt&gt; contains sources and &lt;tt style=&#034;color:blue&#034;&gt;bin&lt;/tt&gt; and &lt;tt style=&#034;color:blue&#034;&gt;lib&lt;/tt&gt; contains compiled &lt;tt style=&#034;color:green&#034;&gt;executables&lt;/tt&gt; and &lt;tt style=&#034;color:green&#034;&gt;dynamic link libraries&lt;/tt&gt; respectively.&lt;/p&gt;

&lt;p&gt;Naturally, the &lt;tt style=&#034;color:blue&#034;&gt;bin&lt;/tt&gt; and &lt;tt style=&#034;color:blue&#034;&gt;lib&lt;/tt&gt; directory are not in CVS, and we have a &lt;tt&gt;.cvsignore&lt;/tt&gt; file under &lt;tt style=&#034;color:blue&#034;&gt;$project-dir&lt;/tt&gt; that lists both directories to prevent CVS from printing out questions about files in these directories when I update.&lt;/p&gt;

&lt;p&gt;Everything worked just fine until the CVS directory restructure.  Under the new and improved plan, the &lt;tt style=&#034;color:blue&#034;&gt;lib&lt;/tt&gt; directory and a subdirectory tree underneath it is added to CVS:&lt;/p&gt;

&lt;pre style=&#034;margin-left:3em&#034;&gt;
&lt;span style=&#034;color:blue&#034;&gt;$project-dir&lt;/span&gt;/
  +-...
  +-&lt;span style=&#034;color:blue&#034;&gt;lib&lt;/span&gt;/
    +-&lt;span style=&#034;color:blue&#034;&gt;asdf&lt;/span&gt;/
    | +-...
    | +-qwer.cpp
    | +-qwer.h
    | +...
    +-&lt;span style=&#034;color:blue&#034;&gt;zxcv&lt;/span&gt;/
    +-...&lt;/pre&gt;

&lt;p&gt;All of these is done somewhere else.  All I have to do is to issue my CVS update command.  My first try pulled down the new subdirectories and files.  The conflicts happened on subsequent CVS updates.&lt;/p&gt;

&lt;p&gt;As it turned out, my problem can be fixed by adding a line&lt;/p&gt;

&lt;pre style=&#034;margin-left:3em&#034;&gt;D/lib////&lt;/pre&gt;

&lt;p&gt;to the &lt;tt&gt;$project-dir/CVS/Entries&lt;/tt&gt; file, or by deleting the entire &lt;tt style=&#034;color:blue&#034;&gt;lib&lt;/tt&gt; tree and redo CVS update.&lt;/p&gt;

&lt;p&gt;But I still don&#039;t understand how my workspace got the way it was.  Since my problem is solved, I&#039;m not inclined to investigate (i.e., try to reproduce the weird situation) further.&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://www.weiqigao.com/blog/2005/10/30/a_bit_of_cvs_mystery.html#comments</comments>
    <guid isPermaLink="true">http://www.weiqigao.com/blog/2005/10/30/a_bit_of_cvs_mystery.html</guid>
    <pubDate>Sun, 30 Oct 2005 14:05:23 GMT</pubDate>
  </item>
  
  <item>
    <title>GCC To Move To Subversion</title>
    <link>http://www.weiqigao.com/blog/2005/10/25/gcc_to_move_to_subversion.html</link>
    
      
        <description>
          &lt;p&gt;Another reference point for projects that are comtemplating a move away from CVS to Subversion:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href= &#034;http://gcc.gnu.org/ml/gcc/2005-10/msg00758.html&#034; &gt;Daniel Berlin, GCC&lt;/a&gt;: We will move to subversion starting Wednesday, October 26th.&lt;/p&gt;
&lt;/blockquote&gt;
        </description>
      
      
    
    
    
    <comments>http://www.weiqigao.com/blog/2005/10/25/gcc_to_move_to_subversion.html#comments</comments>
    <guid isPermaLink="true">http://www.weiqigao.com/blog/2005/10/25/gcc_to_move_to_subversion.html</guid>
    <pubDate>Tue, 25 Oct 2005 15:52:28 GMT</pubDate>
  </item>
  
  </channel>
</rss>

