We have the following scenario:

Changeset #1 is some unfinished buildable checkin
Changeset #2 is a completed small task
Changset #5 completes the work done at CS#1

They all affect the same output dll.

How do we deploy changes done at CS#2 without the other work? Also how can we avoid this situation happening again in the future?


We (using SVN) usually solve this by using feature branches. This enables larger features to be only merged to the mainline after they are finished. A great article about different strategies is here http://blogs.msdn.com/b/willy-peter_schaub/archive/2009/02/12/vsts-ranger-projects-branching-guidance-ii.aspx


I think that in that case you should try to "disable" your #1 changeset.

let's say if it is a new feature, don't make any way to make this code run in the application.

if it is a replacement of an existing code, write it while the old code is in use, and enable it when it is done


Use a feature branch or a shelveset. Both will allow you to store the work in progress on the server and run a Team Build. A feature branch is a bit more heavyweight but can also be more flexible.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.