Anyway, so now here comes Subversion which is basically a replacement for CVS. This means, however, that it's not very kind to people moving from VSS to it. Nothing ever seems to be, half of what comes up in Google for "Subversion for vss users" is comparisons between the two. I'm sure I'm not the only one who has been reluctant to move on due to requiring a complete shift in mindset, a dedicated server, an little documentation to push you through it quickly.
I was put off at first by Subversion's free book (documentation in PDF form) which had pretty pictures here and there, but tended to drag on things that I wasn't concerned about. In reading this thing, I was seeking to be up and running correctly and quickly. I was not interested in knowing how this is better than that or vice versa, I just want some decent steps a perhaps a little nugget of information on why such choices were made. Don't worry folks, I'll be writing such a thing as soon as I've finished my tour.
One developer told me there was a problem with periods in directory names when using Subversion and I found a page at codefez.com which I believe is describing that problem, what is actually the problem, and how to get around it. Here's the jist, Subversion keeps a special hidden folder (.svn) in every folder which is a local copy of one in the repository. This is just like how VSS keeps a hidden file (vssver.scc) and serves basically the same purpose, though has more information to make more decisions with less server interaction.
Anyway the directory is called ".svn" and begins with a period. This apparently freaks out Visual Studio 2003 which will refuse to load the project. The most popular client-side Subversion app (TortoiseSVN) has an option to call these hidden folders "_svn" instead. The installer (as you'll see from a picture on this page) makes it sound like this is a horrible hack, but as long as you start out using it that way you'll be just fine. It's not a scary thing, just check the box and be done with it. Visual Studio 2005 doesn't have this problem, but then you can't use it to work with .NET 1.1 projects either.
In general I'm happy, even excited about, using TortoiseSVN and Subversion on Apache 2.0. I wanted to say that before I list out things that I'm not so crazy about ...
- Apache 2.0 doesn't support NTLM, which means you have to setup passwords separate from the ones you use with your domain account. My workaround will be a simple web tool to reset this password in case it's forgotten - which it will be. Yes I've made a passing attempt at using mod_ntlm, but it's not a stable release, hasn't been updated in two years, has problems with SSL (at least according to bug reports), and I didn't feel like building it after seeing reports of issues with that and being unable to find a binary version. If you know things to the contrary, let me know.
- Right-click importing a folder in TortoiseSVN includes all of its files and folders, but not that folder itself. For example, you right-click "MyStuff" and select "Import" and it will copy all of the contents but no folder called "MyStuff" will be created in the repository. Thus the workaround has been to create a dummy empty folder and put the folder I actually want to import in that. Then I import the dummy folder. Lamo!
- Ankh's diff'ing sucks. TortoiseSVN's is awesome. Where did they go so wrong?
- Resolving conflicts is a pain, but maybe this isn't such a bad thing. It's worse to have stomped changes after all.
- Can't right-click a folder to show its diff in TortoiseSVN. You actually have to open the folder and then right-click an empty spot to do it.
0 comments:
Post a Comment