Войти
ПрограммированиеФорумОбщее

Хватит это терпеть. Структуризация домашних проэктов.

Страницы: 1 2 3 4 5 Следующая »
#0
6:15, 27 окт. 2018

Думаю, все с этим сталкивались: сначала пишешь какую-нибудь наколеночную миддлварю вроде векторной математики или поиска пути. Потом используешь её в каком-то из своих проэктов. Потом ещё в одном. Потом из второго проэкта дописываешь небольшую хреновину к своей миддлваре и хочется, чтобы оно автоматически появилось в первом проэкте и желательно ничего не уронило. Ещё лучше — чтобы зависимость из первого проэкта можно было обновить, когда будет возможность, исправив все конфликты.

Как это сделать? Сейчас я заметил, что каждый раз, когда я обновляю свою наколеночную библиотеку с векторной математикой, я её копирую вручную в как минимум десяток проэктов, которые от неё зависят. Что-то мне подсказывает, что это не нормально.

Для начала положим, что мой middleware хочется интегрировать просто как связку .h +.cpp файлов внутрь нескольких проектов(раскиданных по случайным папкам), которые от него зависят. Все проекты и middleware используют локальные git репозитории (git kraken фронтенд). Как принято такое организовывать?

#1
6:21, 27 окт. 2018

Симлинки сделай.

#2
6:26, 27 окт. 2018

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

#3
6:39, 27 окт. 2018

Так тебе шашечки или ехать? :)

#4
(Правка: 6:57) 6:57, 27 окт. 2018

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

#5
6:59, 27 окт. 2018

Suslik
Тоже есть такой набор утили и классов. Вынесены в отдельный репозиторий, который как раз таки подключается сабмодулем.

Wraith
Будет работать только локально. И вообще гит плохо с симлинками дружит. Сылшал, что его можно сконфигурить для работы с ними, но зачем?

#6
8:10, 27 окт. 2018

в паскале всё чётко решается. Может переехать с крестов?

#7
8:34, 27 окт. 2018

Я думал это у меня одного такая придурь - два проекта вести параллельно. А тут некоторые десяток ведут. Одновременно. Могу лишь выразить автору свои соболезнования.

#8
9:34, 27 окт. 2018

Обычно я кидаю все проекты в один репозиторий и никаких проблем, особено с тем чтоб закомитить и запушить один проект, чтоб изменения появились во всех других.
Кроме сабмодулей гита есть еще cmake с external project или fetch content, только не уверен что они работают с приватными репозиториями.

#9
9:52, 27 окт. 2018

Прикольно, отсутствие пакетов в языке решают костылями в системе контроля версий. :)

#10
9:58, 27 окт. 2018

разумеется, с submodules в гите всё не так просто. если submodule хранить как локальный репозиторий, то из него можно вытаскивать изменения, но push'ить в него обратно изменения нельзя, потому что он считается non-bare. как быть? если указать все submodules как bare, то это значит, что с ними ни один gui client работать не сможет. что я делаю не так?

#11
10:10, 27 окт. 2018

Suslik
> как быть?
Перейти на svn. В нем в external-ы можно коммитить. :)

#12
10:19, 27 окт. 2018

Suslik

Храни bare где-нибудь на дропбоксе/гуглдиске.

#13
(Правка: 10:41) 10:35, 27 окт. 2018

Suslik
У меня все библиотечные проекты лежат в папке, на которую указывает environment variable. Потом в других проектах я инклудаю их через эту env var, что позволяет спокойно работать на нескольких машинах со всеми проектами (и библиотечными, и использующими этими библиотеки). Работает и для студийных проектов, и для всяких cmake, в т.ч. под линукс.
Я для каждого проекта использую git, но и тут этот подход вообще никак не ограничивает.

#14
10:41, 27 окт. 2018

Ghost2
> Храни bare где-нибудь на дропбоксе/гуглдиске.
меня смущает, что ни один git gui client не умеет не то что создавать, даже открывать bare репозитории. я пробовал посто в .git/config прописать bare = true. это позволяло в этот репозиторий коммитить, но я не уверен, что это вообще законно и меня в тюрьму за это не посадят.

Alexander K
мне хочется уметь делать чекаут репозитория вместе со всеми зависимостями.

Страницы: 1 2 3 4 5 Следующая »
ПрограммированиеФорумОбщее