[Python-Dev] I am now lost - committed, pulled, merged, what is "collapse"?

R. David Murray rdmurray at bitdance.com
Mon Mar 21 18:19:29 CET 2011


On Mon, 21 Mar 2011 15:59:51 +0100, Adrian Buehlmann <adrian at cadifra.com> wrote:
> On 2011-03-21 14:40, R. David Murray wrote:
> > On Mon, 21 Mar 2011 18:33:00 +0900, "Stephen J. Turnbull" <stephen at xemacs.org> wrote:
> >> R. David Murray writes:
> >>  > On Mon, 21 Mar 2011 14:07:46 +0900, "Stephen J. Turnbull" <stephen at xemacs.org> wrote:
> >>  > > No, at best the DVCS workflow forces the developer on a branch to
> >>  > > merge and test the revisions that will actually be added to the
> >>  > > repository, and perhaps notice system-level anomolies before pushing.
> >>  > 
> >>  > hg does not force the developer to test, it only forces the merge.
> >>
> >> I didn't say any VCS forces the test; I said that the workflow can (in
> >> the best case).  That's also inaccurate, of course.  I should have
> >> said "require", not "force".
> > 
> > The workflow in svn "can" "require" this same thing:  before committing,
> > you do an svn up and run the test suite.
> 
> But with svn you have to redo the test after the commit *if* someone
> else committed just before you in the mean time, thereby changing the
> preconditions "behind your back", thus creating a different state of the
> tree compared to the state in which it was at the time you ran your test.
> 
> With a DVCS, you can't push in that situation. At least not without
> creating a new head (which would require --force in Mercurial).

So you are worried about the small window between me doing an 'svn up',
seeing no changes, and doing an 'svn ci'?  I suppose that is a legitimate
concern, but considering the fact that if the same thing happens in hg,
the only difference is that I know about it and have to do more work[*],
I don't think it really changes anything.  Well, it means that if your
culture uses the "always test" workflow you can't be *perfect* about it
if you use svn[**], which I must suppose has been your (and Stephen's)
point from the beginning.

[*] that is, I'm *not* going to rerun the test suite even if I have to
pull/up/merge, unless there are conflicts.

[**] Possibly you could do it using svn locking, but even if you
could it wouldn't be worth it.

--
R. David Murray           http://www.bitdance.com


More information about the Python-Dev mailing list