Сборка прошивки NodeMCU с использованием разных веток - PullRequest
2 голосов
/ 17 июня 2019

Я могу собрать прошивку для всех веток NodeMCU, https://github.com/nodemcu/nodemcu-firmware только когда клонирую их в отдельные локальные каталоги.

Когда я пытаюсь использовать только одну папку и использую ветку git checkout, я могу собрать только основную прошивку. Когда я извлекаю ветки, другие файлы изменяются в соответствии с веткой, но я не могу собрать прошивку. Может быть, так оно и есть? Я надеялся, что смогу использовать git checkout master и затем make для сборки основной прошивки, а затем использовать git checkout dev и затем make для сборки прошивки dev. Файлы действительно меняются, чтобы правильно отобразить ветку, поэтому я не уверен, почему она не работает.

Ответы [ 2 ]

2 голосов
/ 17 июня 2019

Хотя ответ @ VonC, безусловно, полезен и несколько «правильный», он также очень общий.

С чем вы, возможно, боретесь, это подмодули Git.Мы используем их, например, для u8g2 и ucg.Загляните внутрь .gitmodules в соответствующей ветке для подробностей.

Когда вы переключаете ветки, вам необходимо обновить субмодули.git worktree очень пригодился бы здесь, но все еще есть ошибки, которые влияют на обработку подмодулей, которые я никогда не пробовал.

Я подозреваю, что вы следовали инструкциям в https://nodemcu.readthedocs.io/en/master/build/#git. Для ветви ESP32 мы задокументировали еще несколько инструкций по сборке, поскольку компоновщик облака его пока не поддерживает.

Вывод: обязательно запускайте git submodule update --recursive при каждом переключении веток.

2 голосов
/ 17 июня 2019

Во-первых, вам не нужно делать несколько клонов.
Вы можете сделать только один клон, а затем оформить эти ветви в соответствующих папках с помощью git worktree.

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

Выполните git clean -n -d -x -f до предварительного просмотра того, что вы можете почистить из только что проверенного рабочего дерева.

Если вы уверены, удалите -n (опция пробного запуска). Удалите также -x, если вы не хотите удалять игнорируемые файлы.

...