“Commits should be like Minions: small and numerous.” – @michaellperry
What does that look like practically in day to day activities… well, you certainly shouldn’t be going for more than a day without checking your work in, ideally you’d be in the habit of checking in your work multiple times through out the day. At my work, most teams use TFS, and some use GIT (we’re moving some to GIT hosted on TFS – did you know that was an option?)
BTW.. Alternative titles for this post: “Always Be Checking-In (ABC)”, “Check In ALL THE THINGS!” .. but I digress…
What about when my code isn’t complete?
You know, those times when you’re just trying out an idea, or you know what your code needs to do, but you’re still a couple hours away from achieving it. You want to reduce the bus factor of keeping that work stored on your laptop, especially when you’ve worked so hard on it, but you don’t want to check in half-way complete code and break something for someone else.
That’s why TFS has Shelvesets. (Similar to git stash)
Check out this article on MSDN that covers a couple of other reasons that you might want to consider using Shelvesets:
- Interruption: You have pending changes that are not ready for check in, but you need to work on a different task.
- Collaboration: You have pending changes that are not ready for check in but you need to share them with another team member
- Code Review: You want another team member to perform a code review of your pending changes.
- Private Build: Before you check in your changes, you can use your automated build system to build and test your code.
- Backup: You have work in progress that you cannot finish now so you want a backup copy that is stored on your server and available to other team members who might need to access it.
- Handoff: You have work in progress that you want to hand off to another team member.
What about you? What has your team adopted, or what other features would you like to hear about? Leave your comments below!
Minion images © Copyright Universal Studios