Моя проблема была решена на Launchpad. Вот некоторые из ответов (взяты из вопроса Launchpad):
Из bzr help push
:
Описание:
В целевой ветви не будет заполнено рабочее дерево, потому что это дорого и не поддерживается в удаленных файловых системах.
Некоторые интеллектуальные серверы или протоколы могут создать рабочее дерево в будущем.
Возможно, вы захотите следовать этой инструкции для развертывания полного удаленного сервера bzr-loggerhead
Кроме того, и просто если вам нужно рабочее дерево на вашем сервере sftp, вы можете запустить bzr update
как показано в справке working-tree
:
Если вы хотите иметь работающее дерево на удаленной машине, которую вы отправляете, вы можете запускать bzr update
в удаленной ветке после каждой отправки или использовать другой метод для обновления дерева во время отправки. Существует плагин rspush
который будет обновлять рабочее дерево с помощью rsync, а также делать push. Существует также плагин push-and-update
который автоматизирует запуск bzr update
через SSH после каждого нажатия.
Посмотрите здесь, если ваш SFTP-сервер не позволяет устанавливать bzr или хуки в хранилище. Для веб-разработки я использую sshfs для обновления публичной версии.
Для монтирования вам понадобится использовать опции -o idmap=user,workaround=rename
чтобы сопоставить удаленного пользователя с самим собой и обойти проблему с переименованием в существующий файл в протоколе SFTP.
Суммировать это в команды
Prequesites
sudo apt-get install fuse-utils sshfs
Mount Dir
mkdir ~/sftp.my-site.org
монтаж
sshfs sftp-username@sftp.my-site.org: ~/sftp.my-site.org -o idmap=user,workaround=rename
Запустить обновление
cd ~/sftp.my-site.org; bzr update
Заметки
- Замените «sftp-username» своим именем пользователя на SFTP-сервере.
- Замените «sftp.my-site.org» на имя сервера SFTP.
- Обязательно включайте в конце двоеточие: после имени сервера, если используете там домашний каталог.