Transitioning from Teamware to Mercurial
Note: Text in bolded italics indicates text to type at the command line.
Following is a list of high-level differences between Teamware (TW) and Mercurial (Hg).
Philosophy
- TW: you check individual files out (sccs edit), one at a time
- Hg: you "check out" the entire workspace by updating your working directory
- Discussion: Context is everything.
Metadata storage
- TW: each sub-directory has an SCCS sub-dir, and metadata files are stored under there.
- Hg: there is a top-level .hg sub-dir and metadata files are stored under there
- Discussion: Note that Teamware has metadata files sprinkled all over the workspace whereas Hg has them all in a central location (sort of like the difference between breadth-first and depth-first searches).
Initial workspace creation
- TW: bringover
- Hg: hg clone
- Discussion: Teamware uses the same command to create a workspace as to update one; Hg uses separate commands.
Daily updates
- TW: bringover
- Hg: hg pull then hg update or just hg pull -u
- Discussion: Teamware's update command updates the metadata as well as the data, whereas Hg uses one command to update the metadata (pull) and another to update the data from the metadata (update), though they can be combined.
Merging changes
- TW: after bringover, use resolve
- Hg: after pull, use hg merge
- Discussion: The CLIs are similar, but they are different in behavior. In particular, see Merging Conflicting Changes, especially the paragraph starting with "Note that Mercurial's definition..." for a more complete explanation.
Nightly check-ins
- TW: sccs delget adds a delta to the target file(s)
- Hg: hg commit adds a change-set incorporating all edited files
- Discussion: These are similar, but by default Mercurial operates on the entire workspace, not on individual files.
History
- TW: sccs prt to show changes for a single file
- Hg: hg log to show revisions over the entire workspace
- Discussion: These are similar, but by default Mercurial operates on the entire workspace, not on individual files.
Advanced usage
- TW: wx redelget used to collapse deltas
- Hg: hg reci used to collapse change-sets
- Discussion: In general, there should only be one when integrating, but in rare cases people will want changes to be tracked separately though integrated together. To allow for this, pulling from any untagged change-set below the top of the trunk is not guaranteed to work.
Integration
- TW: putback
- Hg: hg push
- Discussion: These are similar, and both require that the changes are checked in to the child workspace.
SCCS keywords
- Hg: there is no literal equivalent to SCCS keywords
- See Meruciral Keyword Plan page for more information about this area of Mercurial.
- See the 2007 Heads Up email for information about the removal of SCCS keywords in ON source code.
- See the RTI nits page for specific instructions about putbacks to the ON consolidation.
Pointers to Other Information
Following are links that might be helpful for users transitioning from Teamware to Mercurial:
- www.genunix.org page entitled "Mercurial for TeamWare users"
- wikis.sun.com page entitled"Transitioning from TeamWare to Mercurial (hg)"
- Martin Englund's Blog post on Mercurial for TeamWare users
- Stacey Marshall's comprehensive Teamware to Mercurial transition reference
- Mike Kupfer's Blog post about Converting Projects to Mercurial
- Rich Lowe's Description of Mercurial Work Flow
on 2009/10/26 12:11