|
During the height of the dot-com boom it was fashionable to talk about a piece of software’s “OOBE”: out-of-the-box experience. The term isn’t so fashionable these days, but it came to mind as I executed the easy installation and worked through the well-written quickstart instructions for Hansky’s Firefly software configuration management system. Not only was the OOBE here positive, it was extremely comprehensive - or perhaps “overwhelming” is a more fitting word. The Firefly system employs TCP/IP with Java remoting to communicate among multiple components. These include a Directory Server which maintains a list of users, a License Server whose purpose should be obvious, and the Firefly Server itself which hosts repositories. There’s also a Project Portal that gives you Web-based access to these various servers, as well as letting you drill down into the contents of Firefly repositories. Beyond that, there are command-line and GUI applications to both administer and use the system. On Windows (where I did my testing), for example, you get an administration tool, a Server Explorer, and both command-line and graphical clients. Firefly also installs integration with a whole raft of things: the standard SCC interface, Visual Studio, JBuilder, Eclipse, and Weblogic Workshop. Windows is not Firefly’s only home. The server itself is written in Java, and providing you have a 1.4.2+ JRE you can run it on Solaris, Linux, HP-UX, or AIX. The command-line client supports an even wider variety of unix systems, though the GUI clients are strictly for Windows right now. Despite the host of tools, Firefly isn’t difficult to use; it offers choices rather than chaos. If you’re comfortable with the command line, it’s there for you. If you prefer to use source code control integrated with your IDE, go for it. If you like a separate client, that works too. Of the three choices, you get the most functionality out of the dedicated clients, and I expect most developers will gravitate there in the long run. Within the client, you can organize changes into atomic changesets. An intuitive and functional three-pane interface makes it easy to tell what you’ve got stored in local changesets, and you can have multiple changesets pending at any given time. If you need to reorganize changesets (for example, to pull out part of a changeset and submit it early) you can do that too. Beneath the changeset support you’ll find local workspaces. Rather than editing files on the server, you’re always working with your local copies. This has the added benefit that Firefly supports a complete offline mode. A few things are different in offline mode (for example, you can’t move files from one changeset to another), but by and large Firefly remains fully functional, waiting for you to reconnect to the server to synchronize everything up with the rest of your team. Diff and merge support here is good, with the expected client support for merging conflicts and diff display in the web interface. ![]() Firefly’s synchronization capabilities go beyond letting you work in disconnected offline mode. An optional ServerSync module lets you distribute a repository across multiple, geographically separated servers. Then, at scheduled times or when you reach particular stages in the development process, you can integrate a stream from one server up to another server. Those outsourcing development to contractors overseas will probably find this a particularly useful capability. In designing Firefly, Hansky also took security into account. By default, security is managed by Access Control Lists (ACLs) at the branch level. You can specify on a branch-by-branch basis which actions (such as submitting changes or creating local workspaces) can be performed by which users; by default, users can only list the contents of new branches, so things are secure by default. If necessary for a particular project, you can also implement ACLs on a folder-by-folder or even file-by-file basis. You can even combine the two. For example, you might limit developers to a Dev stream while not letting them make changes to the same files in a Shipping stream. Firefly also offers good support for branching as well as parallel and concurrent development. It’s easy for the administrator to create new branches, as well as to track what’s in a branch and where it came from. You also get graphical tools to compare, merge, and synchronize branches. Firefly can merge any two streams, not just a direct parent and child, and it remembers the complete history of every file in the system. For example, if you check in a file and have to resolve conflicts with a version checked in by another developer, Firefly records both your version and the existing version as parents of the new version. This makes it easy to trace everything that went on with any particular file. You can even get a graphical version tree to make tracing the history easier. Overall, I’m quite impressed with Firefly. I think it nicely hits the sweet spot of covering all the software configuration management that most developers will ever need, without adding a lot of complicated bells and whistles. The learning curve is very flat; you can be up and running in just a few hours, and training developers is easy as well. The help files are clear, and the quickstart guide is a welcome relief from some other systems that want you to slog through hundreds of pages just to get started. Performance is also excellent, even on projects with thousands of files and using a test server that was outside of my local LAN. If you’d like to check it out for yourself, you can download a five-user time-limited trial from Hansky’s Web site. Cost Firefly pricing is based on named user licensing. Average costs per developer are $600. Volume discounts are also available. Company Contact General: info-us@hansky.com Sales: sales@hansky.com Support: support@hansky.com www.hansky.com Mike Gunderloy, MCSE, MCSD .NET, MCDBA is an independent software consultant and author working in eastern Washington. He's the editor of ADT Magazine's Developer Central Blog and the online Daily Grind (www.larkware.com), and the author of numerous books and articles. You can reach him at MikeG1@larkfarm.com.
Set as favorite
Bookmark
Email this
Hits: 6808 Trackback(0)Comments (0)
|
| Last Updated on Thursday, 12 January 2006 04:08 |




