Предыдущий ролик Следующий ролик  

Видео урок: Ветвление и слияние

Принципы контроля версий

Последние важные функции, которые мы будем выполнять в Perforce - это ветвление и слияние. Чтобы создать ветку (бранч), вы вызываете контекстное меню для папки и выбираете Branch. Теперь Perforce создает ветку в хранилище, но не в физической папке, а в папке, находящейся в хранилище. Так что нам нужно решить, где мы хотим поместить нашу папку для ветки. Так как это не физическая папка, лучше не помещать ветку в папку для основного бранча.

Лучше поместить ее в хранилище рядом с папкой для главной ветки. Итак, вот наш источник, depot/p1, и наша целевая папка не должна быть в depot/p1, например, b1. На самом деле, мы поместим ее здесь, введем -branch1/, и создадим бранч, выбрав флажок автоматически отправить после создания ветки. Давайте посмотрим на хранилище, и, когда мы его обновим, мы увидим, что у нас теперь есть две разные папки.

И эти файлы отличаются, мы не создали две отдельные папки в рабочей области, но создали две отдельных папки в хранилище. Теперь мы хотим отредактировать файл в ветке, мы выбираем Check Out and Open, добавляем новую функцию, feature1, No more available space, Look to the cloud, Your hard drive is full, сохраняем файл и выходим из Visual Studio.

Опять же, вы можете просмотреть файлы в хранилище. Напротив этого файла есть флажок, что означает, что мы извлекли его из системы в список изменений по умолчанию, и теперь мы собираемся отправить его. Теперь мы введем Added feature 1, и когда ветка будет создана, мы вернемся к списку изменений этой конкретной ветки. Если вы будете работать в ветке в течение длительного периода времени, вы хотите время от времени выполнять прямую интеграцию из основного бранча в вашу ветку. Помните, что прямая интеграция означает копирование изменений из основного бранча в вашу ветку, чтобы она не слишком отличалась от тех областей кода, над которыми вы в этой ветке не работаете.

Это значит, что если вы работаете в команде с другими людьми, они вносят изменения, и вы можете забирать их изменения, продолжая работать над вашими функциями, и гарантировать, что ваши функции не конфликтуют с другими, если они зависят от других функций, режде чем вы можете внести их в систему. В нашем случае, мы выполним только обратную интеграцию и объединим изменения из нашей ветки с основным бранчем. Для этого мы вызываем контекстное меню для папки ветки и выбираем Merge/Integrate. Теперь источником слияния является наша ветка.

Цель слияния будет папка p1. Теперь мы откроем здесь Options и выберем автоматически разделять файлы после слияния. Итак, процесс слияния очень простой. Если вы хотите выполнить слияние, а затем запустить инструмент Merge, чтобы проверить, что именно было объединено, вы можете не отмечать этот флажок. Но в данном случае, мы нажмем Merge, и здесь мы можем увидеть, что эти файлы были объединены и отмечены для интеграции, но изменение еще не был сохранено в хранилище.

Итак, мы откроем окно ожидающих изменений, и вы видите, что у нас есть Слияние depot/branch обратно в p1. Мы кликнем по нему правой кнопкой мыши и выберем Submit. Здесь появится автоматическое сообщение. Мы могли бы создать более подробное сообщение, но отправим это. И если мы сейчас вернемся сюда и откроем f1, то увидим функции main и feature1. Итак, слияние прошло успешно, мы взяли код из ветки 1 и добавили его в основной ствол, так что сейчас он содержит всю функциональность.

Это все о ветвлении и слиянии в Perforce. Прежде чем закончить эту главу, мы рассмотрим еще одну небольшую функцию. Обратите внимание, что Perforce GUI также предоставляет меню для оболочки, в котором вы можете выполнять дополнительные команды. Когда в будущем вы лучше освоитесь в Perforce, это меню может сэкономить ваше время. Это все, что касается контроля версий в Perforce.