Я кодирую фреймворк вместе с проектом, который использует этот фреймворк. Проект представляет собой репозиторий Bazaar, структура которого находится в подпапке под проектом.
Я хочу предоставить фреймворку собственный репозиторий Bazaar. Как мне это сделать?
Насколько я знаю, с базаром это нелегко сделать. Одна из возможностей - взять исходный проект, разветвить его, а затем удалить все, что не связано с фреймворком. Затем вы можете переместить файлы из подкаталога в основной каталог. Это довольно муторно, но сохранить историю можно.
вы получите что-то вроде:
branch project:
.. other files..
framework/a.file
framework/b.file
framework/c.file
branch framework:
a.file
b.file
c.file
Насколько мне известно, "вложенные" ветки пока не поддерживаются Bazaar. Git поддерживает «подмодули», которые ведут себя аналогично внешним модулям Subversion.
Вы используете команду разделения:
bzr split sub_folder
Это создает независимое дерево во вложенной папке, которое теперь можно экспортировать и работать с ним отдельно.
Я пробовал сделать это с помощью bzr split, однако это не сработало так, как я ожидал.
Я использовал метод в ответе jamuraa выше, и это было для меня намного лучше, поскольку мне не пришлось возиться с преобразованием в новый тип репозитория. Это также означало, что при полной проверке / переходе из этого репозитория были воссозданы только те файлы, которые я хотел.
Однако у него все еще была обратная сторона: в репозитории хранилась история всех этих `` удаленных '' файлов, а это означало, что он занимал больше места, чем необходимо (и может быть проблемой конфиденциальности, если вы не хотите, чтобы люди могли видеть старые версии этих «других» каталогов).
Таким образом, было бы полезно получить больше советов по разделению ветки Bazaar только до одного из ее подкаталогов при безвозвратном удалении истории всего остального.
Используйте плагин быстрого импорта (http://bazaar-vcs.org/BzrFastImport):
1) Экспортируйте всю свою историю в поток:
bzr fast-export BRANCH > full-history.fi
2) Отфильтруйте историю для создания нового потока:
bzr fast-import-filter -i subfolder full-history.fi > subfolder.fi
3) Восстановите новую ветку только с подпапкой:
bzr init-repo .
bzr fast-import subfolder.fi
Сделайте
bzr init .
bzr add .
bzr commit
в каталоге framework.
Затем вы можете выполнить ветвление и слияние только с этим каталогом.
Базар выше будет игнорировать этот каталог, пока вы не выполните соединение.
Bazaar понимает, когда вы делаете такие вещи, как
bzr branch . mycopy
bzr branch . myothercopy
Текущие каталоги .bzr не будут отслеживать изменения этих подкаталогов.
Это избавляет вас от попыток найти место для ветки.