Posted by Jeremy Mon, 28 Jul 2008 14:48:14 GMT


We’ve been talking about Shelve for a while, and lots of customers have been curious about how Shelve will work in Vault and Fortress.  For Shelve, we’re writing the user documentation first, before we write a single line of code.  This has been a really helpful exercise, since we’ve had to talk through a lot of issues that would have been surprises in a more technical-focused spec.  The goal of this documentation is clarity and completeness.  Please complain in the comments section if anything is confusing at all. 


Shelve is a feature which allows you to upload a set of changes in your working folder to the Vault server without committing them. In order to commit these shelved changes (called a shelveset), you must first unshelve them to a working folder. After unshelving the changes, you may commit them just as you would a normal changeset. Some cases where shelve is useful are:

  1. Archiving changes. If you are interrupted while working on a task, shelve allows you to set aside your changes and come back to them at a later time.
  2. Sharing change before checkin (code review). All shelvesets are visible to all users with access to that repository. By informing your reviewers of the name of your shelveset, they can unshelve it to their working folder, or view the shelveset in the web client.

What kinds of changes can be shelved?

All pending change types can be shelved. Special care should be used when shelving Rollback, as versions may have been added since the Rollback was shelved. On committing an unshelved Rollback, the contents of those versions would be rolled back as well.

Finding the Shelve Functions.

You will find Shelve functions in the following places

  1. The Pending Changes Control. This control is found in the Visual Studio Enhanced Client (How to bring it up), the Eclipse client (where to find it) and the standalone GUI client (in the Pending Changes tab). There are two shelve related buttons. You may also bring up the Shelve Changes dialog by selecting a set of changes and selecting Shelve… from the context menu.
    1. Shelve… This button will bring up the Shelve Changes dialog.
    2. Unshelve… This button will bring up the Find Shelveset dialog.
  2. View Shelved Changes. This menu item is available in the View menu of the standalone GUI client. This menu item will bring up the Find Shelveset dialog.
  3. The File and Folder lists. The file and folder controls in the standalone GUI client will have context menu items to bring up the Shelve Changes dialog.
  4. The Command Line Client/NAnt/Ant. These components all have shelve and unshelve commands.
  5. Source Control Web Client. Each repository will have a page for Shelved changes. Here you may view the shelves, their details and diff their file changes.

The Shelve Changes Dialog


This dialog is used to create a shelveset from a set of pending changes. In this dialog, you will see the list of currently pended changes. If you brought this dialog up using the context menu in the Pending Changes control, you will only see the list of changes that you had selected there. You may enter the following information about your new shelveset.

  1. Shelveset name. This name must be unique among all of your shelvesets. If you reuse a shelveset name, you will be prompted to confirm that you wish to delete the existing shelveset and create a new one with the contents you select here.
  2. Changes. In the change list section, any changes that are checked will be included in the shelveset.
  3. Comment. You may enter a comment that will be retained inside this shelveset.
  4. Work Items (Fortress only). You may select a list of work items to update. The work items will link back to this shelveset. This way, any other users who wish to review your changes can use the work item as the hub to find all of the relevant shelvesets.
  5. Undo changes in my working folder. This checkbox will inform Vault to undo the changes when the shelveset has been uploaded. The default is unchecked. You may change the default setting for this checkbox in the Options dialog. 

The Find Shelveset Dialog


This dialog is used to browse the shelvesets for a repository and get basic details about them. The controls are as follows:

  1. The User dropdown. This dropdown will display a list of all active users with access to the repository. Your user name is selected by default in this dialog. Selecting the first item in the dropdown (named “all”) will show all shelvesets from all users.
  2. The Find Button. Clicking this button will populate the Shelveset list for the user selected in the user dropdown.
  3. The Shelveset List. This list will display all of the shelvesets for a selected user. The displayed columns are shelveset name, date, and comment. Selecting a shelveset in this list will activate the Details button. You can unshelve the selected shelveset through the Shelveset Details dialog (opened by selecting a shelveset and clicking the Details button). The following operations are available in the context menu of The Shelveset List.
    1. Details. View the details for the shelveset. (Double-clicking an item will also activate this action.)
    2. Rename. Rename the shelveset. Renaming a shelveset will not affect the shelveset creation time. You may only rename your shelvesets. (F2 is a shortcut for this action.)
    3. Delete. Delete the shelveset. You many only delete your shelvesets. (The delete key is a shortcut for this action.)

