Kenneth Cochran
Kenneth Cochran

Reputation: 12064

How to remove/rollback multiple disjoint changesets from a release?

The team I'm on uses TFS 2015 for version control and currently uses a very simple development workflow. All changesets are committed to a development branch and only merged into a main branch just before a release. We've recently recognized the deficiency of this workflow and have looked at branching strategies that help prevent some of the issues we've been experiencing.

However, right now there are several changesets related to a feature that just isn't ready for production and I've been asked to find a way to prevent those changes from leaking into the next release. I've made several attempts at using TFS's rollback feature but it's only available for contiguous changesets. I've tried combining multiple rollbacks into a single changeset but it seems TFS actively prevents this.

I've also looked into branching from a specific changeset before the changes were made, then cherry picking which changes to merge into that branch but I'm not sure if this is even possible with TFS.

Is there a good strategy for solving this problem?

I'm also considered a "release toggle" as a last resort but there were changes made to communication protocols that may make this difficult.

Upvotes: 1

Views: 627

Answers (1)

Daniel Mann
Daniel Mann

Reputation: 59020

This is a problem with any source control tool. Your only option is to manually, painfully "unmerge" the code.

In the future, consider isolating features that are in active development behind feature flags so the feature can be toggled off in the event that you need to release a new build of the software before the feature is complete.

Upvotes: 2

Related Questions