Project

General

Profile

Feature #9065

Updated by Alexey Khoroshilov over 6 years ago

Меню Repository 

 Для случая когда: 
 1. Есть git-репозиторий локальный + удалённый. 
 2. Режим не read-only, т.е. в частности текущий коммит совпадает с локальным HEAD. 

 Меню Repository содержит: 
 * Check for updates 
 * Revert local changes 
 * Publish local changes 

 *Логика Check for updates* 
 1 Сделать git fetch. 
 2 Проверить наличие изменений на сервере относительно локального master. 
 3 В зависимости от наличия удалённых изменений: 
 3.1 Если Нет изменений на сервере относительно локального master, то вывести сообщение сообщение, что 'No updates available' с кнопкой OK. 
 3.2 Если На сервере есть изменения относительно локального master, то: 
 3.2.1 Проверить наличие локальных изменений относительно локального master. 
 3.2.2 В зависимости от наличия локальных изменений: 
 3.2.2.1 Если Нет локальных изменений относительно локального master, то: 
 3.2.2.1.1 git pull. 
 3.2.2.1.2 Сбросить кэши и т.д. 
 3.2.2.1.3 Вывести сообщение сообщение, что 'Update successful' с кнопкой OK. Можно написать информацию про новый текущий коммит. 
 3.2.2.2 Если есть локальные изменения относительно локального master, то: 
 3.2.2.2.1 Вывести сообщение, что 'There are local changes. Do you want to merge local ' с кнопками 'Cancel', 'Revert local changes' и 'Start merge'. 
 3.2.2.2.2 В зависимости от нажатой кпопки: 
 3.2.2.2.2.1 Если нажата кнопка Cancel, то завершить работу. Система останется в исходном состоянии. 
 3.2.2.2.2.2 Если нажата кнопка 'Revert local changes', то удалить все отличия от локального мастера. Перейти к шагу 3.2.2.1.1. 
 3.2.2.2.2.3 Если нажата кнопка 'Start merge', то вывести сообщение, что 'Merge is not supported yet' с кнопкой OK. 

 *Логика Publish local changes* 
 1 Проверить наличие локальных изменений относительно локального master. 
 2 В зависимости от наличия локальных изменений: 
 2.1 Если нет локальных изменений относительно локального master, то вывести сообщение 'There is no local changes' с кнопкой OK. 
 2.2 Если есть локальные изменения относительно локального master, то: 
 2.2.1 Сделать git fetch. 
 2.2.2 Проверить наличие изменений на сервере относительно локального master. 
 2.2.3 В зависимости от наличия удалённых изменений: 
 2.2.3.1 Если Нет изменений на сервере относительно локального master, то вывести диалог с запросом коммит сообщения и т.д. 
 2.2.3.2 Если На сервере есть изменения относительно локального master, то: 
 2.2.3.2.1 Вывести сообщение 'There are remote updates. Continue with merge local changes?' с кнопками 'Cancel' и 'Start merge'. 
 2.2.3.2.2 В зависимости от нажатой кпопки: 
 2.2.3.2.2.1 Если Нажата кнопка Cancel, то завершить работу. Система останется в исходном состоянии. 
 2.2.3.2.2.2 Если Нажата кнопка 'Start merge', то вывести сообщение, что 'Merge is not supported yet' с кнопкой OK.

Back