Базар удаленных уложенных веток с "рабочим деревом"
Я работал некоторое время с w/bzr (bazaar vcs) и решил переупорядочить несколько приложений в виде стекированных на основной ствол (чтобы помочь ресурсам сохранения данных).
Для опубликованных веб-приложений рабочий процесс включен
bzr push bzr-ssh://<server>/var/www/<remote-branch-name>
с последующим bzr checkout
на сервере, чтобы получить рабочее дерево.
С помощью этой новой парадигмы с накоплением я, конечно, хотел отправить на сервер ветвь с накоплением, и иметь рабочее дерево для обслуживания, но это не представляется возможным?
bzr push --stacked -d <branch> <remote>
с радостью создаст новую ветвь с накоплением на сервере, но с сервера:
bzr info
не показывает родителейbzr checkout
результаты в bzr: ОШИБКА: не ветвь
Нет, нет рабочего дерева:|
В конце концов, я просто удалил новую удаленную ветку и вернулся и пропустил --stacked
,
Все еще интересно, если я что-то пропустил?
1 ответ
Я расскажу о сложенных ветвях, но ниже я рекомендую вместо этого использовать общий репозиторий.
Не имеет значения, показывает ли "bzr info" родительский элемент. Это должно показать сложенную ветвь.
В приведенном ниже примере ключ "stacked on":
bzr info bzr+ssh://teeny/~/bzr
Standalone branch (format: unnamed)
Location:
branch root: bzr+ssh://teeny/~/bzr/
Related branches:
parent branch: bzr
stacked on: http://bazaar.launchpad.net/~abentley/bzr/branches-uncommitted
Базар пытается определить, на какую ветку складывать. Следует напечатать это как часть push-вывода.
Если это не так, вы можете переопределить это с помощью --stack-on. Помните, что ветка, на которую вы кладете, должна быть по крайней мере такой же общедоступной, как ветка, которую вы перемещаете.
Но я рекомендую общий репозиторий, а не стекированные ветки, для экономии места. Это более эффективно и более удобно для пользователя. Базар будет автоматически использовать общий репозиторий, если найдет тот, который охватывает целевое местоположение. Например, "bzr init-repo bzr+ssh:///var/www/" создаст общий репозиторий, который будет автоматически использоваться всеми ветвями в / var / www.
Сложенные ветви существуют, чтобы решить проблемы конфиденциальности. Если некоторые из веток в / var / www являются частными, тогда общий репозиторий является риском, потому что он будет содержать ревизии из этих частных веток. Основная причина, по которой Launchpad использует сложенные ветви, заключается в том, что Launchpad поддерживает частные ветви. Частная ветка, размещенная в публичной ветке, экономит пространство, не пропуская частные ревизии в публичную ветку. Он использует стек по умолчанию, потому что открытая ветвь может быть сделана частной после ее первоначальной отправки.