PDA

Просмотр полной версии : Как настроить git с симлинками?


Korchy
23.08.2017, 11:57
Подскажите, кто использует git в своих проектах. Я раньше git-ом не пользовался, но установил, вроде бы во всем разобрался. Ос - windows. Остался один момент, который для меня не очень удобен. Я обычно некоторые файлы, общие для нескольких проектов (например статический класс с несколькими функциями для управления текстом), держу отдельно а в проекты подключаю, создавая симлинк на нужный файл из директории проекта. ide нормально работают с симлинками, воспринимая его как файл. А вот git обрабатывает симлинк именно как симлинк и в удаленный репозиторий тоже закачивает не содержимое файла, а только сам симлинк. git config --global symlnk true ничего не меняет (что false, что true) разницы нет, все равно в репозиторий уходит линк а не файл.
Так вот вопрос, если кто сталкивался с этим моментм - можно ли как-то поднастроить git, чтобы он работал с симлинками как с файлами?

Psycho Tiger
23.08.2017, 18:02
Исходя из моего опыта и быстрого гугла
https://stackoverflow.com/questions/8470315/git-commit-symlink-as-a-regular-file

нет, нельзя.
Но можешь сделать наоборот: иметь файл в репозитории и ставить на него симлинк из других мест. Или хардлинк, но я неуверен что виндоус умеет в хардлинки.
Будучи занудным хочу спросить, а что это за файл такой? Не могу придумать ситуацию в которой это было бы полезно

GBee
23.08.2017, 18:29
У меня под общие либы была отдельная репа

alexcon314
23.08.2017, 21:50
https://stackoverflow.com/questions/5917249/git-symlinks-in-windows

Korchy
23.08.2017, 22:06
Но можешь сделать наоборот: иметь файл в репозитории и ставить на него симлинк из других мест. Или хардлинк, но я неуверен что виндоус умеет в хардлинки.
Будучи занудным хочу спросить, а что это за файл такой? Не могу придумать ситуацию в которой это было бы полезно

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

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

У меня под общие либы была отдельная репа
Т.е. можно сделать отдельный репозиторий для общих файлов, в конкретном проекте игнорить симлинки? Т.е. получается как бы работа не с одним а сразу с двумя отдельными репозиториями?

https://stackoverflow.com/questions/5917249/git-symlinks-in-windows
Это что-то пока для меня из высшей математики. Можно пояснить что сдесь делается и как это работает на практике?

GBee
25.08.2017, 02:15
Т.е. можно сделать отдельный репозиторий для общих файлов, в конкретном проекте игнорить симлинки? Т.е. получается как бы работа не с одним а сразу с двумя отдельными репозиториями?

Ну да, общая либа не часто меняется по идее, так что заморочек не много.

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

Korchy
25.08.2017, 12:09
Ну да, общая либа не часто меняется по идее, так что заморочек не много.


Спасибо за идею, попробую наверное так все организовать.

Psycho Tiger
29.08.2017, 17:17
Можешь ткнуть, где о таком почитать можно? Хотя все равно не очень выход, было бы удобно иметь один файл на несколько репозиториев, т.е. в каком-то одном лежит сам файл, а в остальные он просто линкуется. Как такое проделать на том же GitHub?

Это в принципе плохая идея. У флеша есть какой-нибудь менеджер пакетов, вроде npm/pod/bundler/что-угодно? По идее, такая проблема решается публикацией пакета и dependency на него.

Korchy
29.08.2017, 23:47
Это в принципе плохая идея. У флеша есть какой-нибудь менеджер пакетов, вроде npm/pod/bundler/что-угодно? По идее, такая проблема решается публикацией пакета и dependency на него.

Мне не только для флеша. Я пытаюсь как-то универсально организовать общее рабочее место. А работать мне приходится с несколькими проектами на разных языках (отдельный на c++, отдельных на vfp, отдельный на js+php, отдельный на python), и часть из них под винду идут, тут с зависимостями не очень.

illuzor
30.08.2017, 13:51
часть из них под винду идут, тут с зависимостями не оченьПопробуйте gradle. Наверняка к любому проекту его можно прикрутить.