Git Product home page Git Product logo

tfsprod's Introduction

Welcome to the TFS Productivity Tools project

This package was written as a part of a job in Experis.

The TFS Productivity Tools project was designed to provide TFS administrators with helper extensions for Source Control or Work Item Tracking tasks.

For running these extensions the installation of Visual Studio Professional is required.
The extensions was tested with Visual Studio 2012 only.

Tool description Button name Runs from Window
Modify Work Item link types. Change Work Item link types Team Explorer
Completely destroy Work Items. Destroy Work Items Query Results
Export Work Items to Microsoft Word document. Export to Microsoft Word Team Explorer
Provide workaround for several merge features not implemented by TFS:
1.TFS merge leads to bulk check-in operation that puts files from all previous changesets into one big merge changeset.
2.TFS allows only for consecutive changesets being cherry-peeked by merge operation.
3.TFS doesn’t allow choosing changesets for cherry-peek merge by selecting work items.
4.TFS merge dialog doesn’t have “force” and “baseless” options.
Merge Work Items,
Merge Changesets
Source Control Explorer, Query Results
Emulate commandline task and write outputs to Output window:
tf.exe get /recursive /preview "itemspec"
Emulate Get-Preview Source Control Explorer
1. Update modification time for checked-out files to their latest check-in time.
2. Directly modify changeset's check-in time in TFS database.
Update Modification Time, Update Changeset Time Source Control Explorer, History
1. Link changesets to work items (many-to-many)
2. Copy changeset comment to link comment
Link Changesets to Work Item, Copy Changeset comments History, Query Results

Installation

For installing anyone of the extensions double-click on VSIX file and follow the installer instructions.

image001

ChangeLinkTypes

This extension modifies link types between the Work Items returned from Work Item query.
To execute it select any query under Work Items node in Team Explorer window and click on "Change Query Link Types".

ChangeLinkTypes

After that, in next dialog choose original and new wanted link types.

image003

DestroyWorkItems

This extension completely destroys (not closes) Work Items returned from Work Item query.
To execute it select a number of Work Items in Query Results window and click on "Destroy Work Items".

DestroyWorkItems

Export2Word

This extension exports Work Items returned from Work Item query to Microsoft Word document in paragraph style. It uses MS Office Interop package and requires a local installation of Word.
To execute it select any query under Work Items node in Team Explorer window and click on "Export to Microsoft Word".

Export2Word

ExtendedMerge

Extended Merge extension provides workaround for several merge features not implemented by TFS:

  1. TFS merge leads to bulk check-in operation that puts files from all previous changesets into one big merge changeset.
  2. TFS allows only for consecutive changesets being cherry-peeked by merge operation.
  3. TFS doesn’t allow choosing changesets for cherry-peek merge by selecting work items.
  4. TFS merge dialog doesn’t have “force” and “baseless” options.

Initializing ExtendedMerge extension

The list of merge candidates can be obtained in two ways:

  1. From Source Control Explorer window.
    In this case all history changesets for a specific server path are parsed.
    image006
  2. From Query Results window.
    In this case all changesets, linked to the selected Work Items are parsed.
    image007

After initialization stage extension opens Visual Studio tool window pane with a grid that shows useful information about parsed changesets:

  • Checked/unchecked status.
  • Work item ID.
  • Changeset ID.
  • Changeset check-in date
  • Changeset creator.
  • The change types this changeset contains.
  • Possible merge options
    • None – merge is impossible (don’t mess with “discard” commandline option)
    • Baseless – baseless merge
    • Force – force merge
    • Candidate – regular merge
  • Merge source path (can be modified).
  • Changeset comment field.

image008

The Merge Target Location field contains the path to a folder or a branch in source control.

Merge types are calculated based on shared Merge Target Location path and an individual changeset Source Path.

Running ExtendedMerge extension

Extension runs all actions from toolbar buttons (some of them are duplicated on grid context menu also).

image009

Menu item name Menu item description
Link to Work Items When checking in merge results link new changesets to work items the same way as they were linked in original changesets.
Normal Merge Do regular merge based on merge candidates.
Conservative Merge Use “Conservative” merge option. It produces more merge conflicts.
Refresh Refill changeset merge types.
Merge Do merge.
Resolve Show merge conflicts.
Changeset details Show changeset details.
Work Item details Show Work Item details.
Navigate to Server Path Navigate to server path in Source Control Explorer.
Edit Server Path Edit server paths (one or multiple).
Copy to Clipboard Copy selected changeset details to clipboard.
Mark All Items Check all grid items.
Unmark All Items Uncheck all grid items.

Resolving merge conflicts

During merge operation merge conflicts can occur.
In this case click on OK button and resolve conflicts with standard TFS Resolve Conflicts dialog.

image010

image011

GetPreview

This extension emulates TFS commandline operation: tf.exe get /recursive /preview "itemspec"
To execute it select a path in Source Control Explorer window and click on "Emulate Get-Preview".

The results are print to Output window.

GetPreview

ModifyCheckinDate

This extension consists from 2 parts:

  1. Updates modification time for checked-out files to their latest check-in time.
    It is accessible from Source Control window & History window.
  2. Directly modifies changeset's check-in time in TFS database.
    It actually runs SQL statement: UPDATE tbl_Changeset SET CreationDate=’?’ WHERE ChangeSetId=‘?’
    It is accessible from History window.

image013

image014

Release Notes

The ExtendedMerge uses a number of internal Microsoft classes. It can possibly lead to some tool malfunction in the next TFS versions:

Feature Classes
Show browse server folder dialog Microsoft.TeamFoundation.Build.Controls.VersionControlHelper.ShowServerFolderBrowser
Show merge progress dialog Microsoft.TeamFoundation.VersionControl.Controls.ProgressMerge
Show resolve conflicts dialog Microsoft.TeamFoundation.VersionControl.Controls.DialogResolveConflicts
Show WorkItem picker dialog Microsoft.TeamFoundation.WorkItemTracking.Controls.WorkItemPickerDialog

Extension packages used icons from GNOME project: http://art.gnome.org/themes/icon

tfsprod's People

Contributors

mirik123 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.