ВСЕ НИЖЕ СКАЗАННОЕ НЕОБХОДИМО ТОЛЬКО ДЛЯ РАБОТЫ В КОМАНДЕ ! ! !
Если вы работаете один или делитесь своим кодом через любой анологичный сервис, возможно вам это не интересно, не удобно, не привычно будет!
Во избежание медицинских противопоказаний, вы даете согласие не выдвигать претензий к автору после прочтения
Во избежание медицинских противопоказаний, вы даете согласие не выдвигать претензий к автору после прочтения
Многие из вас знакомы с тем что такое хранилище (репозитарий) git , так же как и сервисом github.com предоставляющий более удобное взаимодествие с хранилищами через их интерфейс на сайте и их ПО для основых ОС ( GitHub Desktop ) .
Репозито́рий, хранилище — место, где хранятся и поддерживаются какие-либо данные. Чаще всего данные в репозитории хранятся в виде файлов, доступных для дальнейшего распространения по сети. Существуют репозитории для хранения программ, написанных на одном языке или предназначенных для одной платформы
Git (произносится «гит»[7]) — распределённая система управления версиями.
И все было бы ничего, да только наши умельцы из Valve сделали структуру аддонов в DOTA2, не совсем удобной.
Система git следит за папкой и всем ее содержимым на предмет изменения, то что не требуется для отслеживания заносится в игнор.
В нашем случае без ухищрений мы можем получить 1 проект с хранилищем в git в папке с установленной DOTA2. (возможно вы даже этим не пользуетесь)
Тот же самый хаос есть и в папке Content, нас интересует только 1 папка из dota_addons - тот самый наш проект/кастомная_карта/дополнение_dota2
У нас это папка testmklink полный путь :
Я специально выделил красным цветом то, за чем следить нашему гит не следует. Мы это не изменяем, к нашему проекту это относится косвенно, там Valve производит свои обновления , патчи, кеши итп.D:\Steam\steamapps\common\dota 2 beta\content\dota_addons\testmklink
D:\Steam\steamapps\common\dota 2 beta\game\dota_addons\testmklink
Мы хотим следить и делиться с участниками команды - только содержимым папки testmklink , большей частью ее содержимого.
Все что находится на красном пути мы можем занести в игнор систему гит, и сразу встает большая проблема - за этим игнор списком надо следить, все ли игнорируется после очередного обновления из стима.
1 Можно упороться и придумать много хороших масок для игнора - но вы никогда не сможете себе дать 100% гарантию работы этого игнор списка.
2 У вас не будет возможности параллельно работать с несколькими проектами (основной и тестовые, или просто другие кастомки из разных команд).
Мы подошли к основному вопросу - можно ли как то изменить ситуацию ? - ответ ДА. Ниже не большой гайд:
Всем вам знакомы ярлыки (на файл или папку), нечто подобное мы и сделаем, только что бы любая внешняя программа не заметила разницу.
Наш git будет следить за содержимым нашего проекта :
наш проект в папке Dota2:
эти папки использует Dota 2 Workshop ToolsD:\Steam\steamapps\common\dota 2 beta\content\dota_addons\testmklink
D:\Steam\steamapps\common\dota 2 beta\game\dota_addons\testmklink
Всем остальным мы создадим прозрачный доступ к этим папкам.
Наш проект в папке git:
Снизу стрелочкой указан наш скрипт выполняющий первую часть "магии".D:\Apro\test\content\dota_addons\testmklink
D:\Apro\test\game\dota_addons\testmklink
!!!ВАЖНО в пути папок и названиях не должен быть восклицательный знак !!!
- Вы создали проект
- Добавляете мой скрипт (это обычный bat файл) скачать отсюда можно клонировать проект, он пустой.
- Редактируем скрипт под себя сохраняем
- Затем проверив что у нас есть папки content\dota_addons и game\dota_addons , а так же в самой доте есть ваш проект "имя папки" которой отредактированно в скрипте выше - ЗАПУСКАЕМ СКРИПТ
- Скрипт проверяет где лежит ваш проект в доте (2 папки), затем проверяет, что в папках гит нету мешающих папок с названием как в доте. И только после этого создает заветные "ярлыки".
- Повторный запуск демонстрирует ошибку: тут сказанно, что папка или ссылка уже существует и ее надо удалить.
- На этом работа скрипта и действия с ним окончены, мы получили 2 окна к проекту в папке дота2 (на самих папках видна стрелочка как на обычных ярлыках).
- Теперь осталось исправить маленькую особенность работы github или git в windows.
При работе с ветками, или иными откатами в git проекте, какое то ПО удаляет нашу ссылку и восстанавливает на ее место обычную папку с содержимым из архива. Решение не совсем мне нравится, но пока что это лучшее, что смог придумать. Мы запретим системе удалять эти ссылки, при этом внутри папки и подпапок должен оставаться полный доступ к содержимому, Поехали!
- Продолжение в следующем сообщении (лимит на скриншоты).
Последнее редактирование: