Разделение двух проектов с базаром в одном каталоге - PullRequest
1 голос
/ 25 января 2012

Я создал еще один php-фреймворк, который является общей основой для нескольких Веб-приложения, которые я разрабатываю. Этот фреймворк также представлен как проект панели запуска.

Веб-приложения используют фреймворк, а также расширяют его с помощью пользовательских (php) модулей и с собственными файлами веб / дизайна (css, images, html, js и т. д.)

Во время разработки этих приложений я также модифицирую фреймворк. В таких случаях я хотел бы отправить изменения (только для файлов инфраструктуры) обратно в каталог framework-central, и оттуда, коммит на панель запуска.

В качестве отдельного проекта я также хотел бы иметь дерево bzr, которое содержит только файлы настраиваемые для веб-приложения. Каталоги, однако, вложены друг в друга на несколько уровней, так что это не тривиально (по крайней мере, не для меня)

См. Макет каталога:

[framework_central_dir] <---------> launchpad
 www/
 www/app/framework.php
 www/app/framework/**
 www/lib/**
  |
  |
  |
  |
  |
  |
  \/
[webapp_dir]
 www/app/local-module/** [->Webapp Repo]
 www/app/framework.php   [->Framew Repo]
 www/app/framework/**    [->Framew Repo]
 www/lib/**              [->Framew Repo]
 www/css/**              [->Webapp Repo]
 www/js/**               [->Webapp Repo]
 www/*                   [->Webapp Repo]

Я видел, что bzr-externals может быть для меня, но я не уверен, что я прав. Я хотел бы попросить совета, если это может быть достигнуто или нет. Если да, пожалуйста, покажите мне идею. Если этот вопрос дублирован, тогда я сожалею об этом, может быть, я даже видел его уже, но не был уверен, что это для меня, поэтому, пожалуйста, укажите мне на это.

Спасибо

1 Ответ

3 голосов
/ 25 января 2012

Вы не можете смешивать два разных проекта в одной корневой директории. Вы должны поместить хотя бы один из них в подкаталог. Вот так bzr-externals должен работать.

Чтобы убедиться, что ваш фреймворк будет вызван, вы можете добавить заглушку перенаправления в подкаталог фреймворка. Например. (по вашему примеру)

[framework_central_dir] <---------> launchpad
 app/framework.php
 app/framework/**
 lib/**
  |
  |
  |
  V

[webapp_dir]
 www/app/local-module/** [->Webapp Repo]
 www/app/redirection.php [->Webapp Repo, redirects to actual framework.php]
 www/framework/          [->Framew Repo placeholder]
 www/framework/app/framework.php   [->Framew Repo]
 www/framework/app/framework/**    [->Framew Repo]
 www/framework/lib/**              [->Framew Repo]
 www/css/**              [->Webapp Repo]
 www/js/**               [->Webapp Repo]
 www/*                   [->Webapp Repo]

Извините, я не разработчик PHP, поэтому, возможно, мой redirection.php - неправильная идея. Это просто иллюстрация одного из возможных способов объединения двух проектов на уровне кода.

...