Everyday usage of BigGit

Now that your workspaces and Repos are setup, you probably want to add BigGit to your Powershell profile if it is not already. Even though you have multiple workspaces, they should be transparent to you. You want to do your daily coding in the git repo.

Syncing between TFS and GIT

A couple things need to be kept in mind here:
  1. Only the master git branch is synced with TFS. You will want to try and not do any active development in this branch. That will make it easier to understand what is in TFS and how your work differs. It will also make the automatic integrations handled by BigGit much less likely to run into any merge conflicts.
  2. Remember that only the Volatile source is synced by BigGit. You have hopefully carved out a nonvolatile workspace that rarely changes and can be synced less frequently than the volatile source. To sync your NonVolatile source, you would do this how you are used to with TFS: navigate to the root of your NonVolatile workspace and issue a Invoke-TF GET. Since BigGit uses symbolic links, by performing the get once, you simultaneously sync all linked workspaces.
That all said, there are two very simple BigGit functions for performing Forward and reverse integrations between git and tfs:

Invoke-ReverseIntegration -message "my commit message"

Keep in mind that the Reverse Integration DOES NOT commit to TFS. It performs a merge into your volatile workspace and then you should manually commit from there. This gives you the opportunity to review your changes prior to the final commit. The git-tf checkin performs a "shallow" checkin which means that if you have multiple commits in your git repo that you are checking in, those will be squashed to a single TFS commit. Also, as part of the integration operations, the TFS workspaces are cleared of any pending changes so make sure you do not have pending work here.

Last edited Jan 14, 2013 at 1:35 AM by mwrock, version 3


No comments yet.