Entries for April 2008
Here are the binaries for the Subversion RSS Log post commit hook that I created in C#:
This doesn't have a readme.txt yet, but I wanted to put up a download for those that wanted to play with it right away. This requires that you have .NET 2.0 installed in the machine that is running Subversion. So the instructions are:
- Unzip this file into your repository's hooks directory
- Edit the post-commit.exe.config file
- Let it rip!
PS. Feel free to give me feedback on this.
I know that there are a lot of people wondering about PainlessSVN. So here's the scoop:
I have been upgrading my server hardware in my private LAN, as the server that is serving this website is overloaded. I built 2 new servers, one to handle database duties and the other to handle web duties. I got the last of the Seagate hard drives that I ordered. I already installed one, and will be installing the other one here shortly.
My licensing tracker application uses MS Access as its default database, and I found that unacceptable. Plus I needed to integrate the license creation, so that it gets automatically added to the tracker application when a purchase is made. So, I'm still fighting with the licensing stuff.
I just didn't realize how much stuff needs to be done to handle all the other things like sales, customer support, and the million other details that a business needs to handle. I'm behind about two months from being sick at the beginning of this year.
As I said before, the code and installation script is already done. It's the other business related activities that are holding it back. I already had somebody tell me to "Just get it out already!" So yes, I'm still working on it, and it will be out as my free time permits.
I finally nailed down the last bit of the wierd issue that I had with the custom Subversion post-commit hook that I wrote using C#. The cofiguration file was being read correctly in development, but that part of the code was failing on the Subversion server's hook directory. Here's actual exception from the Application Event Log:
Event Type: Error
Event Source: .NET Runtime 2.0 Error Reporting
Event Category: None
Event ID: 5000
Time: 12:06:29 AM
EventType clr20r3, P1 post-commit.exe, P2 126.96.36.199, P3 481409ae, P4 mscorlib, P5 188.8.131.52, P6 471ebc5b, P7 3404, P8 d8, P9 system.io.filenotfoundexception, P10 NIL.
I ended up removing all the code that used the System.Configuration namespace for native .NET 2.0 reading stuff, and using Nini instead.
This is now working correctly.
I needed to replace the rss feed functionality that a third party was providing for one of my public Subversion repositories, so I created a .NET 2.0 post-commit hook. I couldn't find anything out there that actually worked. The source for this hook is here:
Post-Commit Hook Project
To see a live feed with a nice xslt template, please visit WheelMUD's RSS Check-In Feed
I will be putting together a binary package around Monday or Tuesday.
I just read that a Google Group was created for .NET Reactor. Here's the link to the blog where I read it: Agile Micro ISV Blog and here is the link to the .NET Reactor Support Group
"I heard from the chap who develops Reactor a few months ago, and it seems he has some health issues that mean he has to spend some time in hospital. As such, I'm sure I speak for all Reactor users when I wish him a speedy recovery. Being a micro ISV is tough, especially when you're ill."
I share those those feelings as well. I just wish that this information would have gotten out earlier. I know that there were a lot of us micro ISVs that had a few moments of fear wondering if this tool was going to disappear.
I have several Subversion servers on my network, so I'm registering new servers in PainlessSVN fairly often. I got tired of trying to figure out what server I was hooked to, so I added a little visual tweak on the server node.
So now, I can tell exactly what server I'm working with at a glance. I will probably end up adding the ability to keep several servers registered, a la Enterprise Manager and SQL Server Management Studio.
I had to mess with Win32 APIs in order to get this working correctly. Here are the API calls that I used:
public const uint DRIVE_UNKNOWN = 0; // unknow drive type
public const uint DRIVE_NO_ROOT_DIR = 1; // invalid root path was given to the function
public const uint DRIVE_REMOVABLE = 2; // removeable drive like a floppy
public const uint DRIVE_FIXED = 3; // a fixed drive like a hard disk
public const uint DRIVE_REMOTE = 4; // a network drive
public const uint DRIVE_CDROM = 5; // a cd-rom drive
public const uint DRIVE_RAMDISK = 6; // a ram disk
[DllImport("Kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern uint GetDriveType(string lpRootPathName);
public static extern int WNetGetUniversalName(
[MarshalAs(UnmanagedType.U4)] int dwInfoLevel,
[MarshalAs(UnmanagedType.U4)] ref int lpBufferSize);
Just wanted to let people know that I have now confirmed that PainlessSVN works in the following versions of Windows Servers:
- Windows 2003 Server 32-bit
- Windows 2003 Server SP1 32-bit
- Windows 2003 R2 32-bit
- Windows 2003 R2 SP1 32-bit
- Windows 2008 Server 32-bit
I haven't been able to get it to work on the 64-bit versions yet.
I'm finally back to productive work with SystemWidgets. I just got the trial stuff worked out. Here's what it will look like:
That part was actually pretty easy to setup with Infralution Licensing System (ILS). The actual registration key creation is taking a tad longer. I had a weird situation with ILS. I couldn't get the sample apps to create and take serial numbers. It turns out that most people will try creating keys before purchasing. The unlicensed code always uses TEST as the password, because the UI will restrict to only be able to use TEST. Well, it happens that I had registered ILS, before I did any serial key testing. I didn't have a trial period, since I just went out and bought it. Since ILS was now unlocked, it was letting me use any password. There was some head scratching, but Infralution tech support set me straight quickly.
The code for PainlessSVN is actually all done. The code has been done for at least 2 months. It's the key generation and integration into my systems that is taking a while. Man, this is painful! I'll endure it, because I hate waiting for serial numbers. It's a personal pet peeve of mine, and don't want to inflict that on my customers. So, I'm making sure that the sales funnel is all automated. I don't have any time frames, as I'm taking it easy with this. I still have low energy levels, and I'm trying to avoid doing too much too quickly.