A client of mine is using TFS and asks people to operate in this manner:

  • The developer in India writes the first draft of code
  • The code is published to a workspace (eg\TFSName Project:FromIndia Folder:\My.Assembly.Name)
  • The code is reviewed by an internal employee
  • To help ensure a full comprehension of code, the code is copied to a new workspace (eg\TFSName Project:InternalCode Folder:\My.Renamed.Assembly

Now the client wants to allow India to reference the code located in\TFSName InternalCode for support purposes. They also want them to propose changes to the running {production} code.

Is this an effective use of TFS server? What is a better approach?


I would probably do one of the following.

  • Create a branch for the developer in India to work in. Merge his code when it's been reviewed
  • Have the developer in India "Shelve" his changes when they're ready to be reviewed. Unshelve them when you want to review, and check them in when complete.

Manually copying things between workspaces seems like it would be tedious and error prone.

  • 1
    It might also not be a bad idea to create a "Review" branch that the India developer would merge into once his changes are ready. Then the approving developer could merge the "Review" branch over to the next level. – Joel Etherton Apr 15 '11 at 14:02

Handling the code review through a separate branch and then merging is a good option (mentioned by Brook).

Another option would be to use shelving and a code-review check in policy as created here.

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.