[Cabal] Revision 02579a62368e29abc96596d62ad6d418fc23ddda
elb at psg.com
Fri Feb 2 10:21:22 EST 2007
Evan Schoenberg spake unto us the following wisdom:
> >You did, in fact, change all of those files in that commit, because it
> >was a merge of the change that you made and a revision which changed
> >the other files. The mtn log command gives you an error because your
> >mtn is old; I strongly suggest running 0.32 on all machines that you
> I had an experience the other day of being in libpurple, doing mtn
> commit, and finding myself committing changes which were in pidgin in
> addition. Worked out okay since I was going to commit those next
> anyways.. but is that expected? I was similarly surprised.
Note that this is not at all what happened to Sadrul; he did in fact
commit only the one file he intended to commit, and the other revision
(with all the changed files) was a merge with some windows-loving
revision that changed a bunch of other files. So what you had was:
parent merge revision (gtkblist.c, Make...)
Makefile.mingw, ... -'
The rightmost revision there is what concerned Sadrul, but it wasn't
really a problem, it's just getting used to merge revisions.
In your situation, what you have run into is that monotone
(rightfully, I believe) treats the entire source tree as one coherent
project. (Note that this is the same as OpenCM, another VCS that I
like very much, but which is unfortunately dead in the water.) This
is in contract to CVS and SVN (and their still recognizable parent,
RCS), which have no concept of a project tree, but treat every single
directory as its own root. This is why you can check out completely
nonsensical partial trees using CVS and SVN, and why SVN has a .svn
directory in every single directory of the hierarchy. When you run
any number of commands in monotone (ci, status, up, ...), they operate
on the _entire tree_, not the current subdirectory, and this is by
design. To cause the behavior you wanted, you must restrict the
command with a path to a directory or to a file; in your case, 'mtn ci
.' would probably have done what you wanted.
Personally, for a lot of very good reasons, I run a diff before a
commit. That will prevent mistakes like this, and also helps me catch
extraneous debugging statements, etc., which I am wont to leave in
The laws that forbid the carrying of arms are laws [that have no remedy
for evils]. They disarm only those who are neither inclined nor
determined to commit crimes.
-- Cesare Beccaria, "On Crimes and Punishments", 1764
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 189 bytes
Desc: Digital signature
Url : http://pidgin.im/cgi-bin/mailman/private/cabal/attachments/20070202/b0381a2b/attachment-0001.pgp
More information about the Cabal