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

"Martin v. Löwis" martin at v.loewis.de
Sat Mar 19 16:23:12 CET 2011


> hg heads showed my changeset:
> 
>     changeset:   68585:c63d7374b89a
>     user:        Skip Montanaro <skip at pobox.com>
>     date:        Sat Mar 19 09:09:30 2011 -0500
>     summary:     Mention RFC 4180.  Based on input by Tony Wallace in issue 11456.
> 
> I committed.  Now:
> 
>     changeset:   68680:64eeb4cd4b56
>     tag:         tip
>     parent:      68585:c63d7374b89a
>     parent:      68679:dfceb98767c0
>     user:        Skip Montanaro <skip at pobox.com>
>     date:        Sat Mar 19 09:15:28 2011 -0500
>     summary:     commit merge
> 
> The dev guide says something about collapsing changesets.  Is that
> collapsing commits within a changeset or collapsing multiple changesets
> (whatever that might be)?

It's only the latter. If you had a number of commits done just to
implement the feature, some with commit messages such as "fix typo",
"revert bogus change", "more cleanup", etc., people don't want to see
this in Python's history, so you would have to come up with a single
patch for the entire feature and commit that separately.

> Do I need this for a trivial change?

No. The essential change is in a single changeset (c63d7374b89a), which
is how it should be.

> Can I just push at this point?

Yes. If somebody pushed something else meanwhile, you'll have to merge
again.

> Once pushed, how does it get merged into the main codebase?

Pushing the change will exactly do that. Your merge (64eeb4cd4b56)
has your change (c63d7374b89a) as it's parent, so 64eeb4cd4b56 now
contains both the current state of cpython plus your change.

If somebody else now makes other changes that succeeded your merge,
you will need to merge them again, so that, at the time of your
push, your most recent merge is newer than cpython's default head.

Regards,
Martin


More information about the Python-Dev mailing list