May 9, 2008

Win Vault or Fortress licenses at the Tulsa School of Dev this weekend

We've donated several license bundles as giveaways at the School of Dev event this weekend, in Tulsa, OK.

Up for grabs for attendess: 2 five-user Fortress licenses, 2 five-user Vault licenses.

As always, if you're looking for giveaways, swag, $$$, etc. for your user group or code camp -- drop me a line at paul.roub@sourcegear.com

May 8, 2008

Integrating Vault and Fortress with Windows PowerShell: Vault-aware Prompt

I've been toying with the idea of integrating Fortress and Vault into Windows PowerShell. PowerShell is, at heart, a scripting wrapper for .NET libraries. Combining that with the Vault Client API (or the equivalent Fortress Client API) seems like a no-brainer.

There are a lot of ways to go here:

  • Creating a provider that would enable Vault/Fortress repositories to be browsed as a file system. You could then just copy files to check them in and out, etc.
  • Re-writing the Vault/Fortress Command Line Client as a series of PowerShell cmdlets would be a reasonably straightforward task.
  • Any number of simple helper functions and convenience commands can be created

For today, not having done and PowerShell scripting before, I'm opting for the last one.

In particular, when I'm in PowerShell, it would be nice to know with Vault/Fortress folder is mapped to my current directory. This is particularly helpful when I have multiple branches of a project in play, and want to see which branch I'm playing with right now.

In action, it looks like this:

At first, we see a typical PowerShell prompt.
PowerShell prompt showing no mapping
In my Documents directory, roughly the same thing.
PowerShell prompt showing no mapping
But Documents\dw-sourcegear maps to the Fortress folder managing sourcegear.com's files. And we see that mapping, grayed, above the prompt.
PowerShell prompt showing Fortress SCC mapping to current directory
Moving further into the tree, the Fortress mapping follows along.
PowerShell prompt showing Fortress SCC mapping to current directory

The fun part is that this took just a few lines of PowerShell code. The API does all the heavy lifting.

What's the catch? This is not the most-comprehensive approach I could have taken -- it's more a proof of concept. We're piggybacking on the Vault/Fortress Command-Line Client's saved login info, so you must have run vault.exe with the REMEMBERLOGIN option at some point. We're also tied to the previously-selected repository.

Correcting those limitations, or implementing the other possibilities mentioned above, is left as an exercise to the reader (or maybe the writer, given a decent chunk of free time)...

The code itself:

## Display SourceGear Fortress/Vault folder mapped to the current directory
## Paul Roub <paul.roub@sourcegear.com>
##

#  did we successfully log in?
$sgLoggedIn = $false 

#  at start up -- attempt to load the Vault lib and log in
#
#  Vault users -- change "Fortress Client" below to "Vault Client"
#
[void] [System.Reflection.Assembly]::LoadFrom($ENV:ProgramFiles + 
   '\SourceGear\Fortress Client\VaultClientIntegrationLib.dll')
$sgLoaded = $true

#  Log in based on previously-saved (via vault.exe) credentials.  Will attach to 
#  the previously-selected repository
#
[VaultClientIntegrationLib.ServerOperations]::Login("Client", $true, $true)
$sgLoggedIn = $true

#  Replace the default command prompt.  This should be loaded via 
#  your profile.ps1 to work properly.
#
function prompt 
{
   #  set the window title to our current dir
   $host.ui.RawUI.WindowTitle = $(get-location)
   
   #  I like a blank line after the last command.  If you don't, 
   #  comment this out.
   Write-Host ""
   
   #  If we didn't log in, don't bother attempting other Fortress operations
   if ($sgLoggedIn)
   {
      #  If there is no mapped folder here, an exception will be thrown.
      #  Catch it, note the lack of a mapping, and continue.
      trap [Exception] 
      {
         $sgFolder = $false
         continue;
      }
      
      #  Grab the mapped folder as an object
      $sgFolder = 
        [VaultClientIntegrationLib.RepositoryUtil]::FindVaultFolderAtReposOrLocalPath($pwd)
      
      if ($sgFolder)
      {
         #  Get the full repository path, and display it in gray above 
         #  the regular prompt
         $sgPath = $sgFolder.FullPath
         $pval = "(" + $sgPath + ")" 
         Write-Host ($pval) --foregroundcolor Gray
      }
   }
   
   #  Whatever we return will be displayed as the remainder of the prompt
   "PS> "
}

March 10, 2008

SD West - Jeremy's scoreboard

SD West was exhausting, and a lot of fun. Both of which are to be expected from a good show.

Personally, it was great to talk to so many customers (and potential customers). I have pages of scribbled notes and ideas, pulled straight from those talks. Thanks!

