28

Even after installing Productivity Power Tools extension for Visual Studio 2017 I still cannot run tfpt.exe to execute the command suggested on this post:

C:\Development> tfpt unshelve "ShevesetName;UserName" /migrate /source:"$/Project/Source" /target:"$/Project/Target"

Where can I find this program?

Igor Kondrasovas
  • 1,479
  • 4
  • 19
  • 36

5 Answers5

14

The Productivity Power Tools are not the same thing as the TFS Power Tools, so that's why installing it didn't help.

There is no set of TFS 2017 Power Tools. From the TFS 2017 release notes:

Issue: No Power Tools have been released for TFS 2017.

Workaround: We are excited to let you know that most of the previous Power Tools have been integrated into TFS 2017. The Process Template Editor is one that has not been integrated, but we are going to publish a Process Template Editor tool for TFS 2017 to the Visual Studio Gallery shortly after TFS 2017 is available. We will provide the link here as soon as it’s published

Daniel Mann
  • 57,011
  • 13
  • 100
  • 120
  • 12
    So, where are the tf and tfpt commands (they are unrelated to the template editor, and installed by the Team Foundation Power Tools). – BrainSlugs83 Nov 29 '17 at 18:58
  • So it's been 1.5 years since they said they would provide a link, and I still can't find it. Anyone find it? – Jroonk Dec 15 '18 at 02:27
  • I found this, but have not figured out how to run the command in question: https://marketplace.visualstudio.com/items?itemName=KarthikBalasubramanianMSFT.TFSProcessTemplateEditor – Jroonk Dec 15 '18 at 02:35
8

Just as Daniel said, they are two entirely different things. A supplement :TFS 2017 Process Template Editor is available

In your case, you are trying to use the unshelve command to unshelve a shelveset to another branch in TFS. As a workaround you could use tf Unshelve and Rename command to achieve this in two steps.

Or just install a earlier version VS and Power Tools such as VS2015 and Microsoft Visual Studio Team Foundation Server 2015 Power Tools. After all you just need to match the version of the TFS Power Tools with your Visual Studio client.

