<?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>Sébastien Wains &#187; Versioning</title>
	<atom:link href="http://www.wains.be/index.php/category/versioning/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.wains.be</link>
	<description>Linux, Open Source, VoIP and other stuff</description>
	<lastBuildDate>Tue, 07 Sep 2010 21:25:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Tool of the day : etckeeper</title>
		<link>http://www.wains.be/index.php/2010/02/09/tool-of-the-day-etckeeper/</link>
		<comments>http://www.wains.be/index.php/2010/02/09/tool-of-the-day-etckeeper/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 21:21:19 +0000</pubDate>
		<dc:creator>Sébastien Wains</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Versioning]]></category>

		<guid isPermaLink="false">http://www.wains.be/?p=982</guid>
		<description><![CDATA[http://joey.kitenet.net/code/etckeeper/ etckeeper is a collection of tools to let /etc be stored in a git, mercurial, darcs, or bzr repository. It hooks into apt (and other package managers including yum and pacman-g2) to automatically commit changes made to /etc during package upgrades. It tracks file metadata that revison control systems do not normally support, but [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://joey.kitenet.net/code/etckeeper/">http://joey.kitenet.net/code/etckeeper/</a></p>
<p><code>etckeeper is a collection of tools to let /etc be stored in a git, mercurial, darcs, or bzr repository. It hooks into apt (and other package managers including yum and pacman-g2) to automatically commit changes made to /etc during package upgrades. It tracks file metadata that revison control systems do not normally support, but that is important for /etc, such as the permissions of /etc/shadow. It's quite modular and configurable, while also being simple to use if you understand the basics of working with revision control.</code></p>
<p>Under Debian Lenny :</p>
<p>Install :</p>
<p><code>apt-get install etckeeper</code></p>
<p>Set ut the git repository (git is the default repository system, see /etc/etckeeper/etckeeper.conf if you want to change that) :</p>
<p><code>cd /etc<br />
etckeeper init<br />
etckeeper commit "initial import"</code></p>
<p>We&#8217;re done with the initial setup..</p>
<p>If you install a package through apt-get or aptitude, changes will be automatically commited.</p>
<p>If you made changes to files under /etc, commit them by doing :</p>
<p><code>git commit -a</code></p>
<p>Also, you can install trac-git, which provides a user friendly web interface to browse your git repository.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wains.be/index.php/2010/02/09/tool-of-the-day-etckeeper/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installing TRAC with Apache2 and mod-python on Debian Lenny</title>
		<link>http://www.wains.be/index.php/2010/01/20/installing-trac-with-apache2-and-mod-python-on-debian-lenny/</link>
		<comments>http://www.wains.be/index.php/2010/01/20/installing-trac-with-apache2-and-mod-python-on-debian-lenny/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 15:59:49 +0000</pubDate>
		<dc:creator>Sébastien Wains</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Debian/Ubuntu]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[Versioning]]></category>

		<guid isPermaLink="false">http://www.wains.be/?p=865</guid>
		<description><![CDATA[This is based on a fresh install. Install the necessary stuff : # apt-get install apache2 subversion trac # apt-get install libapache2-svn libapache2-svn will enable dav and dav_fs modules. More stuff : # apt-get install libapache2-mod-python Create your directories for TRAC environments (/home/trac/), projects source files (/home/dev/) and SVN repositories (/home/svn/) : # mkdir /home/{trac,dev,svn} [...]]]></description>
			<content:encoded><![CDATA[<p>This is based on a fresh install.</p>
<p>Install the necessary stuff :</p>
<p><code># apt-get install apache2 subversion trac<br />
# apt-get install libapache2-svn</code></p>
<p>libapache2-svn will enable dav and dav_fs modules.</p>
<p>More stuff :</p>
<p><code># apt-get install libapache2-mod-python</code></p>
<p>Create your directories for TRAC environments (/home/trac/), projects source files (/home/dev/) and SVN repositories (/home/svn/) :</p>
<p><code># mkdir /home/{trac,dev,svn}</code></p>
<p>Create your first project :</p>
<p><code># mkdir /home/dev/project1<br />
# echo "&lt;?php phpinfo() ?&gt;" &gt; /home/dev/project1/index.php</code></p>
<p>Create the SVN repository for the project :</p>
<p><code># svnadmin create /home/svn/project1</code></p>
<p>Import the project into the SVN repository :</p>
<pre><code># svn import -m "Initial import" /home/dev/project1/ file:///home/svn/project1/
Adding         /home/dev/project1/index.php

Committed revision 1.</code></pre>
<p>Move your sources to a safe place, while we checkout the project :</p>
<p><code># mv /home/dev/project1 /home/dev/project1-orig</code></p>
<p>Checkout the project :</p>
<p><code># svn checkout file:///home/svn/project1 /home/dev/project1<br />
A    /home/dev/project1/index.php<br />
Checked out revision 1.</code></p>
<p>Make sure the project is now under revision, you should see a &#8220;.svn&#8221; directory :</p>
<p><code># ls -lah /home/dev/project1<br />
total 16K<br />
drwxr-xr-x 3 root root 4.0K Jan 20 12:42 .<br />
drwxr-xr-x 4 root root 4.0K Jan 20 12:42 ..<br />
drwxr-xr-x 6 root root 4.0K Jan 20 12:42 .svn<br />
-rw-r--r-- 1 root root   19 Jan 20 12:42 index.php</code></p>
<p>It&#8217;s now safe to delete the copy not under revision :</p>
<p><code># rm -fr /home/dev/project1-orig/</code></p>
<p>Set up TRAC for your first project, in bold what you need to specify :</p>
<pre><code># trac-admin /home/trac/project1 initenv
Creating a new Trac environment at /home/trac/project1

Trac will first ask a few questions about your environment
in order to initialize and prepare the project database.

 Please enter the name of your project.
 This name will be used in page titles and descriptions.

Project Name [My Project]&gt; <strong>Project1</strong>

 Please specify the connection string for the database to use.
 By default, a local SQLite database is created in the environment
 directory. It is also possible to use an already existing
 PostgreSQL database (check the Trac documentation for the exact
 connection string syntax).

Database connection string [sqlite:db/trac.db]&gt; <strong>PRESS ENTER</strong>

 Please specify the type of version control system,
 By default, it will be svn.

 If you don't want to use Trac with version control integration,
 choose the default here and don't specify a repository directory.
 in the next question.

Repository type [svn]&gt; <strong>svn</strong>

 Please specify the absolute path to the version control
 repository, or leave it blank to use Trac without a repository.
 You can also set the repository location later.

Path to repository [/path/to/repos]&gt; <strong>/home/svn/project1</strong>

Creating and Initializing Project
 Installing default wiki pages
 TracSyntaxColoring imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracSyntaxColoring
 TracChangeset imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracChangeset
 TracWiki imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracWiki
 WikiHtml imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/WikiHtml
 TracRevisionLog imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracRevisionLog
 TracFastCgi imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracFastCgi
 TracTicketsCustomFields imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracTicketsCustomFields
 SandBox imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/SandBox
 WikiMacros imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/WikiMacros
 TracUpgrade imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracUpgrade
 TracBackup imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracBackup
 TracAccessibility imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracAccessibility
 RecentChanges imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/RecentChanges
 WikiDeletePage imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/WikiDeletePage
 TracNavigation imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracNavigation
 TracImport imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracImport
 TracModPython imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracModPython
 TracEnvironment imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracEnvironment
 TracBrowser imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracBrowser
 WikiFormatting imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/WikiFormatting
 TracPlugins imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracPlugins
 WikiPageNames imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/WikiPageNames
 TracNotification imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracNotification
 TracInstall imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracInstall
 TracIni imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracIni
 TracAdmin imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracAdmin
 TracRss imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracRss
 TracLogging imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracLogging
 TracGuide imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracGuide
 WikiStart imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/WikiStart
 TracQuery imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracQuery
 WikiNewPage imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/WikiNewPage
 CamelCase imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/CamelCase
 TracRoadmap imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracRoadmap
 TracLinks imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracLinks
 TracStandalone imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracStandalone
 TracInterfaceCustomization imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracInterfaceCustomization
 TracUnicode imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracUnicode
 InterMapTxt imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/InterMapTxt
 TracPermissions imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracPermissions
 TitleIndex imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TitleIndex
 WikiProcessors imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/WikiProcessors
 InterWiki imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/InterWiki
 TracCgi imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracCgi
 TracTimeline imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracTimeline
 InterTrac imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/InterTrac
 PageTemplates imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/PageTemplates
 TracTickets imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracTickets
 TracSupport imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracSupport
 TracWorkflow imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracWorkflow
 TracSearch imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracSearch
 TracFineGrainedPermissions imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracFineGrainedPermissions
 WikiRestructuredTextLinks imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/WikiRestructuredTextLinks
 TracReports imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/TracReports
 WikiRestructuredText imported from /usr/lib/python2.5/site-packages/trac/wiki/default-pages/WikiRestructuredText
 Indexing repository
 [1]
---------------------------------------------------------------------
Project environment for 'Project1' created.

You may now configure the environment by editing the file:

  /home/trac/project1/conf/trac.ini

If you'd like to take this new project environment for a test drive,
try running the Trac standalone web server `tracd`:

  tracd --port 8000 /home/trac/project1

Then point your browser to http://localhost:8000/project1.
There you can also browse the documentation for your installed
version of Trac, including information on further setup (such as
deploying Trac to a real web server).

The latest documentation can also always be found on the project
website:

http://trac.edgewall.org/

Congratulations</code></pre>
<p>The configuration is stored under /home/trac/project1/conf/trac.ini.</p>
<p>Create the password files for web authentication :</p>
<p><code># htpasswd -c /etc/apache2/passwd-trac yourusername</code></p>
<p>Set up Apache :</p>
<p><code># cp /etc/apache2/sites-available/default /etc/apache2/sites-available/projects</code></p>
<pre><code># vim /etc/apache2/sites-available/projects
&lt;VirtualHost *:80&gt;
    DocumentRoot /var/www/

    &lt;Directory /var/www/&gt;
        Order allow,deny
        Allow from all
    &lt;/Directory&gt;

    ### TRAC Root : http://server/trac or http://server/trac/

        # Rewrite ./trac to ./trac/
        RewriteEngine on
        RewriteRule ^(.*)\/trac$ $1/ [NC]

    &lt;Location /trac/&gt;
        SetHandler mod_python
        PythonHandler trac.web.modpython_frontend
        PythonInterpreter main
        PythonOption TracEnvParentDir /home/trac
        PythonOption TracUriRoot /trac/
        SetEnv PYTHON_EGG_CACHE /tmp
    &lt;/Location&gt;

    ### TRAC Login : http://server/trac/*/login
    &lt;LocationMatch ^(/trac/[^/]+)?/login&gt;
        AuthType Basic
        AuthName "TRAC Login"
        AuthUserFile /etc/apache2/passwd-trac
        Require valid-user
    &lt;/LocationMatch&gt;

    ### SVN repository : http://server/svn
    &lt;Location /svn&gt;
        DAV svn
        SVNParentPath /home/svn
        SVNListParentPath on

        AuthType Basic
        AuthName "SVN Repository"
        AuthUserFile /etc/apache2/passwd-trac
        Require valid-user
    &lt;/Location&gt;
&lt;/VirtualHost&gt;</code></pre>
<p>Enable rewrite module :</p>
<p><code># a2enmod rewrite<br />
Enabling module rewrite.<br />
Run '/etc/init.d/apache2 restart' to activate new configuration!</code></p>
<p>Disable the default website :</p>
<p><code># a2dissite default<br />
Site default disabled.<br />
Run '/etc/init.d/apache2 reload' to activate new configuration!</code></p>
<p>Enable the newly configured website :</p>
<p><code># a2ensite projects<br />
Enabling site projects.<br />
Run '/etc/init.d/apache2 reload' to activate new configuration!</code></p>
<p>Restart Apache :</p>
<p><code># /etc/init.d/apache2 restart</code></p>
<p>Make sure Apache can read and write TRAC configuration files.<br />
This is a basic working example but you may want to do something more elaborate involving Set-GID or POSIX ACL.</p>
<p><code># chown -R www-data. /home/trac</code></p>
<p>Now go to http://server/trac, it should rewrite the URL to http://server/trac/ and display a list of available projects.</p>
<p><strong>WALLA <img src='http://www.wains.be/wp-content/plugins/tango/face-wink.png' alt=';)' class='wp-smiley' /> </strong></p>
<p>Please let me know if it works for you. Thanks.</p>
<p>Partially based on <a href="http://www.willamaze.eu/?p=732">http://www.willamaze.eu/?p=732</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.wains.be/index.php/2010/01/20/installing-trac-with-apache2-and-mod-python-on-debian-lenny/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Changing SVN repository URL</title>
		<link>http://www.wains.be/index.php/2008/01/14/changing-svn-repository-url/</link>
		<comments>http://www.wains.be/index.php/2008/01/14/changing-svn-repository-url/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 11:48:50 +0000</pubDate>
		<dc:creator>Sébastien Wains</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Versioning]]></category>

		<guid isPermaLink="false">http://www.wains.be/index.php/2008/01/14/changing-svn-repository-url/</guid>
		<description><![CDATA[Not something I do on a daily basis, so here it goes : $ svn switch --relocate file:///home/old/path/to/svn/ file:///home/new/path/to/svn/ You may also want to update the SVN repository URL in your TRAC environments&#8230; $ vim /path/to/trac-env/conf/trac.ini Update the variable named repository_dir When done you need to resync the environments&#8230; $ trac-admin /path/to/trac-env/ resync]]></description>
			<content:encoded><![CDATA[<p>Not something I do on a daily basis, so here it goes :</p>
<p><code>$ svn switch --relocate file:///home/old/path/to/svn/ file:///home/new/path/to/svn/</code></p>
<p>You may also want to update the SVN repository URL in your TRAC environments&#8230;</p>
<p><code>$ vim /path/to/trac-env/conf/trac.ini</code></p>
<p>Update the variable named <strong>repository_dir</strong></p>
<p>When done you need to resync the environments&#8230;</p>
<p><code>$ trac-admin /path/to/trac-env/ resync</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.wains.be/index.php/2008/01/14/changing-svn-repository-url/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Howto : installing TRAC on Debian Etch</title>
		<link>http://www.wains.be/index.php/2007/10/05/howto-installing-trac-on-debian-etch/</link>
		<comments>http://www.wains.be/index.php/2007/10/05/howto-installing-trac-on-debian-etch/#comments</comments>
		<pubDate>Fri, 05 Oct 2007 11:10:19 +0000</pubDate>
		<dc:creator>Sébastien Wains</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Debian/Ubuntu]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[Versioning]]></category>

		<guid isPermaLink="false">http://www.wains.be/index.php/2007/10/05/howto-installing-trac-on-debian-etch/</guid>
		<description><![CDATA[Howto available here : http://www.wains.be/pub/howto/trac-debian.txt This howto explains the steps from creating the SVN project to publishing it with TRAC. Along with this howto, you can download a script that automates the process of creating the SVN repository and TRAC environment. This script was made according to this howto and works under Debian. YOU SHOULD [...]]]></description>
			<content:encoded><![CDATA[<p>Howto available here : <a href="http://www.wains.be/pub/howto/trac-debian.txt">http://www.wains.be/pub/howto/trac-debian.txt</a></p>
<p>This howto explains the steps from creating the SVN project to publishing it with TRAC.</p>
<p>Along with this howto, you can download a script that automates the process of creating the SVN repository and TRAC environment.<br />
This script was made according to this howto and works under Debian. YOU SHOULD FIRST GO THROUGH THE HOWTO BEFORE USING THIS SCRIPT.</p>
<p><a href="http://www.wains.be/pub/create_svntrac_project">http://www.wains.be/pub/create_svntrac_project</a></p>
<p><strong>Usage : </strong></p>
<p><code># create_svntrac_project.sh project_name (0|1)<br />
project_name = NO space or special char<br />
0 = SVN repository creation<br />
1 = TRAC environment creation, SVN repository must exist and project must ALREADY BE imported</code></p>
<p>I like TRAC because it provides a nice diff viewer (among other things).</p>
<p>I tried ViewCVS from the stable repo but I had several issues (broken images, no color in the diff viewer, etc.)<br />
I noticed in the code it was calling images from incorrect paths, etc.<br />
Maybe I did something wrong, I don&#8217;t know..</p>
<p>Anyway, TRAC is far better !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wains.be/index.php/2007/10/05/howto-installing-trac-on-debian-etch/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Subversion integration to Nautilus</title>
		<link>http://www.wains.be/index.php/2007/08/26/subversion-integration-to-nautilus/</link>
		<comments>http://www.wains.be/index.php/2007/08/26/subversion-integration-to-nautilus/#comments</comments>
		<pubDate>Sun, 26 Aug 2007 19:40:14 +0000</pubDate>
		<dc:creator>Sébastien Wains</dc:creator>
				<category><![CDATA[Gnome]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Versioning]]></category>

		<guid isPermaLink="false">http://www.wains.be/index.php/2007/08/26/subversion-integration-to-nautilus/</guid>
		<description><![CDATA[$ sudo apt-get install nautilus-script-collection-svn $ nautilus-script-manager enable Subversion Restart your computer (or if you are more experienced either restart Gnome (ctrl+alt+backspace) or kill nautilus) Now, there&#8217;s a new submenu when right-clicking on a directory/file Link : http://packages.ubuntu.com/gutsy/devel/nautilus-script-collection-svn]]></description>
			<content:encoded><![CDATA[<p>$ sudo apt-get install nautilus-script-collection-svn<br />
$ nautilus-script-manager enable Subversion</p>
<p>Restart your computer (or if you are more experienced either restart Gnome (ctrl+alt+backspace) or kill nautilus)</p>
<p>Now, there&#8217;s a new submenu when right-clicking on a directory/file</p>
<p>Link : <a href="http://packages.ubuntu.com/gutsy/devel/nautilus-script-collection-svn">http://packages.ubuntu.com/gutsy/devel/nautilus-script-collection-svn</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.wains.be/index.php/2007/08/26/subversion-integration-to-nautilus/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ViewCVS &#8220;ImportError: No module named svn&#8221; (Debian)</title>
		<link>http://www.wains.be/index.php/2007/08/18/viewcvs-importerror-no-module-named-svn-debian/</link>
		<comments>http://www.wains.be/index.php/2007/08/18/viewcvs-importerror-no-module-named-svn-debian/#comments</comments>
		<pubDate>Sat, 18 Aug 2007 01:09:45 +0000</pubDate>
		<dc:creator>Sébastien Wains</dc:creator>
				<category><![CDATA[Debian/Ubuntu]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Versioning]]></category>

		<guid isPermaLink="false">http://www.wains.be/index.php/2007/08/18/viewcvs-importerror-no-module-named-svn-debian/</guid>
		<description><![CDATA[Even if properly configured for using Subversion repositories, you&#8217;d get this error messages from ViewCVS : An Exception Has Occurred Python Traceback Traceback (most recent call last): File "/var/lib/python-support/python2.4/viewcvs.py", line 3235, in main request.run_viewcvs() File "/var/lib/python-support/python2.4/viewcvs.py", line 268, in run_viewcvs import vclib.svn File "/var/lib/python-support/python2.4/vclib/svn/__init__.py", line 27, in ? from svn import fs, repos, core, delta [...]]]></description>
			<content:encoded><![CDATA[<p>Even if properly configured for using Subversion repositories, you&#8217;d get this error messages from ViewCVS :</p>
<pre><code>An Exception Has Occurred
Python Traceback

Traceback (most recent call last):
  File "/var/lib/python-support/python2.4/viewcvs.py", line 3235, in main
    request.run_viewcvs()
  File "/var/lib/python-support/python2.4/viewcvs.py", line 268, in run_viewcvs
    import vclib.svn
  File "/var/lib/python-support/python2.4/vclib/svn/__init__.py", line 27, in ?
    from svn import fs, repos, core, delta
ImportError: No module named svn</code></pre>
<p><strong>The reason of the error is a package missing : python-subversion</strong></p>
<p>The same issue is reported for Ubuntu : <a href="https://bugs.launchpad.net/ubuntu/+source/viewcvs/+bug/74005">https://bugs.launchpad.net/ubuntu/+source/viewcvs/+bug/74005</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.wains.be/index.php/2007/08/18/viewcvs-importerror-no-module-named-svn-debian/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Subversion : automating svn:keywords</title>
		<link>http://www.wains.be/index.php/2007/01/11/subversion-automating-svnkeywords/</link>
		<comments>http://www.wains.be/index.php/2007/01/11/subversion-automating-svnkeywords/#comments</comments>
		<pubDate>Wed, 10 Jan 2007 23:19:53 +0000</pubDate>
		<dc:creator>Sébastien Wains</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Versioning]]></category>

		<guid isPermaLink="false">http://www.wains.be/?p=180</guid>
		<description><![CDATA[We&#8217;ll see here how you can automate the addition of SVN keywords to your newly added or imported file in your Subversion repository. Changes are being made on the client computer, NOT the repository. It means you need to apply the following to every computer accessing the SVN repository. For files already in the repository, [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ll see here how you can automate the addition of SVN keywords to your newly added or imported file in your Subversion repository.</p>
<p><strong>Changes are being made on the client computer, NOT the repository. It means you need to apply the following to every computer accessing the SVN repository.</strong></p>
<p>For files already in the repository, you will need to manually set the keywords this way :<br />
<code>svn propset svn:keywords "Id" file.sh</code></p>
<p>To set scripts as executable :<br />
<code>svn propset svn:executable ON file.sh</code></p>
<p><span id="more-180"></span></p>
<p><strong>1. Enabling auto properties</strong></p>
<p>Edit ~/.subversion/config</p>
<p>Under the miscellany section, set enable-auto-props to yes </p>
<p><code>[miscellany]<br />
enable-auto-props = yes</code></p>
<p>Then, you should find an auto-prop section :</p>
<p><code>[auto-props]<br />
### The format of the entries is:<br />
###   file-name-pattern = propname[=value][;propname[=value]...]<br />
### The file-name-pattern can contain wildcards (such as '*' and<br />
### '?').  All entries which match will be applied to the file.<br />
### Note that auto-props functionality must be enabled, which<br />
### is typically done by setting the 'enable-auto-props' option.<br />
# *.c = svn:eol-style=native<br />
# *.cpp = svn:eol-style=native<br />
# *.h = svn:eol-style=native<br />
# *.dsp = svn:eol-style=CRLF<br />
# *.dsw = svn:eol-style=CRLF<br />
# *.sh = svn:eol-style=native;svn:executable<br />
# *.txt = svn:eol-style=native<br />
# *.png = svn:mime-type=image/png<br />
# *.jpg = svn:mime-type=image/jpeg<br />
# Makefile = svn:eol-style=native</code></p>
<p>If I wanted to have the &#8220;Id&#8221; keyword automatically added to *.sh files, I&#8217;d uncomment the *.sh line and add the keyword values, so it&#8217;d look like this :<br />
<code>*.sh = svn:eol-style=native;svn:executable;svn:keywords=Id</code></p>
<p><strong>2. Editing your files</strong></p>
<p>Just put somewhere in your bash script the &#8220;$Id$&#8221; keyword, add and commit :</p>
<p>$ vi test.sh</p>
<p><code>#!/bin/bash<br />
# SVN : $Id$<br />
echo "This is a test"</code></p>
<p>Add and commit :<br />
$ svn add test.sh<br />
A         test.sh<br />
$ svn commit -m &#8220;Testing auto keywords&#8221;<br />
Sending        test.sh<br />
Transmitting file data .vi<br />
Committed revision 30.</p>
<p>Once commited, the file would look like this :</p>
<p><code>#!/bin/bash<br />
# SVN : $Id: test.sh 30 2007-01-10 23:34:59Z user $<br />
echo "This is a test"</code></p>
<p><strong>3. Verifying the properties of a file : </strong></p>
<p>If you want to check out the properties set on a file, just do :<br />
$ svn proplist test.sh<br />
Properties on &#8216;test.sh&#8217;:<br />
  svn:executable<br />
  svn:keywords<br />
  svn:eol-style</p>
<p>If you want to check out the keywords set on that file :<br />
$ svn proplist test.sh -v<br />
Properties on &#8216;test.sh&#8217;:<br />
  svn:executable : *<br />
  svn:keywords : Id<br />
  svn:eol-style : native</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wains.be/index.php/2007/01/11/subversion-automating-svnkeywords/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Subversion : svnserve over xinetd</title>
		<link>http://www.wains.be/index.php/2006/11/08/subversion-svnserve-over-xinetd/</link>
		<comments>http://www.wains.be/index.php/2006/11/08/subversion-svnserve-over-xinetd/#comments</comments>
		<pubDate>Wed, 08 Nov 2006 16:00:49 +0000</pubDate>
		<dc:creator>Sébastien Wains</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Versioning]]></category>

		<guid isPermaLink="false">http://www.wains.be/?p=149</guid>
		<description><![CDATA[If you want to run svnserve through xinetd (documentation still refers to inetd) : 1. Create file /etc/xinetd.d/svnserve : # default: on # Subversion server service svnserve { socket_type = stream protocol = tcp user = root wait = no disable = no server = /usr/bin/svnserve server_args = -i -r /path/to/svn/projects port = 3690 } [...]]]></description>
			<content:encoded><![CDATA[<p>If you want to run svnserve through xinetd (documentation still refers to inetd) :</p>
<p><span id="more-149"></span></p>
<p>1. Create file /etc/xinetd.d/svnserve :</p>
<p><code># default: on<br />
# Subversion server<br />
service svnserve<br />
{<br />
        socket_type     = stream<br />
        protocol        = tcp<br />
        user            = root<br />
        wait            = no<br />
        disable         = no<br />
        server          = /usr/bin/svnserve<br />
        server_args     = -i -r /path/to/svn/projects<br />
        port            = 3690<br />
}</code></p>
<p>/path/to/svn/projects is the repository you want to share, if you don&#8217;t use -r, you&#8217;d need to specify the full path to the svn repository, which should be avoided.</p>
<p>2. type the following, it will add subversion ports to the list of services.<br />
<code>echo "svnserve        3690/tcp" &gt;&gt; /etc/services<br />
echo "svnserve        3690/udp" &gt;&gt; /etc/services</code></p>
<p>3. Open tcp/3690 in your firewall</p>
<p>4. Restart xinetd</p>
<p>5. try telnet localhost 3690</p>
<p>6. if succesful, try &#8220;svn list svn://localhost/&#8221;</p>
<p>7. Try from a remote location</p>
<p>8. If not working, set up tcp_wrappers</p>
<p><code>svnserve : ALL : allow</code></p>
<p>This would allow anyone to connect to svnserve</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wains.be/index.php/2006/11/08/subversion-svnserve-over-xinetd/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Subversion : svn+ssh:// : No repository found</title>
		<link>http://www.wains.be/index.php/2006/11/08/subversion-svnssh-no-repository-found-2/</link>
		<comments>http://www.wains.be/index.php/2006/11/08/subversion-svnssh-no-repository-found-2/#comments</comments>
		<pubDate>Wed, 08 Nov 2006 15:55:35 +0000</pubDate>
		<dc:creator>Sébastien Wains</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Versioning]]></category>

		<guid isPermaLink="false">http://www.wains.be/?p=148</guid>
		<description><![CDATA[You can use &#8220;svn checkout svn://hostname.tld/project/&#8221; but you can&#8217;t check out your projects using svn+ssh:// ? Let&#8217;s clear things, svn+ssh:// doesn&#8217;t require svnserve to run on the server as a daemon or through (x)inetd to work. svn+ssh:// is only doing some kind of scp connection to the server. That&#8217;s why you need to USE ABSOLUTE [...]]]></description>
			<content:encoded><![CDATA[<p>You can use &#8220;svn checkout svn://hostname.tld/project/&#8221; but you can&#8217;t check out your projects using svn+ssh:// ?</p>
<p>Let&#8217;s clear things, svn+ssh:// doesn&#8217;t require svnserve to run on the server as a daemon or through (x)inetd to work.</p>
<p>svn+ssh:// is only doing some kind of scp connection to the server.<br />
That&#8217;s why you need to USE ABSOLUTE PATH WHEN USING svn+ssh</p>
<p><strong>Usage :</strong></p>
<p><strong>svn only</strong><br />
svn checkout svn://hostname.tld/project/</p>
<p><strong>svn+ssh</strong><br />
svn checkout svn+ssh://hostname.told/full/path/to/project/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wains.be/index.php/2006/11/08/subversion-svnssh-no-repository-found-2/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Introduction to SVN : importing a new project</title>
		<link>http://www.wains.be/index.php/2006/07/15/introduction-to-svn-importing-a-new-project/</link>
		<comments>http://www.wains.be/index.php/2006/07/15/introduction-to-svn-importing-a-new-project/#comments</comments>
		<pubDate>Sat, 15 Jul 2006 14:17:22 +0000</pubDate>
		<dc:creator>Sébastien Wains</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Versioning]]></category>

		<guid isPermaLink="false">http://www.wains.be/?p=103</guid>
		<description><![CDATA[This post is aimed to those (like me) who can easily forget the SVN syntax : Create a new repository : $ svnadmin create --fs-type fsfs /home/user/svn Suppose you have an existing project you wish to import in SVN : $ svn import /path/to/project/ file:///home/user/svn/project -m 'Initial import' Checking out your project : $ svn [...]]]></description>
			<content:encoded><![CDATA[<p>This post is aimed to those (like me) who can easily forget the SVN syntax :</p>
<p><strong>Create a new repository :</strong><br />
<code>$ svnadmin create --fs-type fsfs /home/user/svn</code></p>
<p><strong>Suppose you have an existing project you wish to import in SVN :</strong><br />
<code>$ svn import /path/to/project/ file:///home/user/svn/project -m 'Initial import'</code></p>
<p><strong>Checking out your project :</strong><br />
<code>$ svn checkout file:///home/user/svn/project /home/user/dev/project</code></p>
<p>A version controlled copy of the project is now available under /home/user/dev/project/</p>
<p>You can remove /path/to/project/ as soon as you are sure the version controlled copy is there.</p>
<p>You can start working on your project under /home/user/dev/project and issue the following to commit changes to the SVN repository :<br />
<code>$ svn commit -m 'Your comment here' </code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.wains.be/index.php/2006/07/15/introduction-to-svn-importing-a-new-project/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