The Jolt Awards, as hosted by (Dread Pirate) Robert X. Cringely, were a model for all awards presentations to come. By which I mean:

  1. All awards shows should move that quickly
  2. SourceGear products should be nominated whenever possible

We're proud to say that DiffMerge won a Jolt Productivity Award in the "Change/Config Management" category.

But what you really want to know is, how well did Jeremy fare in his first semi-professional Guitar Hero outing?

Not badly at all. 30-plus wins, 5 losses. Or, I should say, losses to 5 opponents. One kept coming back to stomp Jeremy some more (although Jeremy did win one of the rematches).

That would be Mike. First win (the one we counted):

Mike: 198,692 - Jeremy: 177,175

Jeremy was also stomped by:

Brian: 90031, Jeremy: 76778

Mark: 162,814 - Jeremy: 162,329

Will: 85,357 - Jeremy: 76285

Kevin: 81055, Jeremy: 62373

(his wife is, arguably, very proud)

And finally, the Evil Mastermind guitar was raffled off Thursday evening. In a perfect world, we wanted it to end up in the hands of someone who would play it — not flip it on eBay in a few days. In an even more-perfect world, someone with a son learning to play guitar himself. Hey, how about a whole family of guitar players?

And that's how it turned out.

Congratulations to Mark and his family!

March 4, 2008

SourceGear at SD West - the calm before the storm

The booth's set up, the literature's out, and we're performing rigorous QA on Guitar Hero.

T-Shirts? Yes, we have a few. New ones, in fact.

And of course we're all set for the giveaway...

Our friendly neighborhood print ad salesperson insisted on this one. I think I did a decent job of appearing sort-of-comfortable having my picture taken.

The plan is to update that Flickr set with Guitar Hero winners, etc. throughout the week. And blog said photos, as well. Stay tuned.

February 28, 2008

The Evil Mastermind guitars. You heard me.

I caused some trouble recently... mostly for myself, as it turns out.

We were discussing plans for the trade shows SourceGear is attending this year, and had more-or-less settled on a 'beat Jeremy at Guitar Hero contest' as the main attention-getting activity. But we also wanted a giveaway, a raffle open to all attendees.

In the past, that's taken the form of Wiis, Xboxes, etc. Always fun, but everyone's doing it.

And then I noticed that a certain guitar manufacturer now has a custom shop wherein you can upload your own artwork, which will then end up as custom graphics on your specially-built guitar. The thought of giving away an Evil Mastermind guitar was just too appealing. Given that Eric and I have shared interests in this area, we quickly agreed that we had to do this.

John Woolley, graphic genius and mastermind of the Evil Mastermind, even did a all-new "painted" rendition of T.E.M. for the occasion.

Sadly, Big Guitar Company has something like a 20-week lead time, and it took almost 3 weeks for them to return phone calls asking if that could be improved on — by which time, it was really too late to be ready for SD West.

But we found another company, Art Guitar, who do essentially the same job, but on existing guitars. And in much less than 20 weeks.

So what guitar, now that we weren't bound to a single manufacturer? I chose a Schecter PT Custom because (a) it's a plain, black top, making a nice canvas and (b) well,

That's why. Turns out they're a bit hard to find at the moment. Scored one from eBay, one from a music store, still waiting for more.

After scrambling to find the first couple of PTs we'd need, it was disassembly time (easier for Art Guitar if we just send bodies).

So what arrived as this:

was stripped by Shaw and myself to this (as modeled by Shaw):

Off to Art Guitar for a few weeks, and this morning the finished product arrived:

