LINUX.ORG.RU

Git. Два проекта в одном каталоге

 


0

2

У меня есть базовый проект и проект на его основе. Множество файлов этих проектов не пересекается. Можно ли вести два проекта в одном каталоге? Первое, что приходит на ум - перенести корень git на каталог выше для базового проекта, но может есть какое-то более элегантное решение?

Ответ на: комментарий от Deleted

submodule для пересекающихся?

ты не шаришь, пока не начнешь молиться Перуну ты не выучишь гит, я тебе это уже говорил. молись.

anonymous
()

Короче, я сделал через ветки. Было еще решение переименовать каталог .git и обращаться к репе через --git-dir

crutch_master ★★★★★
() автор топика
Ответ на: комментарий от crutch_master

Ну и зря. Надо было сделать базовый - submodul’ем, и проект на его основе - надмодулем. Субмодуль бы жил в своей подпапке, а на его основе - каталогом выше. Либо вообще разносить проекты в разные репы - тоже вариант, просто линковать сборщиком уже «по-хитрому».

menangen ★★★★★
()
Ответ на: комментарий от menangen

Ну и зря

Может быть и зря, пока поработаю так. В любом случае разнести ветки на 2 проекта не сложно. Сейчас их по сути два. Первая ветка отправляется в базовую репу, потом сливается с проектом-потомком во второй ветке, которая отправляется уже в свою репу.

Субмодуль бы жил в своей подпапке

Файлы разных проектов лежат в одном каталоге и изменения могут пересекаться (например в pom.xml).

crutch_master ★★★★★
() автор топика
Ответ на: комментарий от crutch_master

Короче, я сделал через ветки. Было еще решение переименовать каталог .git и обращаться к репе через --git-dir

лучше бы молился Перуну

anonymous
()
Ответ на: комментарий от crutch_master

Файлы разных проектов лежат в одном каталоге и изменения могут пересекаться (например в pom.xml).

тут уж надо определиться, нужны тебе данные в одно и то же время, тогда их надо в разные диры положить.

либо действительно, использовать разные ветки. удобно в этом случае ответвляться от какой то обобщенной ветки. я так организую свой профиль (dot files): каждая машина это отдельная ветка, из общего корня

Deleted
()
Ответ на: комментарий от menangen

Подмодули тормозять как павшие грешники. Пытался их как-то использовать, но не пошло.

ox55ff ★★★★★
()

Сабмодули - это серьезное усложнение. Если проект можно реорганизовать, что бы не использлвать сабы - лучше так и сделать.

Но если административно и идеологически проблему не решить, то сабмодули помогут.

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

Deleted
()
Ответ на: комментарий от Deleted

Так там костыльность только в одном, вроде - отсутствие транзитивности при checkout-е(например, в новой ревизии подмодуль был удалён, но при переключении на неё остаётся висеть в untracked). Или есть ещё какие-то проблемные моменты?

Deleted
()
Ответ на: комментарий от Deleted

костыльность

Именно что, сабы - это не совсем костыли. Это решение довольно нетривиальной задачи. Они просто бесят, но что делать. Поэтому, если можно - лучше избегать. Вон, в линукс-ядре нет сабов, а проект немаленький :)

только в одном, вроде - отсутствие транзитивности при checkout

Ну да, ... Есть даже двойной ключик у клин git clean -f -f ... . Это «одно» и есть суть сабмодулей - механизм внесение в дерево исходников поддиректории, точно указывая при этом номер ревизии, но с отсутствием транзитивности (а иначе, просто используй обычную диру, зачем саб)

Deleted
()
Ответ на: комментарий от Deleted

Ok. Я просто проблем, окромя указанной, не вижу и довольно охотно использую подмодули. Но это всё локалхост, вот я и интересуюсь граблями(с учётом того, что довольно часты негативные мнения на эту тему)

Deleted
()

мимокрокодил

У меня есть базовый проект и проект на его основе.

типичный случай

Множество файлов этих проектов не пересекается.

это нормально

Можно ли вести два проекта в одном каталоге?

зачем? каков практический смысл данной странной хотелки?

Решение: оформи основной проект как библиотеку, если нужен бойлерплейт сделай селектон и на его основе пили дочерний проект. Это в идеале. Так же можешь просто форкнуться от основного проекта и пилить подтягивая необходимые изменения из базового проекта (но это аналогично твоему решению с ветками).

Noob_Linux ★★★★
()
Ответ на: мимокрокодил от Noob_Linux

зачем? каков практический смысл данной странной хотелки?

У базового проекта будет куча наследников в перспективе. Хотелось бы туда как-то легко и просто перетягивать фичи без копипаста.

crutch_master ★★★★★
() автор топика
Ответ на: комментарий от crutch_master

Тогда форки. Мы так делаем на своих проектах. Потому подтягиваем изменеия из апстрима при обновлении и мержим в проект.

Noob_Linux ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.