On Mar 21, 2011, at 07:38 PM, Antoine Pitrou wrote:

>On Mon, 21 Mar 2011 14:29:54 -0400
>Barry Warsaw <ba...@python.org> wrote:
>> >
>> >I don't think many hg users advocate rebase, really. AFAICT the
>> >Mercurial developers themselves don't seem to use it (they do use mq,
>> >OTOH).
>> 
>> I guess that begs the question then. ;)  
>> 
>> What harm would there be in relaxing the SHOULD in this paragraph to MAY?
>> 
>> "You should collapse changesets of a single feature or bugfix before pushing
>> the result to the main repository.
>
>Because it's really SHOULD.
>Apparently some people misunderstand this statement. "collapse
>changesets of a single feature or bugfix" doesn't mean you must avoid
>merges. If that's the impression it gives then the wording SHOULD (;-))
>be changed.
>
>The paragraph is aimed at the temptation people may have to commit many
>changesets for a single feature/bugfix and push them all even though
>some of them don't leave the source tree in a stable state. What it
>says is that we don't want work-in-progress changesets in the public
>history.
>
>Again, a better wording is welcome.

I guess it depends on what "work-in-progress changesets" means. ;)

If I'm working on a new feature, I am going to make lots of local commits, any
one of which may not actually be stable.  However, when my work on that
feature branch completes, I will have a fully functional, stable branch that's
ready to merge into the default branch.

As Ben described clearly, with Bazaar, I'd just merge my work-in-progress
branch to default and be done.  Tools such as bisect and log would ignore all
my intermediate changes by default, although you *can* drill down into them if
you want.  But I take it that with our Mercurial workflow, we'd rather all
those intermediate commits in my local branch were manually collapsed before I
merge to default.

My discomfort with this is not just that it changes history, but that it
throws away valuable information.  Sure, you're not going to care if I fixed a
typo in NEWS, but you might indeed care that I've addressed the issues you
raised in your first, second, and third reviews.  Each of those would be
represented by a changeset in my local line of development, and by a side
branch in the mainline DAG once my merge is completed.  You might want to dig
into that sideline to see if indeed I addressed the issues in your second
review of my code.  If we have to manually collapse changesets at feature
branch merge time, you can't do that.

Cheers,
-Barry

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to