Moving logic from TfsHelper.Common and GitRepository into GitTfsRemote.
Easier to test as TfsHelper is tightly connected to Tfs and GitRepository is
difficult to test directly. Added tests for GitTfsRemote.
Synthaxe is similar to 'fetch' command with '-i' and '--all' options...
+ Add an option `--with-labels` to the 'fetch' command to get TFS labels when fetching TFS changesets
Downloading of files was the responsibility of the items themselves,
but to optimize this, it was changed to requesting entire changesets
at once. However, this optimization broke downloading of shelvesets.
The changeset is now responsible for populating the workspace with the
correct files. This allows for different download strategies for real
changesets and shelvesets.
Compiled for TFS Server 2008, 2010, 2012 and tested with TFS Server 2010, 2012
!! This command need that the clone of the TFS repository was made from the trunk (and not on the whole repository) and with history (not a quick-clone).
Usage for TFS 2010 and 2012 :
-------------------------------
* to clone one branch
git tfs init-branch $/Repository/path <git-branch-name-wished>
ex :
git tfs init-branch $/Repository/ProjectBranch
git tfs init-branch $/Repository/ProjectBranch myNewBranch
* to clone all branches
git tfs init-branch --all
Usage for TFS 2008 :
---------------------
* to clone one branch
git tfs init-branch--parent-branch=$/Repository/ProjectParentBranch $/Repository/path <git-branch-name-wished>
ex :
git tfs init-branch --parent-branch=$/Repository/ProjectParentBranch $/Repository/ProjectBranch
git tfs init-branch --parent-branch=$/Repository/ProjectParentBranch $/Repository/ProjectBranch myNewBranch