We already have an abstraction at the Transport layer.
My recommendation would be to write a GnomeTransport (or possibly VFSTransport), which would then register all names starting with either gnome+ or vfs+
Or whatever the gnome notation is. All you need is a custom prefix (foo+ works well), and then register your custom Transport as a handler for those paths.
Then bazaar will happily use your transport for any of those urls.
We already have an abstraction at the Transport layer.
My recommendation would be to write a GnomeTransport (or possibly VFSTransport), which would then register all names starting with either gnome+ or vfs+
Then you could access branches as:
vfs+sftp:// host/foo/ bar //host/ share
vfs+smb:
Or whatever the gnome notation is. All you need is a custom prefix (foo+ works well), and then register your custom Transport as a handler for those paths.
Then bazaar will happily use your transport for any of those urls.