Хранение файлов PCB * и * программных файлов в одном репозитории Mercurial - PullRequest
1 голос
/ 04 февраля 2020

Мой Banana Pi настроен в качестве сервера Mercurial. Это хорошо работает для моего программного обеспечения, так как, в общем, у меня есть прошивка, и об этом в моих репозиториях. Я могу получить к нему доступ через открытый VPN из любой точки мира. Однако теперь я начал использовать контроль версий и для моих файлов на печатной плате, благодаря новой системе CAD, которая усложняет мой старый, грубый, но эффективный способ архивирования и резервного копирования моей печатной платы. (Кроме того, все в моей новой CAD-системе, все печатные платы и schamtics - это текстовые файлы, благодаря которым управление версиями работает хорошо.)

Итак, с Mercurial я начал делать то же, что и с программным обеспечением, и создавать новый репозиторий. для моей платы для одной из плат, которые я обновляю для клиента, и сразу же столкнулся с проблемой, с которой svn, похоже, легко справляется, и мне стало интересно, может ли Mercurial сделать то же самое.

У меня есть репозиторий проекта BH0001, в котором есть все встроенные C, и я начал создавать новую проблему PCB, для которой используется код C. Мне пришлось создать новый репозиторий Mercurial под названием BH0001_pcb, чтобы различать код и печатную плату. С помощью svn вы можете создать репозиторий проекта, а затем каталоги «Оборудование» и «Программное обеспечение» в номере проекта, но при этом иметь возможность независимо проверять два разных типа файлов в разных местах.

Конечно, я мог бы клонировать репозиторий программного обеспечения BH0001 на локальный компьютер, добавить информацию о печатной плате в новую папку в локальном репозитории Mercurial, отправить ее обратно на сервер, и он был бы совершенно счастлив. Тогда проблема возникает при проверке, потому что я буду клонировать и прошивку, и печатную плату на машину, когда мне может понадобиться только одно или другое.

Кроме того, это противоречит тому, как я храню вещи локально. В моем каталоге / username / home у меня есть каталог программного обеспечения и каталог САПР, и в тех проектах, которые у меня есть. Поэтому у меня будет:

home / CAD / CustomerName / BH0001

и

home / Software / CustomerName / BH0001.

Если я чтобы продолжить использовать мой текущий метод, мне нужно:

  1. Изменить структуру локального каталога на что-то вроде:

home / Projects / CustomerName / BH0001 / CAD

и

home / Проекты / CustomerName / BH0001 / Software

Соси его и используй такие вещи, как ProjectName_pcb для отдельных репозиториев.

Каким-то другим способом, о котором я не могу думать / не могу найти / не знаю? Например, существует способ извлечения части репозитория Mercurial в один каталог, а другой части репо - в другой каталог.

Или мне просто использовать svn, если я действительно хочу продолжать в том же духе? ​​

1 Ответ

1 голос
/ 13 февраля 2020

При использовании Mercurial по умолчанию вы в настоящее время не можете делать частичные клоны репозитория, как вы можете делать с SVN. Таким образом, ваш подход к использованию отдельных репозиториев является хорошим выбором.

Однако существуют способы достижения аналогичного результата: суб-репозитории . В вашем случае я бы создал родительский репозиторий, который содержит два ваших текущих репозитория в качестве суб-репозиториев. Следует иметь в виду, что у суб-репозиториев есть некоторые грубые края, поэтому внимательно прочитайте связанную страницу - я хотел бы особо подчеркнуть, что хорошей практикой является наличие родительского репо, которое в основном содержит только «реальные» репо, но не так много само по себе.

Существуют идеи, такие как тонкий или узкий клон (что несколько идентично тому, что делает SVN), но я не видел их в производстве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...