Actually, two (one's for TechEd):

So once again, I got to spend the morning with soldering iron and screwdrivers in hand, and we end up with this:

It's all set to be picked up by FedEx this afternoon, off to the show, just in time:

Want to win it, case and all? Stop by SourceGear's booth (#308) at SD West next week and we'll tell you when to pick up your raffle ticket.

And don't forget to beat Jeremy and score some free Fortress licenses -- he's good, but he's not that good.

February 20, 2008

Vault 4.1 and Fortress 1.1 released

SourceGear Vault 4.1 and Fortress 1.1 were released today. These maintenance releases are both free upgrades for users of Vault 4.0 and Fortress 1.0, respectively. We highly recommend that you upgrade, as these releases contain many performance and stability improvements, plus some very cool new features.

SourceGear would like to thank our user community for all of the testing, suggestions and feedback during our Beta period.

So what's new? Visual Studio 2008 integration, Work Item tracking in the standalone client, more integration, easier image handling, and more.

What's new in Fortress 1.1

(See the release notes for full details)

Tag Clouds
Tag clouds are an exciting new feature in Fortress that allows you to add a few keywords to work items, and then see a graphical depiction of the distribution of those keywords. Similarly, you can view a graphical depiction of the distribution of work items among assignees, milestones, and other work item fields.
New Query Page and support for Saved Queries
The web client has a new Query page and allows you to create, run, edit and delete saved queries.
GUI based work item tracking
The Stand-alone Windows client now has a GUI based bug tracking client.
Easy image attachments
The Windows GUI client, Visual Studio Enhanced Client and the Eclipse client all support pasting image attachments from the clipboard. In addition, a limited image editor is included in order to crop or annotate the image. Also, attachments may be added using drag-and-drop functionality.

What's new in Vault 4.1 (and also in Fortress)

(See the release notes for full details)

Visual Studio 2008 support
This is the first version of Vault that offers integration with Visual Studio 2008.
Legacy IDE options
Users requested a few options available in the Classic Client be implemented in the VS Enhanced Client. The two options that have been implemented are Get Latest when a solution is opened and Check In when a solution is closed.
VS Enhanced Context Menus
The VS Enhanced Client's context menus were rearranged in order to provide easier access to commonly used operations.
Better progress indicators In the VS Enhanced client
The Add Solution and Check In commands now give status as to what is occurring.
Refresh Source Control Status
In the VS Enhanced client, there's a new menu item in the File->Vault submenu to refresh all source control statuses to update file icons in the Solution Explorer.
64 bit support
We've corrected the installer issue that was preventing server installs on a 64 bit OS. IIS will still need to be put into 32 bit mode.
Ant Tasks
Tasks are included for calling Vault source control operations from the Ant build tool.
Java CLC
For users on non-Windows platforms, there is now a Java based command line client.
New Web Diff Page
The Web Diff page has been rewritten to make it more useful for code reviews.

January 16, 2008

SourceGear | Fortress | release 1.1b2

The new betas are out! Fortress 1.1b2 and Vault 4.1b2 dropped today -- see the release notes here, download Fortress 1.1b2, or download Vault 4.1b2.

Vault Changes since Beta 1:

VS.Net Context Menus
The VS.Net Client's context menus were rearranged in order to provide easier access to commonly used operations.
Better progress indicators In the VS.Net client
The Add Solution and Check In commands now give status as to what is occurring.
Refresh Source Control Status
In the VS.Net client, there's a new menu item in the File->Fortress submenu to refresh all source control statuses to update file icons in the Solution Explorer.
New Look
After 5 years with the same icons, Vault now has a new icon set.
64 bit support
We've corrected the installer issue that was preventing server installs on a 64 bit OS. IIS will still need to be put into 32 bit mode.
Project Rename
Projects can now be renamed in the Visual Studio client.
Fix for an unregistered dll
Numerous people upgrading from the 4.0 client to the first 4.1 beta noted exceptions caused by an unregistered dll. This beta should fix those issues.
Fixed Eclipse 3.3 thread access errors
Eclipse 3.3 caused some problems on startup, giving a thread access error.
Other bug fixes
Lots of other minor tweaks and fixes to issues reported in Beta 1.

Fortress Changes since Beta 1:

New GUI based work item tracking window
The new work item tracking window allows you to query, add, edit, and browse work items without leaving the Fortress Client. Also, the new work item tracking window provides all of that capability while browsing for bugs to update with a source control check in.
Image Paste and Edit
The Image paste and edit functionality which was only available in the Eclipse client for the first beta is now available in the Fortress Visual Studio client and the standalone GUI. In addition, work item attachments can be added by dragging files onto the attachment control.

December 21, 2007

DiffMerge is a Jolt Awards finalist

A few weeks ago, we submitted SourceGear DiffMerge 3.1 for Jolt Award consideration -- because, for lack of a better turn of phrase, we think it's really cool. If you're not familiar, DiffMerge is a best-of-breed compare/merge tool for files and folders, running under Windows, Mac OS X, and Linux. And it's free.

And this week we find that DiffMerge is a finalist in the Change/Config Management category. So congrats to Jeff Hostetler (the man behind DiffMerge) -- and we'll see what happens next.

December 11, 2007

Vault 4.0.6 and Fortress 1.0.6 released, with critical updates

If you're currently using Vault 4.0.x or Fortress 1.0.x, please upgrade to 4.0.6 or 1.0.6. These fix two issues that, though unusual, are no fun whatsoever when they occur.

See the release notes (Vault and Fortress) for more info.

Download Vault here, Fortress here.

December 10, 2007

SourceGear sponsoring Tucson.NET in December

We're sponsoring the December 19th meeting of the Tucson .NET User Group -- the usual deal: T-shirts, Fortress license giveaways, comics, and of course food and beverage money.

As always, if you're looking for a sponsor for your next .NET, Java, or Eclipse user group meeting, drop me a line at paul.roub@sourcegear.com.

Paul Roub
SourceGear
Work:
115 North Neil St. #408
Champaign, IL 61820-4024
USA
work: +1-217-356-0105 x722