Базар (BZR) предопределенные места - PullRequest
5 голосов
/ 21 декабря 2009

Bazaar имеет псевдопротокол Launchpad (lp :), который позволяет пользователю работать в удаленных филиалах без записи полного местоположения Launchpad. Я ищу способ создать свои собственные псевдопротоколы следующим образом (аналогично ГИТ):

bzr remote my sftp://myuser@myserver.com/home/myuser/myrepo/
bzr push my:mybranch
bzr push my:otherbranch
bzr push my:anotherbranch

... вместо ...

bzr push sftp://myuser@myserver.com/home/myuser/myrepo/mybranch
bzr push sftp://myuser@myserver.com/home/myuser/myrepo/otherbranch
bzr push sftp://myuser@myserver.com/home/myuser/myrepo/anotherbranch

... это боль в заднице.

Я читал о bazaar.conf, но, похоже, он только в состоянии установить глобальные push-адреса для каждой ветви / репо. Другой способ, который я видел, - использовать псевдоним, но у него есть та же проблема, он очень уродлив, когда необходимо создать новые ветви.

Возможно ли это сделать без изменения кода BZR? Это должно быть очевидно ...

Ответы [ 2 ]

8 голосов
/ 21 декабря 2009

Синтаксис my: xxx называется directory services в bzr. Вы можете определить свою собственную службу каталогов через плагин (напишите на Python).

Хорошим примером таких плагинов является плагин закладок . Проверьте это.

Может быть, сам этот плагин будет достаточно для ваших нужд.

7 голосов
/ 22 декабря 2009

Решением является установка плагина bzr-bookmark в виде ~ / .bazaar / plugins / bookmarks, затем:

bzr bookmark my sftp://myuser@myserver.com/home/myuser/myrepo/
bzr push bm:my/mybranch
bzr push bm:my/otherbranch
bzr push bm:my/anotherbranch
...