QText 2.31
Of course I messed-up.
QText 2.30 could not be installed on clean system. Upgrade procedure worked just fine, but initial install would not create it’s directories.
This is sorted in this release. Sorry for any problems you had.
Download:
VHD Attach just got new version. It is mostly maintenance release with few bug-fixes and some internal rearranging. Without further ado, I will just tell that download is available.
Of course I messed-up.
QText 2.30 could not be installed on clean system. Upgrade procedure worked just fine, but initial install would not create it’s directories.
This is sorted in this release. Sorry for any problems you had.
Download:
After more than a year, new version of QText is finally out of beta. That time was spent mostly on rearranging internals which is not really visible but I do have few changes that should make you want upgrade.
Probably most desired request was to be able to hide tabs. This is something that I postponed for quite a while, but time has come. Since QText tries to keep underlying files readable with any program, this change was done via flipping file’s hidden attribute.
Second big change is ability to detect changes in open files. It was implemented in different ways through-out beta until I finally settled on this implementation.
Additional improvement for those running QText in corporate environment is that, when QText is started without installation, no settings are saved to registry. Program should leave no traces on computer. Unfortunately this means that no settings can be saved but this is necessary trade-off.
Program can be downloaded as full installation and as zip archive (for no-trace setup).
Over time I played with quite a few Version control systems. Here I will explain why I hate each one. :)
WinRAR
My first source control consisted of nothing more than compressing project’s files in different archives. It became one source control system by which I will judge every other. It was probably best $35 that I ever spent on any software.
Microsoft SourceSafe
First one that I ever saw was Source Safe. I kind of liked it but this was time of simpler (Visual Basic 6.0) projects. I never used it at home since it was simply too expensive for me.
IBM ClearCase
First real contact with version control was in form of ClearCase. To put it in context, it felt like I was little kid getting introduced to gravity via drop from 1000 meters (more than 3200 feet for those SI-challenged).
We had one guy in company who’s sole responsibility was handling views and other black magic. After some time I did became a sort of expert for client side installations and I sorted more problems with it than I care to remember. I figured that version control needs to be complicated on both client and server level.
Not to be misunderstood, in those rare occasions when moon and sun were in just right position and as long as you sticked to Unix command line instead of Windows client, it did work as expected.
SourceGear Vault
As I was playing with ClearCase at work, I started to desire something for my personal projects also. Answer was in SourceGear’s Vault. It was in-place replacement for SourceSafe and it was free for single developer.
Trouble with it was that I just got too used to ClearCase and it’s control of everything in directory. With Vault I had only source under control. Documents, installations and other files that my projects contained were still under mercy of WinRAR.
Microsoft Team Foundation Server 2005
After I parted my ways with Vault, I missed source control. I missed it enough to install Team Foundation Server. Installation was made in hell. It had bunch of requirements and each requirement had it’s own requirement. It was mission impossible. I did install it at least but I decided that cost and pains that it puts me through are just not worth it. I never actually used it’s source control. And I never will.
SVN
Since ClearCase was getting too expensive and too painful to maintain, my team switched to SVN. It took some time to get used to work without checkouts but we mostly managed it. Since we had something like 20 people working for first time with same repository, we probably did every single thing you should not do.
Experience with it was actually good most of times. Although, I would like to kill idiot who decided that “.svn” folder in EVERY directory is appropriate way of storing information…
Microsoft Team Foundation Server 2010
I simply could not believe that same team did both 2005 and 2010 edition. Those two products could not be more different. Installation of Team Foundation Server 2010 went without issues. If I forget whole issue with Visual Studio 2008, whole product just worked.
Files outside solution were issue - it was annoyingly hard to track any file that appeared outside of project. As I started to work with stuff that isn’t in Visual Studio 2010, two of us just got parted. I still miss integrated work item handling.
If I ever went back to Microsoft-only world, I would use this.
Mercurial
I have no idea how I came to try Mercurial but I am glad I did. It uses file based management (like SVN) but “.hg” folder is only place where it stores everything of it’s own. Installation is dead simple, usage even better (TortoiseHg). It has plenty of rough edges but it feels good so far.
I love the most simplicity of administration and low system requirements. My home server has total of 256 MB and Mercurial can work on it.
I used it only for couple of months now (and that is actually less than any other system excluding TFS 2005) but I feel like it was made for me. It is my current choice. Will it remain, only time will tell.
And it is only source control system where backup can be done as easy as with WinRAR. Actually, I do it with WinRAR… :)
P.S. This text represents nothing else than my personal and highly subjective views. As it comes, I do care a lot about them and I consider everything written here to be absolutely correct. :)
P.P.S. Yes, I know that WinRAR was not intended to be version control system.
In one of my existing databases I had to switch from integer key to GUID. Annoying aspect of it is handling referential integrity issues and, as soon as there are two tables, you can bet that there will be issues.
Process was half manual and simple one: just create new field (e.g. Guid) and give it default of NEWID. Database itself will do the rest for that field’s value.
In order to sort out references, you can go in similar fashion. For every foreign key field just create one with GUID (E.g. ItemId gets it’s friend ItemGuid). After that just synchronize fields with simple SQL:
UPDATE Codes
SET ItemGuid = (
SELECT Guid
FROM Items
WHERE Items.Id = Codes.ItemId
)
In this case, we had referential link between Codes.ItemId and Items.Id. Our goal was to switch that to Codes.ItemGuid and Items.Guid. Where statement ensured just that.