Tuesday, January 30, 2007

Software Re-Useability

This is the best response
Most folks think of it in terms of some kind of "mother of all objects" thing, whereas the mentality to code with re-use in mind should be enabled on a daily basis on the lowest level. Don't dream of creating a reusable component that will save the world. Start with creating microscopic reusable code snippets to get you daily job done. That, at least, will make you a better programmer, and your code will be better, your applications will be more flexible, configurable, and easier to maintain. Once that is in your blood, then, perhaps, one day you will be indeed capable of conceiving solutions like Spring, etc.

Software Reusability: Myth Or Reality?

Software Reusability: Myth Or Reality?

Thursday, January 04, 2007

Moving from cvs to svn step by step

Step 1: Install your favorite Linux server. I used Fedora 6. Fedora 6 comes with svn server 1.4 . Name is F6

Step 2: Download cvs2svn  from http://cvs2svn.tigris.org

Step 3 : As root, run 'make install'.

Step 4: Create a regular user on your server. I created svnscm

Step 5 : Login as svnscm , Copy the CVS repository from the cvs server to F6. I used "scp -r " 

Step 6 : As svnscm cvs2svn --dumpfile DUMPFILE CVSREPOS . svs2svn performs 9 pass process on your cvsrepository (CVSREPOS). After successful execution it creates a DUMPFILE. I used cvs2svn --dumpfile cvsdump.dmp myproject.

Step 7 : Create svn repository  svnadmin create /usr/local/svn/repos.

I used "svnadmin create /source/repository/myfavoriteproject"

Step 8 : Load the dump file into your new svn repository. svnadmin load REPOS_PATH

I used svnadmin load /source/repository/myfavoriteproject < cvsdump.dmp 

Step 9 : Verify the svn repository created. I created a folder /home/svnscm/workspace. 

"svn checkout  file:///source/repository/myfavoriteproject/trunk [Note : trunk in the url ]

Accessing svn from a remote machine

Step 10 : Verify port 3690 is not blocked

Step 11 : In your svn client use this url svn+ssh:///source/repository/myfavoriteproject/trunk. [ssh is by default enabled in F6]. I used  TortoiseSVN 1.4.1 for windows

Step 12 : Add pre-commit hooks and post commit hooks That's it .

Its party time enjoy your svn

Additional Notes

  • svn creates trunk, branch, and tags as separate folders. If u checkout myfavoriteproject it will download tons of files.
  • When you add more developers to your project access control can be handled at file permissions level. Further fine tuning can be done in svnserv.conf. This file is available in each repository

Ref Book on Subversion