Archive for the 'Software' Category

Moving (renaming) Files in CVS

Once of the main complaints about the CVS version control system is that it’s difficult to move or rename files as your project structure changes.

While you can easily remove files and re-add them under a new name or location, this method loses the precious nuggets of wisdom contained in the file’s history — you do enter meaningful commit messages, don’t you? ;-)

Although recent CVS versions (CVSNT 2.0.55 and later) include support for a new rename command, the feature is classified as “experimental” and it’s not well-supported by common clients nor well-documented in the manual.

However, it can be done — the key is to understand that rename operations are properties of directories, not of the files inside. So when you move or rename a file, it is essential to commit the folder containing the file — and (if you moved the file) the new folder as well.

Before using the rename command, you may want to back up your local working copy (sandbox) just to be on the safe side if anything goes wrong — and if it does, please don’t blame me!

The steps below outline the basic process.

To move (rename) an existing file in CVS:

  1. If you’ll be moving a file to a new location that is not already under version control, create NewFolderName and add it to CVS with cvs add.

  2. At the command line, navigate to current location of the file you want to move (let’s call this OldFolderName) and enter:

    cvs rename OldFileName ../_NewFolderName_/_NewFileName_

    (the file is moved to NewFolderName and renamed to NewFileName)

  3. This is the important part! — Still in OldFolderName, enter:

    cvs commit

  4. If you moved the file to a different folder, cd to NewFolderName and repeat the commit command:

    cvs commit

    At this point, the repository knows about the changes to OldFolderName and NewFolderName.

    Now, for good measure, we will update our local sandbox to be sure we have a pristine copy of the project. In fact, to really make sure the repository “gets it”, we’ll remove NewFolderName and verify that it returns on update.

  5. So take a deep breath, and delete NewFolderName.

  6. Then, finally, navigate to your project’s root folder and enter:

    cvs update -P -d

    (In this command, the -P option tells CVS to “prune” (remove) any empty folders in your working copy, and -d creates any missing folders like NewFolderName.)

That’s it. You’re done!NewFolderName should reappear, and inside it, NewFileName will be waiting for you with its history intact!

What? It isn’t? — well, you do have that backup, don’t you?

Upgrading WordPress via Subversion

David over at Geeks are Sexy has a nice tutorial on keeping WordPress installations current by using Subversion to check out the latest code directly from the Automattic repository.

David’s instructions are much more detailed than the brief steps provided on the WordPress site, and also describe how to check out stable WordPress versions as opposed to the latest bleeding-edge code from trunk, and how to switch an established blog to Subversion to facilitate future updates.

(Essentially, you check out a working copy to your webserver via SSH and reconfigure the fresh install to use your existing database content—worked here quite nicely.)

Cornerstone: New Mac Subversion Client

cornerstone-app.pngZürich-based indy developer Zennaware has released Cornerstone, the latest attempt to make the Subversion experience more Mac-like. As Zennaware says,

We wanted to make an application which would make version control usable and, most-of-all, approachable to Mac users.

As John Gruber pointed out, they were brave enough to commercially release v1.0 without the requisite hype or beta Versions. And unlike many of the other Mac Subversion options, Cornerstone includes not only client functionality, but also the administrative tools, so you can perform various operations on the repository itself, not just your local working copy.

Oddly enough, many clients seem to only support a subset of even the client commands, so with many of the GUI frontends, you need to fall back to the command line to switch or relocate your working copy to a different repository, move files, etc.. Curious to see how complete Cornerstone is in this respect…

Now the question is, who will be first out of the blocks to support the new features in Subversion 1.5sparse checkouts, anyone?

Versions Emerge(s) From the Vapors

Nearly a year after the initial hype, Mac Subversion client Versions has finally seen the light of day with the release of a beta that at first glance offers little that other clients don’t.

The opening line of the beta announcement sheepishly concedes the app’s impending vaporware contender status:

Versions one year anniversary – celebrating with an actual app!

While the interface is certainly slick, it remains to be seen whether a Mac-like look and feel and a bit of Beanstalk integration are enough to win over those who’ve made do with the various alternatives thus far.

