TFS Top Tip #3: Removing the Resolve Check-In Action from a Work Item

| 8 Comments

I don’t know about you, but I love associating my check-ins with work items using the Pending Changes view, it makes it so easy to maintain requirements traceability and helps me feel less guilty as I’m doing one more thing that I should have been doing for years. 

The only problem with the default definitions for Bug and Task are that if you select the item then by default the “Resolve” check-in action is selected.  This is annoying for me as it the action I want to take in probably about 5% of check-ins.  95% of the time I just want to associate and 90% of the time I forgot that I have to change the default setting and end up going back to the work item and re-activating it.

A bug with the Resolve and Associate actions displayed.  Resolve is the default.

The “Resolve” option is displayed when a state transition in the work item’s workflow is defined as having an action defined for check-in.  Below is the transition section from the MSF Agile Bug:-

<TRANSITION from="Activeto="Resolved">
  <REASONS>
    <DEFAULTREASON value="Fixed" />
    <REASON value="Deferred" />
    <REASON value="Duplicate" />
    <REASON value="As Designed" />
    <REASON value="Unable to Reproduce" />
    <REASON value="Obsolete" />
  </REASONS>
  <FIELDS>
    <FIELD refname="System.AssignedTo">
      <COPY from="fieldfield="System.CreatedBy" />
    </FIELD>
    <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
      <READONLY />
    </FIELD>
    <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
      <READONLY />
    </FIELD>
    <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
      <COPY from="currentuser" />
      <VALIDUSER />
      <REQUIRED />
    </FIELD>
    <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
      <SERVERDEFAULT from="clock" />
    </FIELD>
  </FIELDS>
  <ACTIONS>
    <ACTION value="Microsoft.VSTS.Actions.Checkin" />
  </ACTIONS>

</TRANSITION>

If you remove the actions section from the transition from Active to Resolved transition then the only check-in action available will be “Associate”.  Admittedly, this means that I have to edit the work item after finishing checking in files to move it from Active to Resolved – but I find this works better for me.  I usually leave a little comment in the history as I change the state to say (at a high level) what I did and in the case of bugs any help I need to give to help the fix be verified by the test verification team.

 

8 Comments

Your blog is just a treasure trove of information Martin.

Thanks again.

Does this only impact new projects to be created? Any way to do this on a project that's already active?

Eric,

This will work on an existing project as well as new ones. Use the witimport.exe tool to import into an existing project. (See http://msdn2.microsoft.com/en-us/library/ms253163.aspx) for more information in witimport.

Alternatively, if the command line is not what you like to use then try out the excellent process template editor (http://www.gotdotnet.com/workspaces/workspace.aspx?id=812a68af-5e74-48c6-9623-1a4469142a84).

Hope that helps,

Martin.

Hi Martin,

I'm trying to do the same for the Task workitem, but it does not seem to have a section.
Do you know how is this done for the Task workitem?

I found I could do this, for both Task and Bug but the Process Editor was not reliable for removing Actions. witexport and witimport worked fine.

Where is this file that we need to modify?

This customization is great, but is there a way just to change the default action from 'Resolve' to 'Associate' without removing the 'Resolve' item in the drop-down list?

Where is the XML file for the transition section from the MSF Agile Bug located? Is this VS2008 or will this also work with VS2005?
Thanks.

Archives

Creative Commons License
This blog is licensed under a Creative Commons License.