Установка/настройка Git в сети DX Установка Git/LFS https://git-scm.com/download/win Установить Git и поддержку LFS (см. рисунок 1) Выбрать Notepad++ в качестве текстового редактора (или использовать другой по вкусу, если нет религиозных предубеждений, то качать здесь https://notepad-plus-plus.org/) Выбрать вариант использования Git из командной строки Выбрать вариант SSL для доступа по HTTPS Важно! Выбрать конверсию CRLF как показано на рисунке По собственным предпочтениям выбрать эмулятор терминала Указать дополнительные опции И выполнить собственно инсталляцию Подключение к серверу Git (GitLab) В браузере http://gitserver Имя пользователя: корпоративный e-mail Пароль: восстановить при первом подключении, потребуется подтверждение по e-mail + (возможно) подтверждение от Макса Литвинова. Если работаем через VPN, то соответственно сначала подключиться к VPN 😊 Генерация ключа и настройка доступа по SSH На сервере Git, в User Settings/SSH Keys сгенерировать новый ключ или добавить существующий ключ SSH если он у вас есть. Если ключ сгенерирован заново, то: 1. Скопировать в клипборд содержимое публичного ключа (начинается с ssh-rsa) 2. В домашнем каталоге (C:\Users\имя_пользователя) создать каталог .ssh 3. В каталоге .ssh создать текстовый файл (например id_rsa.pub) и вставить в него содержимое из клипборда 4. В каталоге .ssh создать текстовый файл config с таким содержанием # Private GitLab server Host gitserver IdentityFile ~/.ssh/id_rsa Проверить подключение по SSH > ssh -Tv git@gitserver Получение прав доступа к репозиторию Если еще не получены права доступа к репозиторию, то: 1. 2. 3. 4. Войти на http://gitserver под своим именем и паролем Выбрать меню Groups/Explore groups Найти группу Cross Platform Запросить права доступа (кнопка Request Access под названием группы) Fork и клонирование репозитория Войти на http://gitserver под своим именем и паролем. Выбрать пункт меню Projects/Explore projects. Выбрать репозиторий CrossPlatform / Core Выполнить ветвление проекта командой Fork (создать свою копию репозитория) Выполнить клонирование репозитория на свой компьютер: 1. Войти в свой форк на сервере GitLab (http://gitserver) и скопировать адрес репозитория в клипборд (адрес форка будет включать ваше имя пользователя, например: git@gitserver:roman/Core.git) 2. На каком-либо разделе жесткого диска создать каталог, в который будет склонирован репозиторий (например D:\Work) 3. Запустить командную строку, перейти в созданный каталог и выполнить клонирование вашего форка командой git clone. При этом последним аргументом указать имя бранча, например: > git clone git@gitserver:roman/Core.git 2018.2 4. Перейти в оглавление соответствующее имени бранча (например 2018.2) 5. Переключиться на нужный вам бранч > git checkout 2018.2 6. Настроить upstream (т.е. добавить ссылку на оригинальный репозиторий из которого был сделан форк) > git remote add upstream git@gitserver:CrossPlatform/Core.git 7. Проверить настройку вызовом git remote > git remote -v origin git@gitserver:roman/Core.git (fetch) origin git@gitserver:roman/Core.git (push) upstream git@gitserver:CrossPlatform/Core.git (fetch) upstream git@gitserver:CrossPlatform/Core.git (push) 8. Синхронизацию форка с upstream смотри здесь https://help.github.com/articles/syncing-afork/ 9. Настроить имя пользователя и e-mail https://help.github.com/articles/setting-your-usernamein-git/ Что получилось в итоге? upstream: CrossPlatform/Core origin: YourFork/Core Local Repository При этом upstream и origin располагаются на сервере (remote), а локальный репозиторий на вашем компьютере. Подготовка к работе Если для синхронизации локального репозитория с upstream и получения готовых сборок DeveloperBuild предполагается использовать скрипт dxupdate.py, то необходимо выполнить следующий действия: 1. Установить Python 3 https://www.python.org/downloads/ (при инсталляции добавить в PATH) 2. Создать каталог C:\Work 3. Создать линк на каталог в котором расположен локальный репозиторий > mklink /j c:\work\2018.2 d:\work\2018.2 4. При помощи DXVCS забрать содержимое папки ~\2018.2\Bin Получение изменений из upstream и девелоперских сборок 1. Перейти в каталог C:\Work\2018.2 2. Запустить dxupdate (для успешного выполнения скрипта необходимы права администратора) > python dxupdate.py --update 3. По окончании выполнения содержимое локального репозитория будет синхронизировано с upstream (по состоянию для которого был собран DeveloperBuild) + в оглавление Bin\Framework4 будут скопированы и зарегистрированы в GAC готовые сборки из DevelopeBuild 4. Текущий статус локального репозитория по отношению к origin можно посмотреть командой > git status -v 5. После выполнения dxupdate возможна ситуация когда изменения в локальном репозитории, полученные из upstream отсутствуют в origin. Их можно передать в origin вызовом > git push Работа с изменениями в локальном репозитории Варианты: 1. Плагин Git в VisualStudio 2. Интерфейс командной строки 3. Сторонние утилиты (например Atlassian SourceTree) Использование плагина Git в VisualStudio 1. В VisualStudio выбрать меню Tools/Options 2. В диалоге Options выбрать Source Control / Plug-In Selection, выбрать Git в качестве используемой системы контроля версий. При одновременном использовании с DXVCS и наличия в проекте/солюшене биндинга VSS эта настройка может «слетать» и вместо нее будет появляться DXVCS (если установлен плагин) или None. 3. После открытия решения в VisualStudio и открытия репозитория в строке статуса появятся индикаторы и кнопки для работы с репозиторием Git z 4. При наличии изменений в коде, их количество будет отображаться в строке статуса, а список изменений в окне Team Explorer. При помощи окна Team Explorer можно выполнить коммит (изменения будут внесены в origin), отмену изменений, просмотреть что именно поменялось (Compare with unmodified) и кем (Blame). Интерфейс командной строки Более подробно см. https://1drv.ms/b/s!AtOaYTXA3_iekDMUpzK_BJSAm25l Запросить статус > git status -v Переключиться на указанный бранч (в данном случае имя бранча «2018.2») > git checkout 2018.2 Забрать изменения в локальный репозиторий из указанного бранча upstream’а > git pull upstream 2018.2 Передать изменения из локального репозитория в указанный бранч origin’а > git push origin 2018.2 Добавить изменения в staged состояние > git add -p . Создать коммит > git commit -m “Комментарий” Накатить изменения в другой бранч (по хэш коду коммита): 1) получить хэш код > git log находим нужный коммит и копируем хэш 3) переключаемся на бранч, в который хотим накатить изменения (2018.1 для примера). Лучше перейти при этом в папку с нужной версией (2018.1) > git checkout 2018.1 4) обновляем исходники > git pull upstream 2018.1 5) накатываем изменения > git cherry-pick ef55286d2a8e216faa8f379491aa3941fade8fe6 Передача изменений в upstream / Merge request В своем форке на http://gitserver создать мерж-реквест Назначить мерж-реквест тестеру (найти тестер в выпадающем списке проще всего набрав “test”) Нажать кнопку “Submit Merge Request”. Убедиться что pipeline тестера стартовал и выполняется. По завершении pipeline’а на почту или в центр нотификаций Windows (в зависимости от настроек) придет соответствующее извещение. Если pipeline завершился успешно, назначить мерж-реквест на dxvcs2git.platform (который передаст изменения в DXVCS). В случае если тестер завершился с ошибкой, посмотреть/скачать артефакты соответствующей задачи.