When Diffing shelvesets, the Find Shelvesets dialog expands to allow you to select two shelvesets.  The Diff function will fetch both shelvesets to a temporary directory and perform a folder diff.


Shelveset Details


This dialog will display the contents of a shelveset and allow you to unshelve it. For more help on unshelving a shelveset, see “How do I unshelve my changes?”. Please note that a shelveset may contain changes to paths that you have been denied permission to see by the Folder Security settings in the admin web client. This dialog will only show changes that you have permission to view. A warning dialog will be shown to alert you when items you did not have permission to view have been omitted from the details you are about to view. Unshelving the shelveset will only unshelve changes that you have permission to view.

This dialog has the following controls:

  1. Shelveset name
  2. Shelveset owner
  3. Shelveset comment
  4. Shelveset time.
  5. Web Client link. Clicking this link will open a web browser to this shelveset in the Source Control web client. Right-clicking this link will present a context menu to Copy the URL to the web client. Emailing this URL is another good way to facilitate a code review of this shelveset.
  6. Work Item links (Fortress Only). A list of links to work items that were referenced by the shelveset. Basic information about these items will be listed along with a link. Clicking any of these links will open a item browsing dialog to the referenced work item in the Item Tracking client. If an associated work item has been deleted by an administrator, it will not appear in this list.
  7. Automatically delete shelveset after I unshelve it. This checkbox will cause the client to delete the shelveset after it has been successfully unshelved. If any of the files could not be unshelved or if there were any namespace conflicts during the unshelve process, the shelveset will not be deleted. This checkbox is only enabled if you are the owner of the shelveset. This checkbox will be disabled unless all changes in the Shelveset contents are checked for unshelving. This checkbox will also be disabled if changes have been omitted from the contents due to permissions.
  8. Shelveset contents. This control will list all of the pending changes. When the unshelve button is clicked, only items which are checked in this control will be unshelved. The following details will show in this list
    1. Name – the name of the effected folder or file.
    2. Repository Path. This is the repository path at the time of shelve.
    3. Details
    4. Pending Change Type
    5. Comment. This is the comment put on this pending change before it was shelved.

The following operation is available from the context menu.

  1. Diff. If a pending change has file content changes associated with it, you may choose this menu item to bring up the Diff dialog.
  2. View. This item will allow you to view edited or new files (add file operations). Choosing this dialog will bring up the View dialog.

How to unshelve changes

Once you’ve used the Unshelve button in the Shelveset Details dialog, the unshelve process will begin. You will be asked to make decisions when complications arise in the unshelve process. Any of these complications will negate the “Automatically delete shelveset after I unshelve it” setting. Some complications are:

  1. There is no working folder set for the destination of one of the items in a shelveset. You will be prompted to set a working folder, or to unshelve to non-working folder. No baseline information will be set in the non-working folder case, so you will not be able to check in that change.
  2. A newer version of a file has been checked in since the change was shelved. The file will be unshelved, and the status of the file will be Needs Merge.
  3. There is an edited file in the working folder at the location. You will be prompted with the same prompt dialog used in the get latest process. You may Diff the files, Attempt Automatic merge, Do Nothing, or Overwrite the files.
  4. The file no longer has the same name as it did when it was shelved. In this case, the unshelve process will unshelve the change into a file with the new name.
  5. The file is no longer in the same location that it was when it was shelved. If its new location can be determined, then it will be unshelved to the new location. If the new location cannot be determined, you will be prompted for a location to put the file as a non-working folder unshelve. You will not be able to directly check in the file from the non-working folder.


