How Do I Use git-tfs Idiomatically?
The git idiom is to check out branches to the root directory of the repository. Checking out a branch will replace the contents of the directory with the contents of that branch.
The TFS idiom is to check out each branch in a different directory under the root directory of the repository (even the master or trunk branch). Checking out a branch will place it in a new directory next to the current one.
Using git-tfs, I can clone a TFS repository or branch into a git repository. I want to work on a TFS repository with multiple branches in a manner consistent with the git branching idiom. But I'm not sure what's technically possible or recommended :)
Clone The Whole TFS Repository
If I clone the whole repository out of TFS
> git tfs clone http://<tfsurl>:8080 $/main
That would give me a git master
containing all the TFS branches as directories.
[master]> dir
trunk
feature-logon
feature-search
release-0.0.1
Add a Remote Per TFS Branch
I don't know if I can (or how to) map a git remote to each TFS branch.
> git init .
[master]> git tfs clone http://<url> $/main/trunk .
Then
[master]> git checkout -b feature-logon
[feature-logon]> git tfs clone http://<url> $/main/feature-logon .
I know this is technically incorrect, but I don't know any better without playing (my only TFS repo is very large, experimenting is taking a long time)