[Mailman-Developers] [Merge] lp:~wacky/postorius/csrf into lp:postorius

Barry Warsaw barry at list.org
Sun May 20 04:26:33 CEST 2012


On May 20, 2012, at 09:22 AM, Richard Wackerbarth wrote:

>My interest in deleting a branch is to clean the external namespace so that
>users are not wasting their time examining branches which are not currently
>useful.
>
>It appears that Launchpad handles this by setting the branch status to
>"merged".  As a result, I don't need to do anything.

Merged is usually automatically set when the branch is merged into the series
trunk (e.g. lp:mailman).  You can also set the status to Abandoned to make it
clear it isn't useful any more.

>> I use git a little more often then Bazaar, but I can't say that I am
>> clearly in favor of one of them. I guess I'm just happy whenever I don't
>> have to use SVN any more. ;-)
>
>My experience goes back to RCS. CVS was an improvement on that. Today's
>version control systems are much better. My only complaint is that there are
>too many of them :)
>
>My preference for git stems largely from the lack of decent gui tools for bzr
>on Mac OSX. That, plus the fact that I run a git-based infrastructure and
>most of the other projects in which I participate use git, makes it an easy
>choice for me.

While I really don't want to get into yet another religious VCS discussion on
yet another unrelated list <wink>, Bazaar has one killer feature IMO that
neither hg nor git has.  (There are many things I prefer in bzr over hg and
git, but this is the big one).

Bazaar has a strong concept of a 'mainline' branch.  This means that merges
are first class objects, and when I merge your feature branch into the trunk,
it shows up on mainline as a single commit.  And because tools like log and
bisect treat the merge as a single commit by default, they always do the right
thing, without requiring you to rebase your branch before its merged.  I
personally think that rebase is an abomination generally required by workflow
policies that try to overcome tool deficiencies.  By not *requiring* rebase
(it is of course possible), it means that all your intermediate commits are
preserved because sometimes they are useful.  Most of the time you can ignore
them which is exactly how it should be, IMHO.

>> I think the workflow used in Launchpad is not necessarily the only way
>> to use Bazaar. However, I can't say that I have really fully groked the
>> launchpad way, but here's how I understood it:
>> 
>> Every project has an owner (a person or group, "Mailman Coders" in our
>> case). Changes to the trunk can only be made by owners, which is why
>> nobody else's names ever appear in the revision history.
>
>What a waste of display space :)

They do appear in the revision history, but they're off to the side and
ignored by default.  Use `bzr log -n0` for all the verbose glory.

>> The way launchpad credits the work of "non-owner" contributers is by
>> stating the merges and bug fixes in the revision history the way it just
>> happened with your branch.
>> 
>> So there's nothing wrong with the way you did it. Just create a new
>> branch with the changes and then do a merge proposal. You *could*  link
>> the branch to the bug report yourself, just to make sure I don't forget
>> that before merging it in.
>
>I'll try to do so for the next submission.  As you note, there are many ways
>to use a particular tool. "Learning the culture" is part of the contribution
>task.

Yep!  All tools take some getting used to.  I agree it's kind of a shame that
bzr/git/hg all do things differently, as does Launchpad/github/bitbucket.  But
hey, FLOSS is all about freedom, right? :)

>> You see, those "non-owner" contributions are buried a bit deeply inside
>> the revision history. And I guess that's why Barry suggested to add a
>> more obvious "contributed by ..." message to every commit that involves
>> the work of a non-owner.
>
>I prefer the more explicit attribution of git because it makes it much easier
>to determine "blame". Not that I care about kudos, points, or such, but
>because I often want to know more about the rationale behind some particular
>change. (The documentation rarely is adequate in explaining rationale -- and
>we are all "guilty" in that respect) To do so, I need to know the author

In a well-developed branch, that rationale should be included in the
intermediate commit messages of the proposed branch (not to mention good
comments in the code <wink>).  Rebasing that away just seems *wrong* to me.
As far as the attributions go, I think the best place to be explicit is in the
NEWS file.  Folks getting Mailman via tarball or distro package won't have
access to the VCS history anyway.

>> But, as I said: That's just how I understood the LP workflow. I'm sure
>> there are still things I've missed...
>
>My workflow pattern is to create short-lived branches for each bug, Once the
>bug is closed and merged into trunk, the branch is effectively
>"dead". Launchpad seems to handle this adequately.

+1

Cheers,
-Barry


More information about the Mailman-Developers mailing list