Sean Farley <sean.michael.farley@gmail.com> [Thu, 16 Oct 2014 23:27:54 -0700] rev 23560
changectx: use names api to simplify and extend node lookup
Previously, changectx had to know about each type of name (bookmark, tag, etc.)
to look up. Now, we use repo.namenodes to simplify (and extend) this.
Sean Farley <sean.michael.farley@gmail.com> [Fri, 17 Oct 2014 15:28:40 -0700] rev 23559
namespaces: add a method to the first matching node for a given name
Sean Farley <sean.michael.farley@gmail.com> [Sun, 14 Dec 2014 12:53:50 -0800] rev 23558
namespaces: add bookmarks to the names data structure
This marks the first use of abstracting our different types of named objects
(bookmarks, tags, branches, etc.) and upcoming patches will use this to
simplify logic.
Sean Farley <sean.michael.farley@gmail.com> [Sun, 14 Dec 2014 16:22:24 -0800] rev 23557
namespaces: add a convenience property for the weakref _repo
Sean Farley <sean.michael.farley@gmail.com> [Sun, 14 Dec 2014 15:35:57 -0800] rev 23556
namespaces: pass repo to __init__
We store repo as a weakref so that we can prevent a cycle between namespaces
and localrepo.
Sean Farley <sean.michael.farley@gmail.com> [Sun, 14 Dec 2014 15:04:40 -0800] rev 23555
namespaces: add a function to turn single results into lists
Sean Farley <sean.michael.farley@gmail.com> [Fri, 17 Oct 2014 11:25:51 -0700] rev 23554
namespaces: add a method to register new namespaces
Sean Farley <sean.michael.farley@gmail.com> [Sun, 14 Dec 2014 12:29:28 -0800] rev 23553
namespaces: introduce a generic way to map between names and nodes
This patch begins the work to provide a way to register a namespace to handle
'names'. Benefits of this would be,
- improved templating: This would provide {name} which could output any branch,
bookmark, tag, or any extension registered namespace all without having the
extension doing any extra work
- improved tab completion: Since this provides a single source of all 'names',
tab completion would not need to know of each namespace
- changeset lookup: Similar to before, a unified place to get all 'names' will
allow finding changesets without any extension code having to reimplement
this
Also, d226fe36e362 has shown us that for internal code which expects a certain
type of method or behavior, we should provide an easy way for extensions to
check this behavior.