Second Customer Conference Call - June 19th

Posted by Jeremy Wed, 11 Jun 2008 13:32:00 GMT

The last customer conference call was a big success, so we’re doing it again.

This time around, I would like to discuss two features that we’re currently investigating, “Shelve” (a feature to commit changesets to a private location), and a redesign of the Fortress Web Client to incorporate AJAX capabilities.

The details:

  • Date: June 19th 2008 at 3:00 PM US Central time
  • Duration: An hour at most.
  • How to sign up: Email to sign up to attend. Space is limited, but if there’s sufficient demand, we’ll add another date and time.

no comments

TechEd reminder and our new releases 4.1.2 and 1.1.2 and DiffMerge 3.2

Posted by Jeremy Thu, 29 May 2008 16:33:00 GMT

Progress continues, as we’ve released our newest version of Vault and Fortress. You can download and read release notes of our new versions over here.

The highlight changes are:

  • New 64-bit server installer. There is now a native 64-bit build of the server.
  • IIS7 is now supported without turning on the IIS6 compatibility mode.
  • The client install is no longer a component of the server install. At the end of the server installation, you will be prompted to run the client install separately. The server and the client must be uninstalled independently as well.
  • New Cruise Control.Net plugin. This new plugin offers fewer login/logout requests on the server, as well as performance and accuracy improvements.
  • In the stand-alone GUI client, pending a delete for a file no longer deletes the working folder copy automatically. There is a checkbox in the delete dialog to control this behavior.
  • DiffMerge got the ability to switch between vertical and horizontal display of the files being diffed.

It’s not a major change, but our VSIP client got a lot faster in this release as well.

In marketing news, we will be at TechEd next week, and I’ll be taking on all challengers at Guitar Hero with Fortress Licenses and pride on the line. I need to practice this weekend, since I haven’t played much since SDWest.

no comments

SourceGear Customer Conference Call April 16th

Posted by Jeremy Wed, 09 Apr 2008 13:13:00 GMT

As I’ve repeated numerous times in the Vault Blog, one of my goals is for SourceGear to get better at communicating with customers. We spend a lot of time on the support forum talking to customers who are having trouble. We also spend time talking to potential customers with our online demos. Rarely do we get a chance to talk to customers when there isn’t an urgent problem. To remedy that, I’d like to announce the first SourceGear Customer Conference Call.

The goal of the conference call is to hear what’s on your mind, and to give you a chance to give input into the direction of Vault and Fortress. I’m especially interested to know the things that hurt you in little ways every day (like performance problems, for example).

The details:

  • Date: April 16th 2008 at 10:30 US Central time
  • Duration: An hour at most.
  • How to sign up: Email to sign up to attend. Space is limited, but if there’s sufficient demand, we’ll add another date and time.


4.1.1 and 1.1.1 are released

Posted by Jeremy Fri, 28 Mar 2008 10:28:00 GMT

The new features that I think deserve to be specifically mentioned are:

  • Power Toys - Small stand-alone applications that some users will find helpful. You can find out more about them here.
  • The Vault Client API is now fully supported.
  • The Enhanced Client now provides keyboard shortcuts for common operations.

The Power Toys are especially nice, since they give us a chance to meet customer needs in small and focussed ways. Take a look at the new Deploy Wizard, and give us your feedback.

The client API being fully supported was important to me, since we’ve gone to great lengths to give customers something great that they can build on. Also, the source for both the Vault Command Line Client and VaultClientIntegrationLib are included as examples.

Please let us know what you think. You can get the latest release, as always at

no comments

Vault 4.1 and Fortress 1.1 are released

Posted by Jeremy Thu, 21 Feb 2008 08:47:00 GMT

