<?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>Vinsol - Leading Ruby on Rails Development and Consulting Firm in India &#187; subversion</title>
	<atom:link href="http://vinsol.com/blog/category/subversion/feed/" rel="self" type="application/rss+xml" />
	<link>http://vinsol.com/blog</link>
	<description></description>
	<lastBuildDate>Mon, 21 May 2012 13:11:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Rails Plugin Annotate Models For Spec And Spec Fixtures</title>
		<link>http://vinsol.com/blog/2008/04/23/rails-plugin-annotate-models-for-spec-and-spec-fixtures/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rails-plugin-annotate-models-for-spec-and-spec-fixtures</link>
		<comments>http://vinsol.com/blog/2008/04/23/rails-plugin-annotate-models-for-spec-and-spec-fixtures/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 11:18:14 +0000</pubDate>
		<dc:creator>Akhil Bansal</dc:creator>
				<category><![CDATA[annotate_models]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rails plugins]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[RubyonRails]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[VCS]]></category>

		<guid isPermaLink="false">http://webonrails.com/2008/04/23/rails-plugin-annotate-models-for-spec-and-spec-fixtures/</guid>
		<description><![CDATA[I have been using &#8220;Annotate Models&#8221; rails plugin written by Dave Thomas since I found it around one and half year ago. It really helps while writing fixtures. But if you use RSpec you might miss schema info at the top of your rspec fixture file as I do. So, today I modify the plugin [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>I have been using &#8220;Annotate Models&#8221; rails plugin written by Dave Thomas since I found it around one and half year ago. It really helps while writing fixtures. But if you use RSpec you might miss schema info at the top of your rspec fixture file as I do. So, today I modify the plugin file so that it prepends schema info to spec file and fixture file. Below are the links of patch file:</p>
<p><a href="http://webonrails.com/wp-content/plugins/wp-downloadMonitor/download.php?id=9" title="Version 0.1 downloaded 42 times" >svn patch to add schema info to spec file and spec fixture file</a><br />
<a href="http://webonrails.com/wp-content/plugins/wp-downloadMonitor/download.php?id=10" title="Version 0.1 downloaded 44 times" >git patch to add schema info to spec file and spec fixture file</a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://vinsol.com/blog/2008/04/23/rails-plugin-annotate-models-for-spec-and-spec-fixtures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Git &#8211; Fast Version Control System</title>
		<link>http://vinsol.com/blog/2008/02/14/git-fast-version-control-system/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=git-fast-version-control-system</link>
		<comments>http://vinsol.com/blog/2008/02/14/git-fast-version-control-system/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 19:11:01 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[VCS]]></category>

		<guid isPermaLink="false">http://webonrails.com/2008/02/15/git-fast-version-control-system/</guid>
		<description><![CDATA[Git is getting popular in Rails community these days, as there were being many changes in rails to support Git.
Git is a open sourse fast version controller system. It was originally designed by Linus Torvalds to handle large projects. It was inspired by Monotone &#038; BitKeeper. It is a distributed version controlling system. It gives [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p><a href="http://git.or.cz/">Git</a> is getting popular in Rails community these days, as there were being many <a href="http://dev.rubyonrails.org/changeset/8772">changes</a> in rails to support Git.<br />
Git is a open sourse fast version controller system. It was originally designed by Linus Torvalds to handle large projects. It was inspired by Monotone &#038; BitKeeper. It is a distributed version controlling system. It gives you ability to commit, traverse into history while being offline. Actually every working copy of Git is a full-fledged repository. It has no central server like <a href="http://subversion.tigris.org/">SVN</a>. One can share his working-copy/repository by using various protocols like ssh, http, ftp etc. One thing I like about Git over SVN is that the size of Git&#8217;s repository, which is smaller compared to SVN.</p>
<p>I gave an introductory presentation in <a href="http://vinsol.com/">VinSol</a>. I am sharing it with you, this is not very explanatory as I focused on speech more. Please share your views.VinSol</p>
<div style="width:425px;text-align:left" id="__ss_354888"><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=git1-1208284093507575-8"/><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=git1-1208284093507575-8" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"><a href="http://www.slideshare.net/?src=embed"><img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"/></a> | <a href="http://www.slideshare.net/bansalakhil/git-fast-version-control-system-354888?src=embed" title="View 'Git- Fast version control system' on SlideShare">View</a> | <a href="http://www.slideshare.net/upload?src=embed">Upload your own</a></div></div>]]></content:encoded>
			<wfw:commentRss>http://vinsol.com/blog/2008/02/14/git-fast-version-control-system/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ruby Script for SVN commit notification with log message, list of updated files and readable colored SVN Diff</title>
		<link>http://vinsol.com/blog/2008/01/14/ruby-script-for-svn-commit-notification-with-log-message-list-of-updated-files-and-readable-colored-svn-diff/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ruby-script-for-svn-commit-notification-with-log-message-list-of-updated-files-and-readable-colored-svn-diff</link>
		<comments>http://vinsol.com/blog/2008/01/14/ruby-script-for-svn-commit-notification-with-log-message-list-of-updated-files-and-readable-colored-svn-diff/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 14:17:16 +0000</pubDate>
		<dc:creator>Akhil Bansal</dc:creator>
				<category><![CDATA[notification]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[RubyonRails]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://webonrails.com/2008/01/14/ruby-script-for-svn-commit-notification-with-log-message-list-of-updated-files-and-readable-colored-svn-diff/</guid>
		<description><![CDATA[Some days ago I wrote a post about &#8220;SVN commit notification&#8221; which uses a perl script for sending commit notification with svn diff by mail. In this mail you can find svn diff from the last committed revision. I used to love this mail, soon I realized that it is a bit ugly and difficult [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Some days ago I wrote a post about &#8220;<a href="http://webonrails.com/2007/07/12/get-svn-commit-notification-right-into-your-inbox-by-using-svn-hook-post-commit/">SVN commit notification</a>&#8221; which uses a perl script for sending commit notification with svn diff by mail. In this mail you can find svn diff from the last committed revision. I used to love this mail, soon I realized that it is a bit ugly and difficult to read. Also there were some important information missing.  Like the name of user committing the code, the log message etc&#8230; </p>
<p>And then I started writing my own ruby script for same purpose but with some addition and modification. <a href="http://webonrails.com/wp-content/plugins/wp-downloadMonitor/download.php?id=7" title="Version 0.1 downloaded 17 times" >Commit notification script</a> is that script, you can download and configure it with your SVN post commit hook as follows.</p>
<p>Add following line at the bottom of your post-commit file:</p>
<textarea name="code" class="ruby" cols="50" rows="10">
/usr/bin/ruby /var/www/repositories/project/hooks/commit-email.rb "$1"  "$2"
</textarea>
<p>* Please remember to change the path of you commit-email ruby script.</p>
<p>Now open commit-email ruby file and modify the following section according to your requirement:</p>
<textarea name="code" class="ruby" cols="50" rows="10">
# You can edit below

# Subject prefix
sub = "[test_project@vinsol]"  # A project 'test_project' is maitained at vinsol

#list of users who will recieve commit notification
recipients = ["bansalakhil30.10@gmail.com", "akhil@vinsol.com"]

# email which will appear in from email field
from_user = "svn-notify@somedomain.com"

# your smtp settings here
ActionMailer::Base.smtp_settings = { :address => 'localhost', :port => 25, :domain => 'domain.com'}

# Do not edit below this line
</textarea>
<p>You are done with that, now onwards whenever someone commits the code, you&#8217;ll get the commit notification mail like:</p>
<p><a class="imagelink" href="http://webonrails.com/wp-content/uploads/2008/01/commit-email-preview.png" title="Commit Email Preview"><img id="image104"  width = 100% src="http://webonrails.com/wp-content/uploads/2008/01/commit-email-preview.png" alt="Commit Email Preview" /></a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://vinsol.com/blog/2008/01/14/ruby-script-for-svn-commit-notification-with-log-message-list-of-updated-files-and-readable-colored-svn-diff/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Get svn commit notification right into your inbox by using svn hook post-commit</title>
		<link>http://vinsol.com/blog/2007/07/11/get-svn-commit-notification-right-into-your-inbox-by-using-svn-hook-post-commit/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=get-svn-commit-notification-right-into-your-inbox-by-using-svn-hook-post-commit</link>
		<comments>http://vinsol.com/blog/2007/07/11/get-svn-commit-notification-right-into-your-inbox-by-using-svn-hook-post-commit/#comments</comments>
		<pubDate>Wed, 11 Jul 2007 19:42:21 +0000</pubDate>
		<dc:creator>Akhil Bansal</dc:creator>
				<category><![CDATA[subversion]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://webonrails.com/2007/07/12/get-svn-commit-notification-right-into-your-inbox-by-using-svn-hook-post-commit/</guid>
		<description><![CDATA[If you wish you can get notification right into your inbox when a team member commits the code. This mail will contain list of files added/deleted along with the svn diff of files that are modified. This needs some extra efforts to setup, but once it is setup it is very helpful.
This can be done [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>If you wish you can get notification right into your inbox when a team member commits the code. This mail will contain list of files added/deleted along with the svn diff of files that are modified. This needs some extra efforts to setup, but once it is setup it is very helpful.</p>
<p>This can be done by using svn hooks. Yes, svn has inbuilt hook functionality like pre-commit, post-commit, post-lock, post-unlock, pre-lock, pre-unlock, start-commit. We&#8217;ll use post-commit hook to get notifications. </p>
<p>First of all get a perl script from here <a href="http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/commit-email.pl.in"><strong>http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/commit-email.pl.in</strong></a> and copy it to hooks directory inside your repository directory, lets say /var/www/repos/repository_name/hooks.<br />
Make sure to rename it as commit-email.pl, ofcourse you need perl installed on your server. Now cd to hooks directory inside you repository directory. <strong>Rename post-commit.tmpl to post-commit, and chmod 755 to post-commit and commit-email.pl</strong> . Now open post-commit in you favorite editor, and put &#8220;<strong>/usr/bin/perl /var/www/repos/commit-email.pl &#8211;from svn-notify@example.com  -s &#8216;SVN commit notification&#8217;  &#8216;$REPOS&#8217; &#8216;$REV&#8217; user_whom_to_notify@example.com, another_user_to_notify@example.com</strong>&#8221; at the bottom of that file. Now open commit-email.pl and make changes in configuration section according to your requirement and server, specially svnlook path. </p>
<p>Congrats!, You are done ;-) . </p>
<p>Now your server will send email notification to user_whom_to_notify@example.com, another_user_to_notify@example.com whenever someone commits.</p>
<p><em><strong><br />
**For security reasons, the Subversion repository executes hook scripts with an empty environment that is, no environment variables are set at all, not even $PATH or %PATH%. Because of this, a lot of administrators are baffled when their hook script runs fine by hand,but doesn&#8217;t work when run by Subversion. Be sure to explicitly set environment variables in your hook and/or use absolute paths to programs.</strong></em></p>
<p>It worked for me, Please let me know if it works for you too.</p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://vinsol.com/blog/2007/07/11/get-svn-commit-notification-right-into-your-inbox-by-using-svn-hook-post-commit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is SVN really atomic?</title>
		<link>http://vinsol.com/blog/2007/07/09/is-svn-really-atomic/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=is-svn-really-atomic</link>
		<comments>http://vinsol.com/blog/2007/07/09/is-svn-really-atomic/#comments</comments>
		<pubDate>Mon, 09 Jul 2007 14:12:36 +0000</pubDate>
		<dc:creator>Akhil Bansal</dc:creator>
				<category><![CDATA[rails]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://webonrails.com/2007/07/09/is-svn-really-atomic/</guid>
		<description><![CDATA[I am just wondering if svn is really atomic. Actually some days ago I freezed rails and tried to commit but due to some network problem the commit process failed. And then I found some of those files under version control, which should not be there if snv is atomic. I tried many times to [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>I am just wondering if svn is really atomic. Actually some days ago I freezed rails and tried to commit but due to some network problem the commit process failed. And then I found some of those files under version control, which should not be there if svn is atomic. I tried many times to commit after svn delete those files, but stuck with the same problem. May be I misunderstood some thing about svn. Did somebody also faced same problem?
</p>
]]></content:encoded>
			<wfw:commentRss>http://vinsol.com/blog/2007/07/09/is-svn-really-atomic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby script for creating new rails project and initial SVN import (with ignoring/removing log/other files)</title>
		<link>http://vinsol.com/blog/2007/02/08/ruby-script-for-creating-new-rails-project-and-initial-svn-import-with-ignoringremoving-logother-files/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ruby-script-for-creating-new-rails-project-and-initial-svn-import-with-ignoringremoving-logother-files</link>
		<comments>http://vinsol.com/blog/2007/02/08/ruby-script-for-creating-new-rails-project-and-initial-svn-import-with-ignoringremoving-logother-files/#comments</comments>
		<pubDate>Thu, 08 Feb 2007 13:38:17 +0000</pubDate>
		<dc:creator>Akhil Bansal</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[RubyonRails]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://webonrails.com/2007/02/08/ruby-script-for-creating-new-rails-project-and-initial-svn-import-with-ignoringremoving-logother-files/</guid>
		<description><![CDATA[Some days go I wrote a bash script for creating new rails project and initial SVN import (with ignoring/removing log/other files). And I received many comments if I could write a ruby script for this stuff. Hence here is the ruby script for creating new rails project and initial SVN import (with ignoring/removing log/other files) [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Some days go I wrote a <a  title="bash script for creating new rails project and initial SVN import (with ignoring/removing log/other files)" href="http://webonrails.com/2007/01/10/bash-script-for-creating-new-rails-project-and-initial-svn-import-with-ignoringremoving-logother-files/">bash script for creating new rails project and initial SVN import (with ignoring/removing log/other files)</a>. And I received many comments if I could write a ruby script for this stuff. Hence here is the <a href="http://webonrails.com/wp-content/plugins/wp-downloadMonitor/download.php?id=1" title="Version 1.0 downloaded 4 times" >ruby script for creating new rails project and initial SVN import (with ignoring/removing log/other files) (4)</a>. Copy this script to any of your directory as &#8220;create_rails_with_subversion.rb&#8221; and execute by issuing &#8220;ruby create_rails_with_subversion.rb &#8221;<br />
You may need command line <a title="subversion"  href="http://subversion.tigris.org/">subversion</a> for windows.</p>
<p>I have tested it at my windows and linux machine, if it not work for you please let me know.</p>
<p>Also I love to have your comments&#8230;. :)
</p>
]]></content:encoded>
			<wfw:commentRss>http://vinsol.com/blog/2007/02/08/ruby-script-for-creating-new-rails-project-and-initial-svn-import-with-ignoringremoving-logother-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bash script for creating new rails project and initial SVN import (with ignoring/removing log/other files)</title>
		<link>http://vinsol.com/blog/2007/01/10/bash-script-for-creating-new-rails-project-and-initial-svn-import-with-ignoringremoving-logother-files/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=bash-script-for-creating-new-rails-project-and-initial-svn-import-with-ignoringremoving-logother-files</link>
		<comments>http://vinsol.com/blog/2007/01/10/bash-script-for-creating-new-rails-project-and-initial-svn-import-with-ignoringremoving-logother-files/#comments</comments>
		<pubDate>Wed, 10 Jan 2007 13:43:48 +0000</pubDate>
		<dc:creator>Akhil Bansal</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[RubyonRails]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://webonrails.com/2007/01/10/bash-script-for-creating-new-rails-project-and-initial-svn-import-with-ignoringremoving-logother-files/</guid>
		<description><![CDATA[Many times we need to create a new rails project and import it to SVN repository. Each time we have to repeat same commands for creating new rails project, Initial import to SVN, Ignoring *.log files, move database.yml to database.example, ignoring tmp/sessions etc.. etc..
So I have written a bash script that do all this stuff, [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Many times we need to create a new rails project and import it to SVN repository. Each time we have to repeat same commands for creating new rails project, Initial import to SVN, Ignoring *.log files, move database.yml to database.example, ignoring tmp/sessions etc.. etc..</p>
<p>So I have written a bash script that do all this stuff, all you need to do is copy <a  href="http://webonrails.com/wp-content/uploads/create_rails_with_subversion">this</a> file to any of your directory and execute this script by issuing ./create_rails_with_subversion &#038; follow screen instructions.</p>
<p>This will:</p>
<ul>
<li>create a new rails project</li>
<li>initial import to SVN</li>
<li>remove and ignore all log files from svn</li>
<li>remove and ignore sessions, cache sockets files from tmp dir</li>
<li>move database.yml to database.example</li>
<li>ignore database.yml</li>
</ul>
<p>Download script from <a  title="create rails with svn (bash script)" href="http://webonrails.com/wp-content/uploads/create_rails_with_subversion">here</a>.</p>
<p>I also love to have your feedbacks&#8230;
</p>
]]></content:encoded>
			<wfw:commentRss>http://vinsol.com/blog/2007/01/10/bash-script-for-creating-new-rails-project-and-initial-svn-import-with-ignoringremoving-logother-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing subversion from pre-compiled packages or source code</title>
		<link>http://vinsol.com/blog/2006/11/07/installing-subversion-from-pre-compiled-packages-or-source-code/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=installing-subversion-from-pre-compiled-packages-or-source-code</link>
		<comments>http://vinsol.com/blog/2006/11/07/installing-subversion-from-pre-compiled-packages-or-source-code/#comments</comments>
		<pubDate>Tue, 07 Nov 2006 21:11:49 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://webonrails.com/2006/11/07/installing-subversion-from-pre-compiled-packages-or-source-code/</guid>
		<description><![CDATA[What is subversion(svn):
Subversion is an open source version control system used for keep track of change to source code. Subversion manages files and directories over time an increments revision made to the file system.  A tree of file is placed into a central repository. The repository is much like an ordinary file server, except [...]


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p><strong>What is subversion(svn):</strong></p>
<p>Subversion is an open source version control system used for keep track of change to source code. Subversion manages files and directories over time an increments revision made to the file system.  A tree of file is placed into a central repository. The repository is much like an ordinary file server, except that it remembers every change ever made to your files and directories. This allows you to recover older version of your date or examine the history of how your data changed.</p>
<p>Subversion can access its repository across networks, which allows it to be used by people on different computers. At some level, the ability for various people to modify and manage the same set of data from their respective locations fosters collaboration.</p>
<p><strong>Installation:</strong></p>
<p>There are two types of installation:</p>
<ol>
<li>Installation from pre-compiled packages</li>
<li>Installation from source code</li>
</ol>
<p><strong>Installation from packages:</strong></p>
<p>For RedHat Linux(or other Linux distributions which supports RPM) download subversion RPM package and install. See  manual of rpm utility for installation.</p>
<p>For Debian Linux issue <code> apt-get install subversion</code> and by confirming the installation you are done. I also recommend to install subversion-tools by issuing <code> apt-get install subversion-tools</code>.</p>
<p><strong>Installation from source:<br />
</strong></p>
<p>Installation from source code is slightly tricky. First of all download latest version of subversion code from <a href="http://subversion.tigris.org">http://subversion.tigris.org</a>.</p>
<p>Now extract source to your preferred directory (lets assume /home/testuser/svncode/),  and  issue the following command in sequence after switching to svncode directory:</p>
<pre><code>
./configure
make
make install
</code></pre>
<p>&#8216;./configure&#8217; will create Makefile<br />
&#8216;make&#8217; makes Subversion form the just-created Makefile<br />
&#8216;make install&#8217; install Subversion if make was succeed  And you are done&#8230;.</p>
<p>Issue <code>svnadmin create /home/testuser/repository</code> to create a new repository, this should create a directory structure like:</p>
<pre><code>drwxrwxrwx   7 root root 4096 2006-11-07 17:18 .
drwxrwxrwx  14 root root 4096 2006-11-07 17:18 ..
drwxrwxrwx   2 root root 4096 2006-11-07 17:18 con
drwxrwxrwx   2 root root 4096 2006-11-07 17:18 dav
drwxrwxrwx   2 root root 4096 2006-11-07 17:18 db
-rwxrwxrwx   1 root root    2 2006-11-07 17:18 format
drwxrwxrwx   2 root root 4096 2006-11-07 17:18 hooks
drwxrwxrwx   2 root root 4096 2006-11-07 17:18 locks
-rwxrwxrwx   1 root root  379 2006-11-07 17:18 README.txt</code></pre>
<p>Now we need to allow remote access to it so that users can import their files. By editing <code>conf/svnserve.conf</code> we can set user accounts, permissions.</p>
<p>Initially svnserve.conf looks like:</p>
<pre><code>### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository.  (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)
### Visit <a title="http://subversion.tigris.org/" rel="nofollow" href="http://subversion.tigris.org/">http://subversion.tigris.org/</a> for more information.
### [general]
### These options control access to the repository for unauthenticated
### and authenticated users.  Valid values are &#8220;write&#8221;, &#8220;read&#8221;,
### and &#8220;none&#8221;.  The sample settings below are the defaults.
### anon-access = write
### auth-access = write
### The password-db option controls the location of the password
### database file.  Unless you specify a path starting with a /,
### the file&#8217;s location is relative to the conf directory.
### The format of the password database is similar to this file.
### It contains one section labelled [users]. The name and
### password for each user follow, one account per line. The
### format is
### USERNAME = PASSWORD
### Please note that both the user name and password are case
### sensitive. There is no default for the password file.
### password-db = passwd
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa.  The default realm
### is repository&#8217;s uuid.
### realm = My First Repository</code></pre>
<p>Uncomment line containing &#8216;[general]&#8216;, &#8216;anon-access&#8217;, &#8216;auth-access&#8217; and &#8216;password-db&#8217; with suitable permissions. Also add file named passwd parallel to svnserve.conf containing</p>
<pre><code>[users]SVNUSERNAME = SVNUSERPASSOWRD</code></pre>
<p>You can add as many users you want. Now you are done with user accounts and permissions.</p>
<p>Next you have to start the svnserver by issuing <code>svnserve -d -r /home/testuser/repository</code>.</p>
<p>Now you are ready with your subversion server, you can access your repository from <code>svn://yourdomain.com/repository/</code></p>
<p>On some systems (like Debian GNU/Linux) this requires to write an init script so that the server starts up every time the system is rebooted. This could be done by creating a file called <code>svnserve</code> in the <code>/etc/init.d</code> directory, and then editing it to look like the following example file:</p>
<pre><code>
#! /bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/svnserve NAME=svnserve DESC="SVN Repository Server Daemon"
test -x $DAEMON || exit 0
OPTIONS="-d -r /cvs/src"
# Get lsb functions
#. /lib/lsb/init-functions
. /etc/default/rcS start() {        echo "Starting $DESC... "
#       echo "Starting $DESC: "
if ! start-stop-daemon --start --quiet --oknodo --exec $DAEMON -- $OPTIONS
&gt;/dev/null 2&gt;&#038;1; then
status=$?
echo $status
return $status
fi        log_end_msg 0
return 0
}
case "$1" in
start)
start
;;
stop)
echo "Stopping $DESC: "
start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
echo $?
;;
restart|force-reload)
$0 stop
sleep 1
start
#echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" &gt;&#038;2
exit 1
;;
esac exit 0</code></pre>
<p>This script also allows to manually start and stop the svnserver service whenever needed. Note: be sure and change the <code>OPTIONS</code> line to reflect the location of your repository; in our previous example this location was <code>/home/testuser/repository</code>. Once this file is created and edited to look like the previous example, you need to <code>chmod</code> the script to be executable by issuing <code>chmod +x /etc/init.d/svnserve</code> and also set it to startup at boot time by issuing <code>update-rc.d svnserve defaults<br />
</code></p>
<p>Now simply start/stop the service by issuing:</p>
<p><code>/etc/init.d/svnserve start/stop</code></p>
<p>Please refer <a href="http://svnbook.red-bean.com/">Subversion book</a> for more help and usage.</p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://vinsol.com/blog/2006/11/07/installing-subversion-from-pre-compiled-packages-or-source-code/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