PatrickLu-MSFT
  • 49,478
  • 5
  • 35
  • 62
  • 14
    care to elaborate on the workaround for unshelving to another branch? – StingyJack May 13 '17 at 20:22
  • I want to believe that this feature is finally present (and usable), but nothing in the docs talks about unshelving to a different branch. – StingyJack May 13 '17 at 20:28
  • 3
    tf Unshelve and Rename do not appear capable of doing the same thing as tfpt unshelve migrate. From the Rename documentation link: "You cannot rename an item if...The new name already exists" which makes sense for a move, but not a migrate, where the developer is very likely to be updating an existing item. I'm not seeing a way to get this behavior in 2017, which is unfortunate, because that was a very useful edge case that came up a couple times a year for me. – icrf Aug 07 '17 at 20:59
  • 1
    This is another clear indication that Microsoft wants us to move to git. Git support in TFS onprem and in Visual Studio Team Services is way better then Microsoft's own tfs vcs. Even Microsoft is preferring git over tfs vc for its own developemt. – bitbonk Sep 21 '17 at 12:45
  • 1
    I hope that last comment is not true, because any source control that is so easily corruptible (VSS6.0) or easily/inadvertently allows destruction of history (git) is really not acceptable for production use. But the difficulty in coalescing a release out of a dvcs would explain why there are so many constant regressions and still unfixed bugs in VS 2017. – StingyJack Oct 14 '17 at 01:29
  • While I don't agree with the comment that git is not acceptable for production use, this is not the answer - if using TFVC, it should be easy to install and use shell extension and command line functionality (for the current version of the VCS/SCM). – ryanwebjackson Oct 27 '17 at 14:28
  • 2
    As already pointed out, Rename is no substitute for tfpt migrate. – Polyfun Nov 13 '17 at 13:39
  • I have tfpt (linked) installed, but nowhere on any drive is tfpt.exe, that I can find. -- Did it not really install itself because I don't have VS 2015, so it just installed nothing? -- That's really sad. – BrainSlugs83 Feb 25 '18 at 20:56
  • Git is used in more production environments than TFS would ever be. Microsoft has also recognized this and is in fact moving to Git, as seen with VS Code for example. – Jakub Keller Oct 10 '18 at 14:30
  • @StingyJack drinks the Microsoft TFS kool-aid, when Microsoft themselves have left the reservation. You can have your opinion about Git, doesn't make it truth! LOL. Unfixed bugs aren't a symptom of a VCS, they are a symptom of a totally different problem... resources or lack thereof, or disagreement with severity of a bug (in VS2017) – enorl76 Dec 08 '18 at 18:17
  • @enorl76 - I like not having to worry about a VCS corrupting source code, and not having to worry about someone tying to wreck its history (even inadvertently), and most importantly I like a VCS that I dont really have to think about - or type a single CLI instruction - for 95% of the time. Checkout, change, checkin, then merge from time to time. Having a centralized VCS is also nice when you have to merge changes for someone else if they aren't available. I use git also, but its not very forgiving for mistakes, and requires far too much knowledge investment for daily tasks. – StingyJack Dec 09 '18 at 02:49
  • @enorl76 - I totally agree about the resources. I was threatened just yesterday with the msdn code of conduct for pointing out that they continue to deliver buggy features and arent fixing the existing ones, and that happening was the result of "someone not using their brain" when planning. I was asked to "refrain from insults". I've also reported several hundred feedback items, and been suspended from that website for complaining about the quality of both product and service. Easier for MSFT to do that than to actually fix the bugs. Drinking the kool-aid stopped about 2 years ago for me. – StingyJack Dec 09 '18 at 03:11
  • 4
    I added the unshelve-to-branch functionality to my Visual Studio extension called **MultiMerge**. Check this [link](https://marketplace.visualstudio.com/items?itemName=Jesusfan.MultiMerge2017) or use the Tools and Extensions in Visual Studio to check it out – Dutchman Aug 09 '19 at 01:20
3

Possible workaround, which helped me!

  1. Create a new workspace and do not download all the files.
  2. Unshelve your changes to this new workspace, which would result in having only the modified files from your current branch.
  3. Compare and manually merge your changes into the other branch.
Sabari
  • 31
  • 3
  • This is not a "possible workaround". This **is** the way to do it. your post should be the answer to all these issues. All developers should have at least 2 namespaces. how do you work otherwise? Most of the time you work on a project, then a bug comes in. you don't want to mix these... I work in multiple workspaces all the time. 1 is for bugs, one for merges, one for daily work. – T.S. Feb 12 '20 at 01:09
0

You can use this VisualStudio extension witch does exacly what you want:

MultiMerge - https://marketplace.visualstudio.com/items?itemName=Jesusfan.MultiMerge2022

This extension allow you to unshelve to other branch.

-4

You can use git-tfs to accomplish this. The steps you should perform are (after git and git-tfs have been installed):

  1. create a git branch from the shelveset (git_branch_a).
  2. initialize a git branch (git_branch_b) based on the TFS target branch (tfs_branch_b).
  3. merge the git_branch_a into git_branch_b.
  4. based on the git_branch_b create a shelveset.
  5. the new shelveset can now be unshelved in the tfs_branch_b.
stefan p.
  • 99
  • 5
  • The OP is using tfs vc, not Git. Not to mention that the difference in branching methodology between Git and tfs vc would to require 2 separate Git repos to get the files into the new path that represents a tfs vc branch. – Josh Gust Jul 03 '18 at 19:37
  • To @JoshGust and other downvoters: It seems you are confused about what git-tfs is. It is an independent project that predates git support in TFS by years and has no relation to it. Instead it creates and maintains a local git repo for a project otherwise tracked with TFS VC which allows for much bigger feats than merely moving shelvesets around. – Tomek Szpakowicz Jan 08 '21 at 13:17