[petsc-dev] Internal and external symbols

Sean Farley sean at mcs.anl.gov
Tue Mar 5 20:54:44 CST 2013

Jed Brown writes:

> On Tue, Mar 5, 2013 at 7:54 PM, Sean Farley <sean at mcs.anl.gov> wrote:
>> Yes, that has traditionally been true but has changed significantly with
>> the latest release involving hidden changesets. Lots of care has been
>> taken to scale to extremely large repos.
> I'm not worried about repository size, I'm worried about having hundreds of
> heads. Did all the normal commands (like hg log) change to only show you
> history on the current bookmark? If not, the user has a very different
> experience when a repository has multiple heads than when it has only one.

Since mercurial was built on the concept of having a contiguous range of
revisions, it took quite a bit of work to implement filtering which is
what I was referring to (in git, this is accomplished by removing a
ref). So, we are talking about different things.

What you are asking for, it seems, is a log alias. If you only want the
current branch / bookmark / fork, then 'hg log -G -r :.' where -G will
give you the ascii graph. If you want a fancy one (with colors and
branch names that aren't 'default' and bookmarks), then you can use the
one I wrote:

gll = log -G --pager=always                --template="{label('changeset.{phase}', rev)}:{label('changeset.{phase}', node|short)} {label('log.description', sub('{',r'\{',desc|firstline|strip))} {ifeq(branch,'default','',label('log.branch', '{branch} '))}{bookmarks % \"{label('log.bookmark', '{bookmark} ')}\"}{tags % \"{label('log.tag', '{tag} ')}\"}{label('log.date', date|shortdate)} by {label('log.user', author|person)}"

and use it as 'hg gll -r :.' or again, make another alias,

gl = gll -l 25 -r :.

and use it as 'hg gl'. I have other useful aliases defined in my
dotfiles repo:


>> Well, the work in that direction is all *me*, so no, it's not ready for
>> prime time. Even after my second implementation, I see no need for
>> namespaces as you describe them.
> Put on your "maintainer" hat. You have many local bookmarks and would like
> to pull from someone else while guaranteeing that none of those bookmarks
> move. Maybe you don't even want to merge, you just want to see what they
> are working on. They have many heads, some with bookmarks that match
> bookmarks you have locally. Some might be able to fast-forward and others
> might be an outright naming collision (unrelated feature), but you don't
> want anything to move. Once you have their bookmarks, you can run fast
> queries about the status of patches and can merge any that you want.
> Without namespaces, you can't tell where bookmarks came from. The web page
> recommends coming up with your own scheme, "namespacing by convention".
> This doesn't make pulling any less dangerous and can be a mess to clean up.
> http://mercurial.selenic.com/wiki/Bookmarks/

Ok, we have different meanings for namespace. Yes, what you describe is
exactly what I hope to accomplish with my revival of the remote-branches

More information about the petsc-dev mailing list