Subject: | svk allows you to make commits from a checkout of //mirror, havoc follows. |
So this is totaly an error on my part, I was in the wrong place at the
wrong time making a blanket commit. Though in hind site I would have
expected that svk would have just told me no and stoped, sadly this is
not what happened.
I first brought this up on irc
(http://colabti.org/irclogger/irclogger_log/svk?date=2008-08-29,Fri;raw=on)
but I'll recap:
You have two projects mirrored to //mirror/p1 and //mirror/p2, you are
lazy and just check out //mirror to ~/mirror. Now you have two changes
one in p1 one in p2. You goof and make a blanket commit from ~/mirror
(no file specified good old lazy svk ci -m 'msg' style). Now it =looks=
like your commit was a success, but nothing was pushed. Further more
you've now wiped the 'mirroredness' of both p1 and p2. The files still
exist, there still visible via svk ls //mirror, you still have a
checkout path. In short:
svk mi http://project1.com/svn //mirror/p1 \
&& svk mi http://project2.com/svn //mirror/p2 \
&& svk sync -a \
&& svk co //mirror \
&& cd mirror \
&& echo ' ' >> ./p1/file \
&& echo ' ' >> ./p2/file \
&& svk ci -m 'commit to two mirrors at the same time' \
&& svk mi -l [note that both mirrors are now gone] \
&& svk ls //mirror [note that both p1 and p2 still exist]
In the end I was breaking the expected mode of operation, though it
would be nice if svk would have given me a 'commit includes more then
one mirror, can not commit' and failed long before it tried to make the
commit.
Other then that I'm still a very very very happy svk user.
--
benh~