TFS Version Control Concepts 0: Vocabulary
To summarize the goals laid out in my reintroduction, I want a chance to start my TFVC "story" from the beginning while laying a conceptual groundwork sturdy enough for our most complicated features.
What is the beginning? Well, I assume you have an idea what source control does and why it's useful. (if not, try Eric Sink) I also assume you know how that idea manifests in basic TFVC operation. (newbs start with the walkthru; CVS/VSS/etc users try Martin Woodward) Further, I assume you know a few acronyms:
- TFS = Team Foundation Server
- TFVC or TFS VC = Team Foundation [Server] Version Control
- VS or "the IDE" = Visual Studio, which is Microsoft's Integrated Development Environment
- SCCI or MSSCCI = Microsoft Source Code Control Integration
- SCE = Source Control Explorer
- Sln/proj = VS solution / project
I may end up typing full names once per article to aid search engines, but I reserve the right to get lazy :)
Finally, the TFVC commands:
- checkout and edit are aliases. Unlike many TFS writers, I strive to use edit as much as possible.
- As a verb, I don't have to screw up the sentence structure with particles. Should instructions read "Next, check file.txt out" or "Next, check out file.txt"? Time spent wondering is wasted. Just edit the file already!
- It works better as a noun: specifically, pend an edit sounds just as natural as pend a delete et al., but pend a checkout does not. This phrasing would be important even if the solo verb weren't problematic because we will talk about pending changes a lot. I want to be able to say pend a <changetype> in a consistent way.
- checkin and submit are aliases. I dislike checkin as a verb for the same reasons as checkout. However, it's pervasive throughout the IDE, documentation, and virtually everyone else's blogs. And checkin is a better noun than submission. So I'm likely to mix & match.
- rename and move are aliases. Colloquially, people usually use rename when the file stays in the same directory and move otherwise. I will not make this distinction . To pend a rename means renaming or moving (or both!). Scenarios with slightly different filenames and scenarios where files move around the tree can get equally wacky. I'm not going to bloat our voculary with more changetypes than necessary, nor refer to a clumsy "rename aka move issue" every time it comes up.
Note: to some people, these synonyms connote real shades of meaning. Keith Hill, for instance, feels that checkout implies a lock-edit-checkin model. I don't. Please assume I will be totally upfront when we hit words with hidden meanings. For instance, I still randomly interchange folder with directory even though DOS died while I was in grade school; don't read anything into it.
There's already too much ambiguity ahead.