Move your project’s source code using the team source control “Move” command
In this post I like to introduce the source control "Move" option, explain how it works and what to expect when moving the source code from one location to another.
The "Move" command is used for moving source code from one location in the source control (Location A) to a target location in the source control (Location B).
In order to clarify how it works, I will use the following example:
I have created two locations I marked them as "LocationA" and "LocationB".
In "LocationA" I have created a project and I called it "TheSourceToMove".
In order to demonstrate what happens to the history of the project when I move the source code I have created some history entries to the project, the starting point of our example is shown in the screen shot:

Now I will right click the project and click on the "Move" command.
Note: In order to use the "Move" command I must use a workspace definition that is mapping both locations in the source control to my local computer.

Next I will choose the new location:

And finally click "OK".
The source code is now moved to the new location but...
Moving a source code to the new location is not moving all the history of the code to the new location. In order to demonstrate it I will continue the example but this time as a programmer that his workspace is mapped to the new location and I will try to get the version that is marked as "Second version of the code" in the history of the source code.

In the print screen we can see that the source code is now in the new location and the history is having a new entry: "Checking in to complete the move" this step is essential to finish the move of the source control, all that I have done there is check-in the project in the new location (LocationB in the example).
I will try to get the "Second version of the code" by right clicking the project and choosing the "Get Specific Version..."

I will choose to get the "Second version of the code", after completing the check-out process I am checking my local folder and see that the local folder that is mapped to the project is empty!!! What happened???
The source control will only move the last version of the source code to the new location, in case I would like to get an older version from the source code history I will need to do it in the old location of the code (LocationA in the example), so before moving a source code from one location in the source control to another verify that the version that you like to work on is located at the top of the history list.
In order to complete the example and show another pitfall to avoid I will continue with the "Get Latest Version..." option.
The latest version is checked out to my local folder from the new location, it is important to remember that from the new location I will only be able to use this version and future versions I will check in from the new location.
So now we got left with one last question, what will happen if I will use the "Get Latest Version..." option to get the latest version, and then I will try to get and older version from the history? The answer is simple the latest version will be deleted from the local computer.
As we could see in the example moving a source code from one location to another is not a trivial task and has some pitfalls that need to be considered.