Я очень новичок в git и все еще пытаюсь склонить голову к некоторым из способов, которыми он выполняет определенные вещи, а не svn, и мне интересно, пытается ли я пытаться даже возможно. Я пытаюсь создать репозиторий для проекта Arduino, который будет включать несколько эскизов Arduino, а также несколько библиотек. Некоторые из этих библиотек я буду писать, а некоторые из других существующих хранилищ, принадлежащих другим людям, которые зависят от кода, который я буду писать. Структура локальной папки для проектов Arduino работает следующим образом:Git, объединяющий несколько репозиториев
~/Arduino
+libraries
+MyLib1/[lib files]
+MyLib2/[..]
+MySketch1/MySketch1.ino
+MySketch2/MySketch2.ino
(SketchName.ino это только Arduino именования для того, что в основном main.cpp)
Теперь хранилищами я рассматривающие меняться в их структуре. Некоторые из них содержат папку Arduino на своем верхнем уровне, некоторые отображают их верхний уровень до в папке Arduino, а некоторые из них содержат только библиотеки и отображают их верхний уровень в Arduino/libraries. Есть ли способ объединить эти множественные репозитории в мою собственную, сохраняя ссылки на исходные репозитории? Я изучил подмодули, но кажется, что они работают только в своих собственных подкаталогах, которые не будут работать для меня, потому что мне нужна структура локальных папок, чтобы содержать все эскизы в одной и той же папке ~/Arduino, и все библиотеки внутри папке ~/Arduino/libraries.
Так что я хочу иметь выше структуру папок сосуществовать с другой репозиторий, содержащий:
libraries
+YourLib1/[..]
+YourLib2/[..]
YourSketch/YourSketch.ino
И третий репо, содержащий:
AnotherRandomLib/[..]
таким образом, что конечный результат один репо, который выглядит как это;
~/Arduino
+libraries
+AnotherRandomLib/[..]
+MyLib1/[..]
+MyLib2/[lib files]
+YourLib1/[..]
+YourLib2/[..]
+MySketch1/MySketch1.ino
+MySketch2/MySketch2.ino
+YourSketch/YourSketch.ino
Можно ли это сделать, или, если нет, то будет считаться «наилучшей практики» для ссылок код других людей из вашего репо? Просто добавьте файлы в репо (простую, пуленепробиваемую, но перерывы, связывающие исходное репо, теряя способность извлекать обновления, а также приводят к потере атрибуции)? Оставьте их вне репо и оставите его пользователю, чтобы найти и загрузить эти другие библиотеки отдельно (совсем не хорошее решение)? Есть идеи?
yep, subodules предоставят вам эту функциональность, но они могут стать проблемой для управления. если экосистема arduino имеет какое-то управление пакетами, я бы выбрал это направление. Если нет, и вы не будете редактировать код внутри других эскизов, yah, подмодули будут работать –
Но могу ли я проверить 2 подмодуля в тот же каталог? У меня сложилось впечатление, что подмодуль нужно проверить в своем собственном подкаталоге, который здесь не работает. У экосистемы Arduino нет хороших функций, таких как управление пакетами, у нее просто одна папка в вашем пользовательском каталоге, которая обрабатывается так же, как и в той же папке, что и каталог установки Arduino (то есть пользовательские библиотеки в ~/Arduino/libraries/MyLib обрабатываются так же, как если бы они находились в $ (ARDUINOPATH)/library), но вы ограничены одним каталогом ~/Arduino, иначе ваши библиотеки не найдены. – qwertymodo
ах, я. это не сработает. они должны быть отдельными подкаталогами.извините, похоже, что вы застряли на том же слове, что и JavaScript, в течение последних нескольких десятилетий: скопируйте и вставьте:/Угадайте, что вы всегда можете написать систему управления пакетами для arduino. –