Breezy location specification

Jelmer Vernooij jelmer at jelmer.uk
Sun Nov 24 01:38:40 UTC 2019


I'd like to change the way that locations are specified in Breezy's
UI.

Breezy internally works with full URLs, possibly with a colocated
branch name embedded in them (,branch=blah). Almost everything in the
UI takes a URL to a branch or a tree.

There are a couple of shortcuts for specifying branch URLs;

* File-system paths (both absolute and relative) can be specified
* The magic ":parent", ":push" aliases
* Directory-based aliases: lp:blah, apt:package, co:foo, etc.

There are a couple of issues with the way this currently works, and
that I find I'm missing from Git:

* the parent and push locations get set automatically and
  often to something that I didn't intend to, so I usually
  don't want to rely on them being set correctly.

* there is no good way to specify a set of branches to operate on,
  in partulicular a set of colocated branches. I.e. pulling all
  (or some) branches from a remote repository.

* there is no good way to specify a colocated branch in a
  remote location. For things in the current directory,
  there is the "co:" syntax, although it is a bit hard to
  discover (and, frankly - "co:" is a bit long).

* There is no set of per-controldir location aliases;
  I find I'm missing git remotes. The bookmark plugin
  apparently provides similar functionality, but I've never used it.

I'm thinking of making modifications along the lines of:

* Add a single character that can be used to specify the colocated
  branch name. Perhaps # ? So
  https://github.com/breezy-team/breezy#3.0 would specify the 3.0
  branch name.

* Allow custom local aliases to be registered, starting with a :. So
  :origin for git repositories would point at the repository origin
  :pull and :parent would still work as they do today and be set
  automatically on clone/first push.

* Add a -b argument that can be used to specify set of colocated
  branches to fetch/clone in e.g. the new "bzr clone" / "bzr fetch".

What are you currently missing in Breezy's UI regarding locations?
What features in this regard do you use in Git or Mercurial that are
missing in Breezy?

Cheers,

Jelmer

-- 
Jelmer Vernooij <jelmer at jelmer.uk>
PGP Key: https://www.jelmer.uk/D729A457.asc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.ubuntu.com/archives/bazaar/attachments/20191124/778a07c0/attachment.sig>


More information about the bazaar mailing list