LINUX.ORG.RU

Git + ln -s

 ,


0

1
./
+-file.c
+-file.h
+-storage -> /mnt/storage (made with ln -s)
             +- file2.c
             +- file2.h
git add storage/file2.c

fatal: спецификация пути «storage/file2.c» находится за символической ссылкой

Пробовал в локальном конфиге ставить

[core]
    symlinks = true

Пробовал ставить

[core]
    symlinks = false

Результат один и тот же. Как разрулить?

Ответ зачем оно мне:

Есть проект «А», он отдельный и никого не тянет. Есть проект «Б». Чтобы его собрать нужен проект А. Есть проект «В». Чтобы его собрать нужен проект А и проект Б.

В «В» и «Б» есть каталог code, в котором внутри есть соответствующие проекты. Я хочу чтобы у меня был на диске реп с «А», а «Б» тянул из него по симлинку (запарился синкать изменения руками), и чтобы «В» тянул изменения из «Б» и «А» тоже по симлинкам.

UPD
Обдумываю вариант с `sudo mount --bind SOURCEDIRECTORY TARGETDIRECTORY`

★★★★★

Последнее исправление: PPP328 (всего исправлений: 3)

Результат один и тот же. Как разрулить?

Разрулить не симлинками, а, например, через git submodule. Либо вытягивать зависимости сборочными скриптами

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

Не вариант, потому что проект «В» не должен тянуть из паблик-гитхаба.

Что, гит вообще не умеет в симлинки?

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

Плюс я так понимаю нельзя работая над репой В добавить изменения в А если юзаются submodules. Вообще печаль.

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

Не вариант, потому что проект «В» не должен тянуть из паблик-гитхаба.

А кто говорил, что сабмодули должны быть обязательно паблик-репозиториями?

Что, гит вообще не умеет в симлинки?

Умеет. Но не пересекающие границу репозитория.

Плюс я так понимаю нельзя работая над репой В добавить изменения в А если юзаются submodules. Вообще печаль.

Почему нельзя? Можно. Нужно лишь затем явно будет указать, что изменилась версия (коммит) сабмодуля. И это как раз очень хорошо (чтобы понять почему это хорошо, можно почитать, например, об svn:external и какие это приносит проблемы).

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

Короче решил через mount --bind. Не нужно морочить себе голову явными указаниями кто где кого изменил и думать о том что гит что-то не так развернул или не стянул.

Но не пересекающие границу репозитория.

Вот вот. Набуй с пляжу.

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

А кто говорил, что сабмодули должны быть обязательно паблик-репозиториями?

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

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

Тянуть его с гита плохо, ибо тогда мы начнем с 1500 компьютеров разом это делать.

Прямо настолько большой, что всё сразу загнётся? Да и «тянуть» обычно надо один раз всего.

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

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

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

Тянуть его с гита плохо, ибо тогда мы начнем с 1500 компьютеров разом это делать.

вот прямо вот все разом с 1.5к компов? мне кажется это несколько приувеличено. ну и не отвечает на вопрос, чем это отличается от обновления внешней директории (/mnt/storage)

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

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

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

Одновременно потому что идет сигнал на обновление.

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