<?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>Drop By! &#187; subversion</title>
	<atom:link href="http://www.rekk.de/bloggy/category/subversion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rekk.de/bloggy</link>
	<description>Dropping Brain Crumbs ...</description>
	<lastBuildDate>Wed, 09 Jun 2010 16:59:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Bash Script &#8211; Add &#124; Include only certain Files to Subversion Repository</title>
		<link>http://www.rekk.de/bloggy/2009/bash-script-add-include-only-certain-files-to-subversion-repository/</link>
		<comments>http://www.rekk.de/bloggy/2009/bash-script-add-include-only-certain-files-to-subversion-repository/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 10:43:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[bash]]></category>
		<category><![CDATA[build management]]></category>
		<category><![CDATA[ivy]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://www.rekk.de/bloggy/?p=122</guid>
		<description><![CDATA[Recently I had to face a limitation of subversion &#8211; you can set files and patterns for ignoring files (using svn:ignore) but you can not specify certain files or patterns for files to be included. In my situation, I wanted to build an Ivy repository and put only the ivy files under the version control [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I had to face a limitation of subversion &#8211; you can set files and patterns for ignoring files (using svn:ignore) but you can not specify certain files or patterns for files to be included. In my situation, I wanted to build an <a href="http://ant.apache.org/ivy/">Ivy</a> repository and put only the ivy files under the version control cause all other artifacts could be rebuild using SCM.</p>
<p>So I came up with a simple bash script, which is run just before commit and is actually called from an ant script in a build environment:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># adds only certain files to repository, adds</span>
<span style="color: #666666; font-style: italic;"># all intermediate directories on their paths,</span>
<span style="color: #666666; font-style: italic;"># it also works with empty space in path (except newline)</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># @todo Add some bells and whistles!</span>
&nbsp;
<span style="color: #007800;">REPO_NAME</span>=<span style="color: #000000; font-weight: bold;">&lt;</span>some_repo<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Running $0 on&quot;</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">date</span><span style="color: #000000; font-weight: bold;">`</span> <span style="color: #ff0000;">&quot;with <span style="color: #007800;">$REPO_NAME</span>&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># this file will help to limit the search, if it's modified on commit</span>
<span style="color: #666666; font-style: italic;"># for example the log file of last commit, the idea here is to run </span>
<span style="color: #666666; font-style: italic;"># this script always before commit</span>
<span style="color: #007800;">REF_TIME_FILE</span>=<span style="color: #000000; font-weight: bold;">&lt;</span>some_file<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #007800;">REP_PATH</span>=<span style="color: #000000; font-weight: bold;">/</span>some<span style="color: #000000; font-weight: bold;">/</span>path<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>your<span style="color: #000000; font-weight: bold;">/</span>copies<span style="color: #000000; font-weight: bold;">/</span>root
&nbsp;
<span style="color: #007800;">FILE_PATTERN</span>=<span style="color: #ff0000;">'ivy.xml*'</span>
<span style="color: #007800;">DIR</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">pwd</span><span style="color: #000000; font-weight: bold;">`</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #007800;">$REP_PATH</span>
<span style="color: #007800;">IFS_ORIG</span>=<span style="color: #007800;">$IFS</span>
<span style="color: #666666; font-style: italic;"># this allows paths with whitespace, but not with newline</span>
<span style="color: #007800;">IFS</span>=$<span style="color: #ff0000;">'\n'</span>
<span style="color: #666666; font-style: italic;">#IFS=&quot;$(echo)&quot; another way to get newline</span>
<span style="color: #000000; font-weight: bold;">for</span> ivy <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">find</span> .<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #660033;">-newer</span> <span style="color: #007800;">$REF_TIME_FILE</span>  <span style="color: #660033;">-type</span> f  <span style="color: #660033;">-name</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$FILE_PATTERN</span>&quot;</span>  -print<span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #000000; font-weight: bold;">do</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;found fresh file <span style="color: #007800;">$ivy</span>&quot;</span>
	<span style="color: #007800;">p</span>=<span style="color: #007800;">$ivy</span>
	<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$p</span> <span style="color: #000000; font-weight: bold;">!</span>= <span style="color: #ff0000;">&quot;.&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
	<span style="color: #000000; font-weight: bold;">do</span> 
			<span style="color: #007800;">all_paths</span>=<span style="color: #800000;">${all_paths}</span><span style="color: #800000;">${del}</span><span style="color: #800000;">${p}</span>
			<span style="color: #007800;">p</span>=<span style="color: #800000;">${p%/*}</span>	
			<span style="color: #007800;">del</span>=:
	<span style="color: #000000; font-weight: bold;">done</span>
<span style="color: #000000; font-weight: bold;">done</span>
&nbsp;
<span style="color: #007800;">IFS</span>=<span style="color: #007800;">$IFS_ORIG</span>
<span style="color: #666666; font-style: italic;">#echo $all_paths | tr ':' '\n' | sort | uniq |  tr '\n' '\0' | xargs -0 -i echo {}</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$all_paths</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">tr</span> <span style="color: #ff0000;">':'</span> <span style="color: #ff0000;">'\n'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sort</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">uniq</span> <span style="color: #000000; font-weight: bold;">|</span>  <span style="color: #c20cb9; font-weight: bold;">tr</span> <span style="color: #ff0000;">'\n'</span> <span style="color: #ff0000;">'\0'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">xargs</span> <span style="color: #660033;">-0</span>  <span style="color: #c20cb9; font-weight: bold;">svn</span> add <span style="color: #660033;">--non-recursive</span>  <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;&amp;</span><span style="color: #000000;">1</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">&quot;^A&quot;</span>
&nbsp;
&nbsp;
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #007800;">$DIR</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Finish $0 on&quot;</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">date</span><span style="color: #000000; font-weight: bold;">`</span> <span style="color: #ff0000;">&quot;with <span style="color: #007800;">$REPO_NAME</span>&quot;</span></pre></div></div>

<p>It&#8217;s not a big deal but might help you to spare some time. There might be better ways to do it and I wonder if same can be done using &#8220;plain ant&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rekk.de/bloggy/2009/bash-script-add-include-only-certain-files-to-subversion-repository/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remove &#124; Delete &#124; Reset Subversion Client cached Authentication Credentials &#8211; Password and User</title>
		<link>http://www.rekk.de/bloggy/2008/remove-delete-reset-subversion-client-cached-authentication-credentials-password-and-user/</link>
		<comments>http://www.rekk.de/bloggy/2008/remove-delete-reset-subversion-client-cached-authentication-credentials-password-and-user/#comments</comments>
		<pubDate>Tue, 20 May 2008 20:00:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://www.rekk.de/bloggy/?p=52</guid>
		<description><![CDATA[Subversion clients store authentication data in ./subversion/auth for each realm. To remove cached data go to &#8220;.subversion/auth/svn.simple&#8221; folder and delete the particular file. There will be key (K)-value (V) pairs. &#8220;username&#8221; and &#8220;svn:realmstring&#8221; together can identify the user. So use for example: grep servername ./* to find the right file. Disable caching by opening &#8220;config&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Subversion clients store authentication data in ./subversion/auth  for each realm.</p>
<p>To remove cached data go to &#8220;.subversion/auth/svn.simple&#8221; folder and delete the particular file.<br />
There will be key (K)-value (V) pairs. &#8220;username&#8221; and &#8220;svn:realmstring&#8221; together can identify the user.<br />
So use for example:</p>
<p><code>grep servername ./*</code></p>
<p>to find the right file.</p>
<p>Disable caching by opening &#8220;config&#8221; file in &#8220;.subversion&#8221; folder and  setting the values of &#8220;store-passwords&#8221; and &#8220;store-auth-creds&#8221; to &#8220;no&#8221; or use &#8211;no-auth-cache as command line argument.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rekk.de/bloggy/2008/remove-delete-reset-subversion-client-cached-authentication-credentials-password-and-user/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Versioning Symlinks with Subversion on Linux</title>
		<link>http://www.rekk.de/bloggy/2008/versioning-symlinks-with-subversion-on-linux/</link>
		<comments>http://www.rekk.de/bloggy/2008/versioning-symlinks-with-subversion-on-linux/#comments</comments>
		<pubDate>Tue, 13 May 2008 16:12:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.rekk.de/bloggy/?p=50</guid>
		<description><![CDATA[Since Version 1.1 subversion can deal with symlinks (see Does Subversion support symlinks?). There are only a few remarks in the manual Versioned Properties &#8211; svn:special and &#8216;svn add&#8217; command. Actually all handling of the symbolic link is up to the client. Cause in creation of symlinks the used paths do matter and subversion stores [...]]]></description>
			<content:encoded><![CDATA[<p>Since Version 1.1 subversion can deal with symlinks (see <a href="http://subversion.tigris.org/faq.html#symlinks">Does Subversion support symlinks?</a>). There are only a few remarks in the manual <a href="http://svnbook.red-bean.com/en/1.4/svn-book.html#svn.ref.properties.versioned-props">Versioned Properties &#8211; svn:special</a> and <a href="http://svnbook.red-bean.com/en/1.4/svn-book.html#svn.ref.svn.c.add">&#8216;svn add&#8217; command</a>.</p>
<p>Actually all handling of the symbolic link is up to the client. Cause in creation of symlinks the used paths do matter and subversion stores the link target in simple text file with the appropriate relative or absolute path you should choose the way you create your symlinks with care.</p>
<p>Example &#8211; Creating a symlink in your working copy:</p>
<p><pre><code>$ mkdir A
$ ln -s A link
$ svn add --force .
A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A
A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; link
$ svn commit -m &quot;link there&quot;</code></pre></p>
<p>the contents of the link file in svn:<br />
<code>link A</code></p>
<p>Example &#8211; change symlink target<br />
<pre><code>$ svn del --force link
$ svn commit -m &quot;no link&quot;
$ mkdir B
$ ln -s B link
$ svn add --force .
$ svn commit -m &quot;link changed to B&quot;</code></pre></p>
<p>the contents of the link file in svn:<br />
<code>link B</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rekk.de/bloggy/2008/versioning-symlinks-with-subversion-on-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Subversion exclude files by svn:ignore and &#8216;svn add *&#8217;  pitfall</title>
		<link>http://www.rekk.de/bloggy/2008/subversion-exclude-files-by-svnignore-and-svn-add-pitfall/</link>
		<comments>http://www.rekk.de/bloggy/2008/subversion-exclude-files-by-svnignore-and-svn-add-pitfall/#comments</comments>
		<pubDate>Tue, 13 May 2008 14:57:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.rekk.de/bloggy/?p=49</guid>
		<description><![CDATA[To exclude certain files and directories from subversion&#8217;s version control you can set the &#8216;svn:ignore&#8217; property as described in Ignoring Unversioned Items. That works fine but nevertheless you might run into problems if you are using svn add * or similiar on linux systems. This is due to the shell expansion of wildcards. The above [...]]]></description>
			<content:encoded><![CDATA[<p>To exclude certain files and directories from subversion&#8217;s version control you can set the &#8216;svn:ignore&#8217; property as described in <a href="http://svnbook.red-bean.com/en/1.4/svn.advanced.props.special.ignore.html">Ignoring Unversioned Items</a>.<br />
That works fine but nevertheless you might run into problems if you are using<br />
<code>svn add *</code><br />
or similiar on <strong>linux </strong> systems. This is due to the shell expansion of wildcards. The above command is expanded to explicit files names <code>svn add filename</code> and seems to have the same effect as <code>svn add --no-ignore filename</code>.<br />
<strong>Tip: Use <code>svn add --force .</code> instead!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rekk.de/bloggy/2008/subversion-exclude-files-by-svnignore-and-svn-add-pitfall/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>KDE&#8217;s integrated Subversion Client kdesvn</title>
		<link>http://www.rekk.de/bloggy/2008/kdes-build-in-subversion-client-kdesvn/</link>
		<comments>http://www.rekk.de/bloggy/2008/kdes-build-in-subversion-client-kdesvn/#comments</comments>
		<pubDate>Fri, 18 Jan 2008 20:00:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.rekk.de/bloggy/?p=35</guid>
		<description><![CDATA[Command line utilities are great for one-pointed tasks or for batch processing, but sometimes you just want to browse around and quickly play with the options. For that purpose I prefer to use GUI-tools. In ubuntu you can use the svn-workbench as an GUI-Client written in python to subversion repositories. I am using KDE, so [...]]]></description>
			<content:encoded><![CDATA[<p>Command line utilities are great for one-pointed tasks or for batch processing, but sometimes you just want to browse around and quickly play with the options. For that purpose I prefer to use GUI-tools.</p>
<p>In ubuntu you can use the svn-workbench as an GUI-Client written in python to subversion repositories. I am using KDE, so installing<a href="http://kdesvn.alwins-world.de/"> kdesvn </a> (also see <a href="http://www.kde-apps.org/content/show.php?content=26589">kde-apps.org</a>) gives me a repository access and management functions right in my Konqueror file browser by using addresses like: <code> ksvn+https://rcs.somehost.de/rep1</code>. In this way you can work in repositories without explicit checkout. The only draw back appears in case you want to copy directories. Due to Konquerors way of copying/moving with KIO you will be asked for log messages for each single subdir or file recursively. To avoid being asked for log messages every time start kdesvn, go to Main Menu Settings &#8211; Configure Kdesvn &#8211; KIO/Commandline &#8211; check KIO operations use standard logmessage .</p>
<p>Kdesvn adds extra functions in Konqueror&#8217;s context menu : RightClick &#8211; Actions &#8211; Subversion . Kate and QuantaPlus Integration is also provided by kdesvn.</p>
<p>BTW: Subclipse is a good svn GUI client implementation as well, but requires an Eclipse installation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rekk.de/bloggy/2008/kdes-build-in-subversion-client-kdesvn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

