<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sheepdog IT &#187; Subversion</title>
	<atom:link href="http://www.sheepdogit.com/category/subversion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sheepdogit.com</link>
	<description>Herding Penguins for over 5 years</description>
	<lastBuildDate>Tue, 15 Jun 2010 20:35:17 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Subversion &#8211; Subdirectory Branch and Merge</title>
		<link>http://www.sheepdogit.com/2007/08/05/subversion-subdirectory-branch-and-merge/</link>
		<comments>http://www.sheepdogit.com/2007/08/05/subversion-subdirectory-branch-and-merge/#comments</comments>
		<pubDate>Mon, 06 Aug 2007 01:17:06 +0000</pubDate>
		<dc:creator>Bozzie</dc:creator>
				<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://bozziesfw.wordpress.com/2007/08/05/subversion-subdirectory-branch-and-merge/</guid>
		<description><![CDATA[While rereading the SVN Book, I noticed instructions for creating a branch  on a subdirectory of the trunk.  So I decided to create a branch on just the php subdirectory of a project:
svn copy http://localhost/svn/ll/trunk/php http://localhost/svn/ll/branches/phpMVC
The branch development was adopted, thus requiring merging the code back into the trunk. Overall, using a branch [...]]]></description>
			<content:encoded><![CDATA[<p>While rereading the SVN Book, I noticed instructions for creating a branch  on a subdirectory of the trunk.  So I decided to create a branch on just the <em>php</em> subdirectory of a project:</p>
<pre>svn copy http://localhost/svn/ll/trunk/php http://localhost/svn/ll/branches/phpMVC</pre>
<p>The branch development was adopted, thus requiring merging the code back into the trunk. Overall, using a branch on just the subdirectory I was working on made the development and merging easier.  Commits by others could be retrieved by an <em>update</em> without needing a merge, minimizing disruptions during coding.</p>
<p>I screwed up the merge as follows:</p>
<ul>
<li><em>svn merge -r 11:15 http:../branches/phpMVC &#8211; </em>on the basis of a <em>stop-on-copy</em> command that started at 15 and ended at 11.  But other files in the branch had been modified up to revision 20.  So I will use the form <em>svn merge -r 11:HEAD</em> from now on.</li>
<li>I kept issuing the <em>svn merge</em> and <em>svn switch</em>  commands in the root directory instead of the <em>php</em> subdirectory.  These missteps were reported by SVN and I recovered, but I did scare myself a few times.</li>
</ul>
<p>Also, I modified a file in a <em>css</em> subdirectory which I could not commit to the branch because it was not within the scope of the branch.  Next time I will create the branch on the entire project and then <em>svn switch</em> only the subdirectory I&#8217;m working on. This leaves the option of switching other subdirectories if the work expands.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sheepdogit.com/2007/08/05/subversion-subdirectory-branch-and-merge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuring Apache using YaST, openSUSE 10.2</title>
		<link>http://www.sheepdogit.com/2007/02/24/configuring-apache-using-yast-opensuse-102/</link>
		<comments>http://www.sheepdogit.com/2007/02/24/configuring-apache-using-yast-opensuse-102/#comments</comments>
		<pubDate>Sat, 24 Feb 2007 11:36:38 +0000</pubDate>
		<dc:creator>Bozzie</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[SUSE]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[YaST]]></category>
		<category><![CDATA[opensuse]]></category>

		<guid isPermaLink="false">http://bozziesfw.wordpress.com/2007/02/24/configure-apache-with-yast/</guid>
		<description><![CDATA[Configure Apache2 on openSUSE 10.2 with YaST instead of editing conf files. YaST is very efficient for initial Apache installation and for adding, enabling, and disabling server modules.]]></description>
			<content:encoded><![CDATA[<p>I configure Apache2 on openSUSE with YaST rather than editing the configuration files directly. If this is your first time installing Apache on openSUSE, I highly recommend it. YaST is a big time-saver for two aspects of Apache configuration: the initial installation and adding, enabling, and disabling server modules. A default server configuration supporting Perl and PHP can be up and running in less than an hour using YaST.</p>
<p>YaST isn&#8217;t good at all facets of Apache configuration so some editing of <em>conf</em> files may eventually be needed. If manual editing is required, why not use it exclusively?  Because once you go manual, you can&#8217;t switch back to YaST when major changes are needed.  I like the fact that if I install a new web application that needs several additional Apache modules, I can use YaST to enable them in a couple of minutes, often without having to learn anything about them.</p>
<p>I also like the fact that using YaST to configure Apache will give me a configuration closely matched to thousands of other openSUSE Apache servers.  This makes it likely that I will get a functional, robust <em>httpd</em> set up at the start.  Then I can incrementally add modules and customizations as needed, testing as I go.</p>
<p>Following is a YaST-based recipe to install a straightforward <em>httpd</em> configuration with Perl, PHP, and <em>mod_userdir</em> enabled. Subversion, WebDAV, and virtual host support are also added (using some conf file editing). Finally, the added bookkeeping steps that allow YaST and hand-edited <em>conf</em> files to co-exist are presented.</p>
<h4>Part I: Content-Independent Configuration</h4>
<p>Part 1 installs a functional (but empty) <em>httpd </em>server with all modules and parameters properly configured.  Connections to the site-specific content are discussed in Part 2.</p>
<ol>
<li><em>OpenSUSE</em> scatters Apache <em>conf</em> files among <em>/etc/apache2</em> and  its <em>conf.d</em>, <em>sysconfig.d</em> and <em>vhosts.d</em> sub-directories. Keep a copy of the original conf files to determine what YaST has done and add source code control repositories to manage manually edited files:
<ul>
<li><code>cd /etc/apache2</code></li>
<li><code>mkdir ORIG; cp -p *.conf ORIG</code></li>
<li><code>mkdir RCS</code></li>
<li>Repeat for the three &#8220;.d&#8221; subdirectories.</li>
</ul>
</li>
<li>Start YaST/ Network Services/ HTTP Server:
<ul>
<li>Turn on <em>php, perl, python </em>and/or <em>ruby </em>in a special configuration page that only appears once (one can still turn these on/off later, but it&#8217;s easier to do here).</li>
<li>Accept defaults in the Server Wizard (5 pages), except choose <em>Start When Booting</em> on page 5.</li>
<li>Click Advanced Configuration.</li>
<li> In the Server Modules tab, enable <em>dav, dav_fs, info, rewrite </em>and <em>status</em>.</li>
<li>Needed to <em>Add Module</em> for <em>dav_svn</em> but the YaST screen would not accept input, so I hit <em>Finish </em>(will add in Step 3).<em><br />
</em></li>
<li>The server starts.  <em>http://localhost</em> just says &#8220;It works!&#8221; instead of the normal Apache welcome page.  Didn&#8217;t like this so I copied <em>index.html</em> from an old SUSE 10.0 installation.</li>
<li>Read the comments in all of the <em>/etc/apache2/conf.d/*.conf</em> files, some of which are controlled by <em>IfDefine</em> blocks.  For my installation, I learned I needed to add the <em>SVN_DOC </em>and<em> SVN_VIEWCVS </em>flags (next step)<em>.</em></li>
</ul>
</li>
<li>Start YaST/ System/ sysconfig Editor:
<ul>
<li>Select Network, WWW, Apache2.</li>
<li>Highlight <em>APACHE_MODULES.</em> Add<em> dav_svn</em> into the Modules line.<strong> Note: </strong>Don&#8217;t hand-edit <em>dav_svn</em> into <em>/etc/apache2/sysconfig.d/loadmodule.conf</em>, as YaST will just remove it next time it runs.</li>
<li>Highlight <em>APACHE_SERVER_FLAGS.</em> Type <em>&#8220;SVN_DOC </em><em>SVN_VIEWCVS&#8221; </em>into the text field.</li>
<li>Finish.</li>
</ul>
</li>
<li>A diff of <em>ORIG/default-server.conf</em> with the one YaST created shows that YaST removed the <em>mod_userdir</em> section, changed indents, and added ServerName and ServerAdmin.  Thus I chose the original distribution <em>.conf </em>as my starting point:
<ul>
<li><code>mv default-server.conf{,.YAST}</code></li>
<li><code>cp ORIG/default-server.conf <strong>.</strong><br />
</code></li>
<li><code>ci -l default-server.conf</code></li>
<li>Edit with a text editor and copy the ServerName and ServerAdmin directives from the YaST version into <em>default-server.conf.</em></li>
<li><code>ci -l default-server.conf</code></li>
</ul>
</li>
<li>Restart YaST/ Network Services/ HTTP Server:
<ul>
<li>Select the Server Modules tab and verify that the <em>dav_svn </em>module appears.</li>
<li>Exit or Abort.</li>
<li><strong>Note:</strong> from this point forward, if YaST/HTTP Server is re-run and Finish is clicked, <em>default-server.con</em>f and <em>/etc/sysconfig/apache2 </em>will be overwritten.  Capture a snapshot before running or retrieve original from RCS archive afterward.</li>
</ul>
</li>
<li>Check the syntax of all configuration files and reload <em>httpd</em>:<br />
<code>rcapache2 restart-hup</code></li>
<li>Browse <em>http://localhost/server-info</em> and <em>server-status. </em>Verify all desired modules are present and running.</li>
<li>Browse <em>//localhost/manual</em> and<em> localhost/svn-manual</em> to see documentation.</li>
</ol>
<p>The content-independent phase of installation is complete.</p>
<h4>Part II: Serving Local Site Content</h4>
<p>To prepare for Part 2, load all content files that are outside of the server document root (e.g. Subversion repositories, WebDAV directories, and user <em>public_html </em>areas). I keep my Subversion repositories under <em>/home/wwwrun/svn</em>, giving them the same owner and group as the <em>httpd </em>process.</p>
<ol>
<li>Verify that browsing a <em>http://localhost/~&lt;username&gt;</em> directory works.</li>
<li>Subversion repository configuration goes in the <em>/etc/apache2/conf.d/subversion.conf</em> file.   I piggybacked the WebDAV configuration into this file rather than creating a separate file: <a href="http://www.sheepdogit.com/wp-content/uploads/subversion_conf.txt">subversion.conf</a>. Also, I add Basic Auth to ViewVC in <em>subversion.viewvc.conf</em> (see earlier blog entry for an explanation).</li>
<li>Use <em>htpasswd2</em> to create the basic authentication password file.</li>
<li>Create a <em>/var/lock/apache2</em> directory (user <em>wwwrun,</em> group<em> www</em>).</li>
<li><code>rcapache2 configtest</code></li>
<li><code>rcapache2 restart-hup</code></li>
<li>Browse <em>http://localhost/svn/&lt;reponame&gt;.</em> Username and password are requested and the repository appears.  Run <em>RapidSVN </em>from a Windows machine to verify connectivity.</li>
<li>Edit <em>/srv/viewvc/viewvc.conf</em> to add root or root_parents, default root, and <em>mailto.</em></li>
<li>Browse <em>http://localhost/viewvc</em> , username and password are requested, then the ViewVC page appears.  Click on the &#8220;ViewVC Help&#8221; hyperlink and the documentation appears.</li>
<li>Using <strong><em>Konqueror,</em></strong> browse <em>webdav://localhost/fs</em> and a folder view of the WebDAV folder appears.</li>
<li>See this <a title="WebDAV Web Folders for WindowsXP, FrontPage" href="http://bozziesfw.wordpress.com/2007/01/10/webdav-windows-xp-frontpage/">blog entry</a> for details of connecting to WebDAV via WindowsXP.</li>
</ol>
<p>All of my local Subversion, WebDAV, and web page content is now available via Apache.</p>
<h4>Part III: Virtual Hosts</h4>
<p>Finally I&#8217;ll add virtual hosts for my various development, prototype, and staging areas.  The YaST HTTP Server GUI offers a screen to do this, but I chose to start with the as-delivered file just as with <em>default-server.conf.</em></p>
<ol>
<li>Create a<em> </em>new<em> conf</em> file in <em>/etc/apache2/vhosts.d </em>(e.g.<em> LLvhost.conf</em> in my case).  I copied the <em>vhost.template</em> as the starting point.</li>
<li>I defined four virtual servers:
<ul>
<li><em>localhost</em> &#8211; contains only a ServerName statement to serve as the default server.</li>
<li><em>llxxx</em> &#8211; three name-based servers that have document roots in various code development sub-directories.  Each of these gets a separate set of error and access log files.</li>
</ul>
</li>
<li>Uncomment the <em>NameVirtualHost *:80</em> line in <em>/etc/apache2/listen.conf</em>.</li>
<li>Add the three name-based server names to <em>/etc/hosts</em> as synonyms for localhost.</li>
<li><code>rcapache2 configtest</code></li>
<li><code>rcapache2 restart-hup</code></li>
<li>Browse <em>http://llxxx</em> and the virtual host content appears.  Verify that log information appears in the correct file pair in <em>/var/log/apache2.</em></li>
</ol>
<h4>Part IV: Configuration Control and Maintenance</h4>
<p>The Apache server installation is now complete.  But adding source code control is necessary to safely re-run YaST/ Network Services/ HTTP Server Configuration in the future.  Whenever <em>HTTP Server Configuration</em> is  ended with Save or Finish, any of the <em>conf</em> files may be overwritten, obliterating prior manual edits. Source code control allows us to manage and resolve this conflict.</p>
<p>Using the unaltered <em>conf</em> files in the ORIG directories as references, perform a <em>diff</em> of all of the conf files to learn which have been  customized. Any altered <em>conf</em> files that were hand-edited should be placed under configuration control (e.g. CVS, Subversion, RCS).  Consider controlling the YaST-altered files as well.</p>
<p>I maintain five files in RCS: <em>default-server.conf,  mod_userdir.conf, subversion.conf,  subversion.viewvc.conf, LLvhost.conf.</em> After saving any new <em>HTTP Server Configuration </em>session, I use <em>rcsdiff</em> to learn what changes have been made to these files. Review the changes and either restore the last version from RCS or check in a new revision as appropriate.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sheepdogit.com/2007/02/24/configuring-apache-using-yast-opensuse-102/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Apache Configuration for SVN, WebDAV</title>
		<link>http://www.sheepdogit.com/2007/01/24/apache-configuration-for-svn-webdav/</link>
		<comments>http://www.sheepdogit.com/2007/01/24/apache-configuration-for-svn-webdav/#comments</comments>
		<pubDate>Wed, 24 Jan 2007 10:57:39 +0000</pubDate>
		<dc:creator>Bozzie</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[webdav]]></category>

		<guid isPermaLink="false">http://bozziesfw.wordpress.com/2007/01/24/apache-configuration-for-svn-webdav/</guid>
		<description><![CDATA[Here is my current Apache2 config file&#8217;s subsection  for serving Subversion and WebDAV folders: default-server.conf (webdav fragment).
Comments:

I&#8217;m using  AuthType Basic for svn, viewcvs, and filesystem DAV access.  It provides some security, and is also necessary for WindowsXP, which apparently will not connect to a Web Folder with no authentication.
The viewCVS location needs its [...]]]></description>
			<content:encoded><![CDATA[<p>Here is my current Apache2 config file&#8217;s subsection  for serving Subversion and WebDAV folders: <a href="http://www.sheepdogit.com/wp-content/uploads/default-server-webdav_conf.txt">default-server.conf (webdav fragment)</a>.</p>
<p>Comments:</p>
<ul>
<li>I&#8217;m using  <code>AuthType Basic</code> for <em>svn, viewcvs, </em>and <em>filesystem</em> DAV access.  It provides some security, and is also necessary for WindowsXP, which apparently will not connect to a Web Folder with no authentication.</li>
<li>The <em>viewCVS</em> location needs its own authentication, since this tool accesses the SVN repository directly using the <code>file:</code><code> </code>protocol. In doing so, it bypasses the http server <em>/svn</em> location and its associated authentication.</li>
<li>The<code> SVNParentPath</code> is convenient because new SVN repositories can be added without editing the <em>conf</em> file.  The downside is that different users can&#8217;t be restricted to particular repositories or given different access privileges.</li>
<li>ViewCVS has an additional configuration file <code>/srv/viewcvs/viewcvs.conf </code>that must contain the roots of all repositories, plus a few other items.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sheepdogit.com/2007/01/24/apache-configuration-for-svn-webdav/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ZyXEL X-550, Dynamic DNS, RapidSVN</title>
		<link>http://www.sheepdogit.com/2007/01/09/zyxel-x-550-dynamic-dns-rapidsvn/</link>
		<comments>http://www.sheepdogit.com/2007/01/09/zyxel-x-550-dynamic-dns-rapidsvn/#comments</comments>
		<pubDate>Tue, 09 Jan 2007 10:16:14 +0000</pubDate>
		<dc:creator>Bozzie</dc:creator>
				<category><![CDATA[Subversion]]></category>
		<category><![CDATA[SysAdmin]]></category>

		<guid isPermaLink="false">http://bozziesfw.wordpress.com/2007/01/24/zyxel-x-550-dynamic-dns-rapidsvn/</guid>
		<description><![CDATA[Installed my new ZyXEL wireless router, which solved the hanging problems of my two older BEFW11S4&#8217;s.  The improved uptime, plus support for reserved DHCP addresses and dynamic DNS updates has got my Subversion server on line.  Notes regarding the install:

Gave my httpd workstation a reserved IP address in the dhcp server and then [...]]]></description>
			<content:encoded><![CDATA[<p>Installed my new ZyXEL wireless router, which solved the hanging problems of my two older BEFW11S4&#8217;s.  The improved uptime, plus support for reserved DHCP addresses and dynamic DNS updates has got my Subversion server on line.  Notes regarding the install:</p>
<ul>
<li>Gave my <em>httpd</em> workstation a reserved IP address in the <em>dhcp </em>server and then forwarded http requests to that address.</li>
<li>Created dynamic DNS accounts at both <a href="http://www.no-ip.com" title="No-IP.com">no-ip.com</a> and <a href="http://dyndns.org">DynDNS.org</a>.  The ZyXEL was able to update both without a hitch. Settled on no-ip.com.</li>
<li> Both no-ip.com and the ZyXEL router  support port shifting, so I had no-ip shift 80 to 5555 and then had the ZyXEL shift back from 5555 to 80. This worked but with problems: 1) the actual IP address showed up in the browser, and 2) PROPFIND and the other WebDAV methods were rejected by no-ip on port 5555.  So port translation is out for now.</li>
<li>Installed  RapidSVN on WindowsXP after deciding I didn&#8217;t want the TortiseSVN commands showing up in every right-mouse click.  RapidSVN worked perfectly after removing the port shifting described above.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sheepdogit.com/2007/01/09/zyxel-x-550-dynamic-dns-rapidsvn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion &#8211; svn:keywords, Binary Files</title>
		<link>http://www.sheepdogit.com/2007/01/03/subversion-svnkeywords-binary-files/</link>
		<comments>http://www.sheepdogit.com/2007/01/03/subversion-svnkeywords-binary-files/#comments</comments>
		<pubDate>Wed, 03 Jan 2007 10:47:47 +0000</pubDate>
		<dc:creator>Bozzie</dc:creator>
				<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://bozziesfw.wordpress.com/2007/01/03/subversion-svnkeywords-binary-files/</guid>
		<description><![CDATA[In my .subversion/config file, I have the following auto-props rule:
* = svn:keywords=Date Rev Author Id
This turns on keywords for all files, and I don&#8217;t have to make a new entry when I start working with a new type of source file.
However, I realized that with this  rule, .jpg and .gif files will have keywords [...]]]></description>
			<content:encoded><![CDATA[<p>In my <em>.subversion/config</em> file, I have the following auto-props rule:</p>
<p><code>* = svn:keywords=Date Rev Author Id</code></p>
<p>This turns on keywords for all files, and I don&#8217;t have to make a new entry when I start working with a new type of source file.</p>
<p>However, I realized that with this  rule, <em>.jpg</em> and <em>.gif</em> files will have keywords turned on and could trigger a substitution if say $Id$ appeared as part of the binary data.  So I went into my image directories and issued:</p>
<p><code>svn propdel svn:keywords *</code></p>
<p>Given subversion&#8217;s current <em>config</em> capabilities, I&#8217;ll always have to remember to perform a manual step.  Currently, I have to remember to do the <em>propdel</em> for all new binary files.  With the normal suffix rules, I&#8217;d have to add a new rule for each new source file type.  I&#8217;d probably forget the first time and have to do a <em>propadd</em> for a bunch of files.</p>
<p>Subversion should extend the auto-prop rules to allow matching on <em>text</em> and  <em>binary</em> file types; then I could change my * rule to text files only.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sheepdogit.com/2007/01/03/subversion-svnkeywords-binary-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion &#8211; Merging a Branch</title>
		<link>http://www.sheepdogit.com/2006/12/29/subversion-merging-a-branch/</link>
		<comments>http://www.sheepdogit.com/2006/12/29/subversion-merging-a-branch/#comments</comments>
		<pubDate>Fri, 29 Dec 2006 10:52:25 +0000</pubDate>
		<dc:creator>Bozzie</dc:creator>
				<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://bozziesfw.wordpress.com/2006/12/29/subversion-merging-a-branch/</guid>
		<description><![CDATA[First try at merging a branch back into the trunk.  A simple case because no changes were made to the trunk while working with the branch.
In the branch working dir:
svn log -v --stop-on-copy
This reports the list of revisions since the branch was created.  This range of revisions is used as an argument to [...]]]></description>
			<content:encoded><![CDATA[<p>First try at merging a branch back into the trunk.  A simple case because no changes were made to the trunk while working with the branch.</p>
<p>In the branch working dir:<br />
<code>svn log -v --stop-on-copy</code></p>
<p>This reports the list of revisions since the branch was created.  This range of revisions is used as an argument to the merge command.</p>
<p>Create a clean trunk working dir and this issue these commands:<br />
<code>svn merge -r 11:15 http://../branches/css-1024px<br />
svn diff -r 15 http://../branches/css-1024px<br />
</code><code>svn commit</code></p>
<p>Next, switch my development and reference working directories back to pointing at the trunk:<br />
<code>svn switch http://localhost/svn/ll/trunk</code></p>
<p>Lastly, there were a bunch of tmp files in my working directory, so I tried out <code>svn cleanup</code> which removed them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sheepdogit.com/2006/12/29/subversion-merging-a-branch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion &#8211; Creating a Branch</title>
		<link>http://www.sheepdogit.com/2006/12/08/subversion-branch/</link>
		<comments>http://www.sheepdogit.com/2006/12/08/subversion-branch/#comments</comments>
		<pubDate>Sat, 09 Dec 2006 00:43:39 +0000</pubDate>
		<dc:creator>Bozzie</dc:creator>
				<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://bozziesfw.wordpress.com/2006/12/08/subversion-branch/</guid>
		<description><![CDATA[Created a branch in my main repository yesterday after running trials on a sample repository.  Things snapped into focus after reading Key Concepts Behind Branches from the SVN book, which reinforces the point that Subversion is a versioned file system, and a branch conceptually is merely a copy.
svn copy http://localhost/svn/ll/trunk http://localhost/svn/ll/branches/gui
cd wkgDirectory
svn switch  [...]]]></description>
			<content:encoded><![CDATA[<p>Created a branch in my main repository yesterday after running trials on a sample repository.  Things snapped into focus after reading <a href="http://svnbook.red-bean.com/nightly/en/svn.branchmerge.using.html#svn.branchmerge.using.concepts" target="_blank"><em>Key Concepts Behind Branches</em></a> from the SVN book, which reinforces the point that Subversion is a versioned file system, and a branch conceptually is merely a copy.</p>
<p><em>svn copy http://localhost/svn/ll/trunk http://localhost/svn/ll/branches/gui<br />
cd wkgDirectory<br />
svn switch  http://localhost/svn/ll/branches/gui</em></p>
<p>Everything worked as advertised and the copy added only 5% to the repository size, since files aren&#8217;t duplicated until a modification is committed.  The documentation says that individual directories and even files can be switched.  Directories worked but individual files turned into working directories?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sheepdogit.com/2006/12/08/subversion-branch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion Summary &#8211; Conversion Complete</title>
		<link>http://www.sheepdogit.com/2006/11/24/subversion-summary-conversion-complete/</link>
		<comments>http://www.sheepdogit.com/2006/11/24/subversion-summary-conversion-complete/#comments</comments>
		<pubDate>Fri, 24 Nov 2006 11:57:44 +0000</pubDate>
		<dc:creator>Bozzie</dc:creator>
				<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://bozziesfw.wordpress.com/2006/11/24/subversion-summary-conversion-complete/</guid>
		<description><![CDATA[I&#8217;ve used Subversion for all of a week and already like it better than CVS.  It took weeks to get comfortable with CVS commands, and I needed to constantly relearn them.  SVN commands come to mind quite naturally already.
I&#8217;m up and running under Subversion and am declaring the conversion from CVS as complete.
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve used Subversion for all of a week and already like it better than CVS.  It took weeks to get comfortable with CVS commands, and I needed to constantly relearn them.  SVN commands come to mind quite naturally already.</p>
<p>I&#8217;m up and running under Subversion and am declaring the conversion from CVS as complete.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sheepdogit.com/2006/11/24/subversion-summary-conversion-complete/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVN &#8211; Apache Authentication, ViewCVS</title>
		<link>http://www.sheepdogit.com/2006/11/14/svn-apache-authentication-viewcvs/</link>
		<comments>http://www.sheepdogit.com/2006/11/14/svn-apache-authentication-viewcvs/#comments</comments>
		<pubDate>Wed, 15 Nov 2006 06:52:56 +0000</pubDate>
		<dc:creator>Bozzie</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://bozziesfw.wordpress.com/2006/11/14/svn-apache-authentication-viewcvs/</guid>
		<description><![CDATA[Adding Basic Authentication
As detailed on 14 Nov, the lack of httpd authentication prevents svn updates from getting an author assigned.  So now I&#8217;m installing authentication per the Subversion instructions:

htpasswd2 -cm /etc/apache2/basicHTTPpasswd bozzie
Cut &#38; pasted the Auth{Type,Name,User} directives from the instructions into the &#60;Location&#62; /svn section of my default-server.conf file.  Cut &#38; pasted the [...]]]></description>
			<content:encoded><![CDATA[<h3>Adding Basic Authentication</h3>
<p>As detailed on 14 Nov, the lack of <em>httpd</em> authentication prevents <em>svn </em>updates from getting an author assigned.  So now I&#8217;m installing authentication per the Subversion instructions:</p>
<ul>
<li><code>htpasswd2 -cm /etc/apache2/basicHTTPpasswd bozzie</code></li>
<li>Cut &amp; pasted the Auth{Type,Name,User} directives from the instructions into the <code>&lt;Location&gt; /svn</code> section of my <code>default-server.conf</code> file.  Cut &amp; pasted the <code>Require valid-user</code> only for  write actions, also from the instructions.</li>
</ul>
<p>Re-created the repository and imported.  The import challenged for a password and the newly checked-in revision finally has an author.</p>
<p>SVN is ready for use, I think.</p>
<h3>ViewCVS (ViewVC)</h3>
<p>SuSE installs this package in <code>/srv/viewcvs</code>.  Finally found some installation instructions by downloading the current version from the Tigris web site and ad-libbing from the viewVC instructions.</p>
<p>Summary of mods to default-server.conf:</p>
<ul>
<li><code>Alias /viewcvs-docroot /srv/viewcvs/templates/docroot</code></li>
<li><code>ScriptAlias /viewcvs /srv/viewcvs/www/cgi/viewcvs.cgi</code></li>
<li>Plus <code>viewcvs.conf</code> must be edited.</li>
</ul>
<p>ViewCVS presents a serviceable graphic interface to SVN, which I imagine is even better in the current viewVC version.  There is also a graphing interface of some sort that I haven&#8217;t looked into yet.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sheepdogit.com/2006/11/14/svn-apache-authentication-viewcvs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CVS to SVN, day 2</title>
		<link>http://www.sheepdogit.com/2006/11/14/cvs-to-svn-day-2/</link>
		<comments>http://www.sheepdogit.com/2006/11/14/cvs-to-svn-day-2/#comments</comments>
		<pubDate>Wed, 15 Nov 2006 01:56:57 +0000</pubDate>
		<dc:creator>Bozzie</dc:creator>
				<category><![CDATA[Subversion]]></category>
		<category><![CDATA[webdav]]></category>

		<guid isPermaLink="false">http://bozziesfw.wordpress.com/2006/11/14/cvs-to-svn-day-2/</guid>
		<description><![CDATA[Trouble with $Id$ and related keyword properties solved after finding a &#8220;How to get keywords to work&#8221; search result and learing that while double-quotes are required when using svn propset, they must not be used in the config file.
Next, the output of svn diff is a non-standard format, apparently used for creating patch files.  [...]]]></description>
			<content:encoded><![CDATA[<p>Trouble with $Id$ and related keyword properties solved after finding a &#8220;How to get keywords to work&#8221; search result and learing that while double-quotes are required when using svn propset, they must <em>not</em> be used in the config file.</p>
<p>Next, the output of <em>svn diff</em> is a non-standard format, apparently used for creating patch files.  I specified /usr/bin/diff via the .subversion/config <em>diff-cmd</em> option.  No change!  Finally discovered that svn diff passes a &#8220;-u&#8221; argument to <em>diff,</em> resulting in a non-default report format.  Wrote a Perl wrapper to substitute the <em>&#8211;normal </em>option and call this wrapper via my .subversion config entry.  Finally, the svn diff output now looks like a normal diff command.</p>
<p>Next, the SVN log says &#8220;(no author)&#8221; for files imported using Apache.  I finally found the answer in the svn FAQ:</p>
<blockquote><p>&#8220;If you allow anonymous write access to the repository via Apache, the Apache server never challenges the SVN client for a username, and instead permits the write operation without authentication.  Since Subversion has no idea who did the operation, this results in a log like this (no author).&#8221;</p></blockquote>
<p>So now I will add authentication.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sheepdogit.com/2006/11/14/cvs-to-svn-day-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