Vault 4.1 and Fortress 1.1 are now available for download. As a reminder, 4.1 and 1.1 are free upgrades for all 4.0 and 1.0 users. I’m very happy with all of the feedback we’ve gotten from the beta users.

You can download the release and see the release notes at:


no comments

SourceGear at SDWest

Posted by Jeremy Tue, 12 Feb 2008 13:48:00 GMT

SourceGear will be at the SDWest trade show on March 3-6 in Santa Clara, CA. Please come see us there at booth #308. I’m really excited to get out and talk directly to customers, and to show off some of the features that set Vault and Fortress apart from the rest of the pack. I’m also excited because we’re having a contest to give away Fortress licenses to anyone who can defeat me at Guitar Hero.

In between practicing Guitar Hero, we’ve entered code freeze for the 4.1 Vault and 1.1 Fortress release. Testing is going well, and we’re very grateful for the comments and suggestions that we’ve gotten from our beta users. In less than two weeks, everyone will be able to enjoy the features that only the beta testers have seen so far.


Vault 4.1 / Fortress 1.1 beta 2 is released

Posted by Paul Roub Thu, 17 Jan 2008 08:27:00 GMT

The new betas are out! Fortress 1.1 beta 2 and Vault 4.1 beta 2 were released yesterday – 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.

Tags , ,  | 3 comments

Did you get the newsletter?

Posted by Jeremy Fri, 28 Dec 2007 09:28:00 GMT

SourceGear recently sent out the first of its quarterly newsletters. Since this is the first mass mailing we’ve done in a long time, we keyed it off of the email addresses we had in our sales system. Since in some companies the person buying Vault may not be the person using Vault, it’s worth it to mention the newsletter here, to see if any developers and managers missed out on it. You can read the first newsletter here.

Some guidelines we tried to follow:

  1. The newsletter should not be too frequent. Quarterly is enough.
  2. The newsletter should be informative. The first one has a feature on the new Image Paste and Edit feature that’s in the Fortress Eclipse client in beta 1, and coming for the Visual Studio client and the standalone Windows GUI for beta 2.
  3. Communication is a two-way street. We want to hear from customers, and have included a poll in the newsletter, as well as a direct email address for the newsletter’s editor.

To sign up to get future newsletters, go to: This will require you to sign in with your email address to our Customer Service Portal, but once that dance is done, you will get fresh information pushed to you every three months or so.

no comments

Beta Secret #2 - Web Diff

Posted by Jeremy Wed, 12 Dec 2007 13:07:00 GMT

One of the goals of the 4.1 development cycle was to begin the process of updating our web client to make it as cool as the web sites that some of our customers are creating as they use Vault and Fortress.

I’ve already blogged about the Tag Clouds, which brought along quite a bit of Dynamic HTML (yes, we’re about 8 years late to the DHTML party). The feature I want to highlight for this post is the new Web Diff page in the Source Control section of the web client.

You can view an example web diff here. Remember to log in using the guest1 through guest9 username with the username as the password. There are quite a few awesome features to talk about.

  • Unified diff. This is the first place in Vault where we’ve shown a Unified Diff. All our other diff tools were concerned with migrating changes between the two versions, so unified was never a good option. Now that it’s in web diff, I love it. You can still load up the traditional side-by-side, but be prepared to scroll.
  • Line Wrapping. This mode will wrap long lines, to reduce scrolling.
  • Lines of context. Select the lines of context also. Please note that the three settings above are saved in a cookie, so that you can always get the view of differences that you want.
  • Version Selection. You can also quickly select the versions of the file to diff from the dropdown.
  • Transaction Details. To get the details for the transaction that created a particular version, you can click the Details link.

All of this was done by Jeff Hostetler, the same developer who brought us the wonderful SourceGear DiffMerge app, which is currently available free of charge.

With all of the changes modernizing the web client, we’re all excited about the release of .Net Framework 3.5, which includes built-in AJAX support. Expect an even richer web client experience in the future.


Older posts: 1 2 3 4 5