Forums : Feedback Forum

Dear Open Hub Users,

We’re excited to announce that we will be moving the Open Hub Forum to https://community.blackduck.com/s/black-duck-open-hub. Beginning immediately, users can head over, register, get technical help and discuss issue pertinent to the Open Hub. Registered users can also subscribe to Open Hub announcements here.


On May 1, 2020, we will be freezing https://www.openhub.net/forums and users will not be able to create new discussions. If you have any questions and concerns, please email us at [email protected]

Bazaar enlistments should find committers in nested commits.

In some projects enlisted from Bazaar (such as https://www.ohloh.net/p/launchpad), the top-level merge commit will show a generic committer gateway name, for example:

Launchpad PQM

(PQM for Patch Queue Manager). The human committer names will be in the nested commits contained within that merge commit. You can see the nested commits by doing, say, 'bzr log -n0'.

Note that this is unrelated to the '--author' option in Bazaar (and therefore unrelated to http://thechaw.com/ohloh_scm/tickets/view/19, although it happens that Launchpad PQM will probably start using the --author option at some point, which will cause this bug in Ohloh to become somewhat less visible at least).

Karl Fogel over 15 years ago
 

By the way, https://dev.launchpad.net/Contributions links to a script, community-contributions.py, that uses the Bazaar API to read the full (nested) commits and find the committer names. You might be able to save some time by using code from that script.

Karl Fogel over 15 years ago
 

This discussion moved to Help forum:

https://www.ohloh.net/forums/10/topics/4353

Karl Fogel over 15 years ago
 

Hi Karl,

Do you happen to have a (much) smaller repository that reproduces this behavior?

Robin Luckey over 15 years ago
 

Yes. Here is a much smaller Bazaar branch that shows the same situation:

lp:~launchpad-pqm/pygettextpo/trunk

Your Bzr should support the lp: shorthand natively, but if not, just use this expanded version of the same URI:

bzr+ssh://bazaar.launchpad.net/~launchpad-pqm/pygettextpo/trunk/

That branch is a good example because it's a mixture of different types of commits. It has some top-level commits (e.g., by Launchpad Patch Queue Manager and Canonical Patch Queue Manager) that contain nested commits (e.g., by Diogo Matsubara, Max Bowsher, Bjorn Tillenius, James Henstridge, and others), and it also has some top-level commits by humans (e.g., by me, also by James Henstridge) that don't contain any nested commits. So you get examples of everything. If you can parse this branch right, you can parse anything :-).

Doing 'bzr log -n0' on the branch will show you the details, indenting the nested commits intuitively.

Karl Fogel over 15 years ago
 

Since you may not be very familiar with Bazaar:

What Bzr calls a branch is more or less what other VCS systems call a repository (confusingly, Bzr has something called a repository too, but it doesn't really mean what you'd expect it to mean). So when I say branch above, that's more or less what you mean when you say repository.

Regarding nested commits:

When there's a top-level containing nested (inner) commits, that means the top level committer merged the inner commits into the branch. So the real author(s) of the change are the authors of the inner commits. The entity that did the merge, thus producing the top-level commit, might be a human or might be a bot, but the point is that what they did is more bookkeeping than actual code authoring.

Nesting can go to arbitrary depth; in practice, one level of nesting is by far the most common, and I've rarely seen any branch that nests beyond two levels.

Karl Fogel over 15 years ago