Despite the variety of cross-platform and Mac-specific Subversion clients available, with the exception of the somewhat orphaned SCPlugin, each oddly seems to assume developers need yet another app running alongside their work just to interact with a version control system, instead of just blending into the woodwork like the venerable TortoiseSVN.

Sometimes beauty in UI design is less about lickability than invisibility…

FrameMaker 8.0.3 Patch Available

FrameMaker 8 iconMahesh Gupta has announced the release of a FrameMaker 8.0.3 patch, which addresses a long list of bugs and workflow issues, including the proper resolution of DITA content references.

The update is available via the Adobe Update Manager (Help > Updates), and should show up on the FrameMaker Downloads page sometime soon.

oXygen 9.2 Improves DITA Support

Syncro Soft has released version 9.2 of its <oXygen/> XML Editor, a cross-platform XML authoring tool. The new version includes a new XML Author mode, which provides a streamlined interface tailored to the needs of writers who need to focus on document content and don’t need immediate access to the Schema Editor, XSLT or DTD development tools.

(XML Author is also available as a separate product at 60% of the cost of the full XML Editor suite, though the Author version doesn’t include the Subversion client, which is quite useful in its own right.)

Version 9.2 also includes a number of DITA-specific workflow and usability improvements such as a new DITA Maps Manager to assist with common map authoring tasks, a new Insert Content Reference dialog to aid in the selection of conref IDs, and a bundled version of the recently released DITA Open Toolkit version 1.4.2.1.

Adobe RoboHelp Packager for AIR

Adobe’s Senior Product Evangelist RJ Jacquez has posted an online training session on the new RoboHelp Packager for AIR, a new Adobe Labs download that allows you to roll a RoboHelp project into a standalone app that runs on the Adobe Integrated Runtime (AIR) platform.

AIR is beginning to look like an interesting cross-platform option for online help and performance support systems, since you can include typical navigation aids (such as table of contents, index, search, glossary, favorites, etc.), provide auto-updates and even roll in existing PDF content into a standalone package that will run on Windows, Mac, and Linux systems.

The AIR runtime is a free download that includes a WebKit browser and Adobe Flash engine to enable desktop use of Internet applications–even offline. So while the technology is fairly new, it may prove very useful in the development of cross-platform help solutions.

Spaces in HTML Help Project Paths

Like so many other applications, Microsoft’s HTML Help Workshop often chokes on project files whose paths contain spaces.

If you double-click a HTML Help Project File (HHP) in a location whose path contains spaces, the HTML Help Workshop throws an error when you click the Compile button and refuses to compile the CHM file.

Cannot open the file ""C:\Folder Name\File Name.hhp"".

You can work around this issue by removing the quotes from the path shown in the Create a compiled file dialog before you click the Compile button, but you still won’t be able to save any changes you’ve made to the HHP file.

SOLUTION: Instead of double-clicking, open the HHP file from within the Help Workshop via File > Open. This helps the Workshop to handle the paths properly and you will be able to save your changes and compile as expected.

FrameMaker 8.0.2 Update Available

Mahesh Gupta, Adobe’s FrameMaker Product Manager announced the availability of the Version 8.0.2 update in a post on the Technical Communication blog.

This patch (8.0p273) must be applied on top of 8.0.1 (8.0p266) only.

The update covers a series of minor bugs and annoyances, including several related to Unicode characters and XML roundtripping and the status bar shortcuts (Ctrl+F8, Ctrl+F9) for the paragraph and character catalogs (see the post for the full list).

The update is available via the Adobe Update Manager (Help > Updates), and should show up on the FrameMaker Downloads page sometime soon.

SnagIt for Free!

Over at Digital Inspiration, Amit Agarwal points out a great deal on the popular Windows screenshot tool SnagIt. TechSmith is currently offering version 7.2 for free download as a promotional deal intended to attract users to the latest version (which is 8.2 as of this post).

So if you don’t need all the bells & whistles the later versions include and are just looking for a screenshot workhorse to take you beyond ALT+PRINT (and don’t already own a copy of HyperSnap or a similar tool), follow Amit’s instructions for a free SnagIt license.

If you’re interested in screencasting tools for full motion recording, there’s a similar deal on Camtasia Studio.

For Mac OS X, check out Snapz Pro X, which does both still images and full motion capture.