Migrating to SVN 1.5 on Linux from SVN older version on Windows

SVN No Comments »
This is coming up for us and just wondered if anyone out there has already done this and has any pointers, gotchas, tips, tricks or anything else to contribute to our happiness.

I understand that SVN 1.5 is a fairly major release which incorporates new merging facilities.

We will also need to update the eclipse plugin 'subclipse' that we use to a compatible version. I have started looking at the version we need but think just the latest (1.4.5) will work best. Currently we are using 1.2.4 because we are pointing to our pre 1.5 repository.

Book Recommendation - The Productive Programmer, Neal Ford , O'Reilly [ISBN: 978-0-596-51978-0]

Books , ColdFusion No Comments »
This book is an easy to read set of hints tips tools and theory to make you as productive as possible in your development work.
It is in two parts.

Part 1 highlights a whole series of tools (the 'Mechanics') to make you more productive.

Part 2 focus on various practices to make you more productive.

Neal uses Windows, OSX, and other Linux flavours in his day to day work so he mentions tools on all 3, or sometimes just hidden features of the OS itself. Some stuff I already knew but I found a wealth of goodies which I have been trying out since.

He structures these tips around the headings of
  • Acceleration - doing stuff quicker
  • Focus - doing stuff without distractions
  • Automation - getting the computer to do the hard work
  • Canonicality - making sure we have just one copy of things
The Canonical section was particularly interesting with good examples from his experience (which I could relate to) of times when not having central, common copies of certain resources can trip up and delay or damage development. Source control is the obvious example, but Neal has several more.

Part two of the book looks less at the Mechanics and more at how you work; the 'Practice' of being a productive programmer. Again some of his topics were familiar to me already, such as Test Driven Development, but most had new slants.

He ends this section with some interesting views on how programming languages are developing for the future. Neal sees more domain specific languages and that these will be used in combinations to solve problems.

The book has is own wiki at http://productiveprogrammer.com for you to contribute or discuss the topics raised.

Every development team should read this!

SVN plugin subclipse: implementation of 'replace'

SVN 1 Comment »
If you are working on a file in your project in eclipse and for some reason you need to change the contents of that file to be the contents of the same file but a different revision within the repository, then you would think that the Replace with, Branch/Tag or Revision would do what you need.

I find however that the implementation of this function is not quite as expected (and not the same as when using the same function under CVS).

I would expect that the contents of the current revision are replaced with those of the selected revision (just as though you have made these changes by manual editing) and that as a result this file now needs to be committed.

Now this is exactly what happens if you choose the Revison option - that is a revision in the same branch. You are shown a list of revisions and if you right click you can 'Get revision' or 'Get contents' - Get contents replaces your current files contents withe the selected revision contents and leaves your local copy in need of a commit.

If you select a revision from another Branch/Tag then a 'switch' command is run and your local copy is switched to that branch. You will notice that the SVN icon changes to blue. If you team, update this project, your file switches back to the one on your own branch.

Does anyone else think this behavior is incorrect?

Railo Keynote at Scotch on the Rocks

ColdFusion No Comments »
Gert announces that Railo joins JBoss.org and therefore Railo is fully open source.... For a proper analysis of this announcement see my colleague Peter's post here

SVN eclipse plugins. Subclipse and Subversive. Conclusion

SVN 1 Comment »
As I've blogged here before, there are two SVN plugins available for eclipse, subclipse or subversive. We started using subclipse because on balance it seemed to have most supporters. So we used that for a few weeks.
I should explain that we use branches extensively in the development process we use and so we also have to merge these branches back to the trunk. The merging facility of our chosen plugin becomes perhaps one of the most vital parts since this is the trickiest operation and you need all the help you can get!
Using CVS (as we did before SVN) the CVS process within eclipse (I won't say plugin because it is part of the core eclipse build) creates a tag of root_branchname when you create the branch and then when you come to merge defaults to merging from that tag to the current HEAD revision. In the currently, SVN requires you to identify the revision number prior to the root of the branch as the source of the merge. This is more fiddly than I would like, with no defaults and every chance of an inexperienced developer getting something wrong.
Finding the source revision was not always straight forward on some machines we had to use tortoisesvn to look this up as subclipse seemed to be unable to list it correctly. Not only do you have to select the source revision in the branch but also the target revision in the trunk. The target revision is 99.9% going to be the HEAD revision of the TRUNK but this is not the default so you have to remember to set that as well. The merge is always carried out, even when there is a conflict. In CVS you had the chance to review and edit conflicts prior to the merge being done.
These issues made me take a second look at subversive. To start with it seemed a better plugin. You can always find the source revision although in principle the same issues of having to get this right remain. When you merge the merge is not carried out rather you get to review each change and copy these over one by one and then mark each merged file using 'mark as merged'. For small merges this works well, but for larger ones or for branches that have lived longer (time apart from the trunk) there may be a lot of changes in any given file - some have happened on the branch and some on the trunk. Here a major subversive flaw appears - the conflict editor view does not distinguish which changes have happened on the branch and which are from the trunk. This is vital to a complex merge, since you want to focus on the branch changes and be able to assume that changes already on the trunk are good (reviewed by someone else). Subversive also had some 'features' related to how you merged folder trees you had to select the folders beneath the top folder rather than the the top folder else it took a very long time to merge. These issues finally drove me back to subclipse. I'm more used to the selection of revision numbers now and my clean install always seems to be able to list the revisions clearly. Best of all the conflict editor clearly colours the changes black for changes on the trunk, blue for branch changes and red for branch changes that conflict.
The next release of SVN promises better merge control from the repository so these issues may all vanish.
Powered by Mango Blog. Design and Icons by N.Design Studio
RSS Feeds