What is the equivalent in TFVC of git cherry-pick
Asked Answered
O

3

7

I'm sorry for my question but I'm TFS noob user, what is the equivalent in TFVC (Team Foundation Version Control) of git cherry-pick?

Outfielder answered 22/9, 2016 at 10:45 Comment(1)
#3698030Homeomorphism
E
2

First, create a patch for the changeset that you want to cherry-pick:

tf diff /version:C1234 /format:unified > cherry.patch

(Note: be careful about redirecting to a file from PowerShell. It wants to write UTF-16 files which many programs have a hard time coping with.)

Then apply the patch using patch:

patch -p0 < cherry.patch
Eos answered 23/9, 2016 at 2:8 Comment(4)
Unfortunately this is not recognized. The correct way would be something like tf vc diffPar
What is tf vc diff? The documentation shows this as tf diff, which has not changed since TFS 2005. visualstudio.com/en-gb/docs/tfvc/difference-command (Please provide a link to some documentation if you're going to downvote and edit an answer with a command that doesn't appear to actually exist.)Eos
since they added git functionality, the old way does not work.Par
I've found for a TFVC server that both "tf vc" and "tf" work the same way. Just guessing here, but perhaps if your server has both git and tfvc repos then you must specify, otherwise you don't need to.Dys
M
14

There is one solution that has worked for me.

In TFVC, when you do a merge between 2 branches, there is a radio button where you can select to merge the whole branch or just a particular set of Changesets.

Follow the changeset option.enter image description here

Marillin answered 11/7, 2017 at 18:59 Comment(0)
E
2

First, create a patch for the changeset that you want to cherry-pick:

tf diff /version:C1234 /format:unified > cherry.patch

(Note: be careful about redirecting to a file from PowerShell. It wants to write UTF-16 files which many programs have a hard time coping with.)

Then apply the patch using patch:

patch -p0 < cherry.patch
Eos answered 23/9, 2016 at 2:8 Comment(4)
Unfortunately this is not recognized. The correct way would be something like tf vc diffPar
What is tf vc diff? The documentation shows this as tf diff, which has not changed since TFS 2005. visualstudio.com/en-gb/docs/tfvc/difference-command (Please provide a link to some documentation if you're going to downvote and edit an answer with a command that doesn't appear to actually exist.)Eos
since they added git functionality, the old way does not work.Par
I've found for a TFVC server that both "tf vc" and "tf" work the same way. Just guessing here, but perhaps if your server has both git and tfvc repos then you must specify, otherwise you don't need to.Dys
F
-3

There isn't, really. TFVC and Git are fundamentally different source control paradigms, and you shouldn't try to use them in the same fashion.

In TFVC, cherry picking is considered a bad practice, as are baseless merges (TFVC has hierarchical branches -- a baseless merge is merging between two branches that don't have a parent/child relationship). A merge should typically consist of all of the changes made to the branch, sequentially, up until a given point in time. Although you can merge individual changesets and skip changes you don't want to include, you can't merge multiple non-sequential changesets in one operation.

Farreaching answered 22/9, 2016 at 15:57 Comment(1)
"Although you can merge individual changesets and skip changes you don't want to include" - which is obviously what the OP is asking how to do. "You shouldn't do that" is not a valid answer to "How do I do _____?"Amaleta

© 2022 - 2024 — McMap. All rights reserved.