hg versioning vs. CVS versioning
Mark Williamson
mark.williamson at cl.cam.ac.uk
Sun Dec 9 23:49:12 UTC 2007
> As an old school CVS user, I was used to the *file with version...* that
> CVS has. I really can't get used to the *whole repository version* that
> SVN and hg have. Is there a reason for this? Isn't is better to have
> versiones per-file?
Changesets allow you to group logically related revisions to files into one
big revision. It's a higher level of semantics.
So instead of committing frontend.c with "Improve function call interface" and
then committing backend.c with "Update function calls to match new interface
in frontend.c" I can commit changes to both with something like "Improve
backend/frontend function call interface". When I browse the history I can
see the diffs for the two files together as part of this changeset.
Grouping logically related changes like this means that (at least in
principle) you can step back through the history of the repository and build
it *at any changeset* and expect to have the files all match up and build
together (assuming you made sure they all built when you checked them in!).
You can still view the history of a single file, which will tell you which
changesets modified that file. You can also check out the state of an
individual file or files as-of a previous changeset if you want to go back to
an earlier version.
Cheers,
Mark
--
Dave: Just a question. What use is a unicyle with no seat? And no pedals!
Mark: To answer a question with a question: What use is a skateboard?
Dave: Skateboards have wheels.
Mark: My wheel has a wheel!
More information about the Mercurial
mailing list