Project

General

Profile

Feature #9065

Меню Repository

Added by Alexey Khoroshilov 5 months ago. Updated 2 months ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
-
Target version:
Start date:
07/05/2018
Due date:
% Done:

100%

Estimated time:
Published in build:
0.21.511

Description

Меню 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', 'Discard local changes' и 'Start merge'.
3.2.2.2.2 В зависимости от нажатой кпопки:
3.2.2.2.2.1 Если нажата кнопка Cancel, то завершить работу. Система останется в исходном состоянии.
3.2.2.2.2.2 Если нажата кнопка 'Discard 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.


Related issues

Related to Requality - Bug #9084: [Repository] Publish local changes -> Revert local changes возвращает к версии с сервера.Rejected2018-07-10

Associated revisions

Revision 5fd8b43f (diff)
Added by Denis Kildishev 5 months ago

fixes:#9065;fixes:#9085;fixes:#9084;

History

#1 Updated by Alexey Khoroshilov 5 months ago

  • Description updated (diff)

#2 Updated by Denis Kildishev 5 months ago

  • % Done changed from 0 to 100
  • Status changed from New to Resolved

#3 Updated by Denis Kildishev 5 months ago

  • Published in build set to 0.21.506

#4 Updated by Alexey Khoroshilov 5 months ago

Логика Revert local changes
1 Проверить наличие локальных изменений относительно локального master.
2 В зависимости от наличия локальных изменений:
2.1 Если нет локальных изменений относительно локального master, то вывести сообщение 'There is no local changes' с кнопкой OK.
2.2 Если есть локальные изменения относительно локального master, то:
2.2.1 Вывести сообщение 'All local changes will be lost. Are you sure?' с кнопками 'Cancel' и 'Revert'.
2.2.2 Если нажат Cancel ничего больше не делать.
2.2.3 Если нажат Revert:
2.2.3.1 Привести текущее состояние в полное соответствие с локальным master (т.е. откатить изменившиеся файлы, восстановить удалённые файлы и удалить вновь появившиеся).
2.2.3.2 Вывести сообщение 'Reversion successful' с кнопкой OK.

#5 Updated by Viktoria Kopach (Gingina) 5 months ago

  • Published in build deleted (0.21.506)
  • Status changed from Resolved to Open

В связи с появившимся дополнением для Revert local changes тикет снова открыт.

#6 Updated by Alexey Khoroshilov 5 months ago

  • Description updated (diff)

#7 Updated by Denis Kildishev 5 months ago

  • Status changed from Open to Resolved

#8 Updated by Denis Kildishev 5 months ago

  • Related to Bug #9084: [Repository] Publish local changes -> Revert local changes возвращает к версии с сервера. added

#9 Updated by Denis Kildishev 5 months ago

  • Published in build set to 0.21.511

#10 Updated by Viktoria Kopach (Gingina) 2 months ago

  • Status changed from Resolved to Verified

В разделе "Publish local changes" не хватает описания одной опции.
2.2.3.2.1 Вывести сообщение 'There are remote updates. Continue with merge local changes?' с кнопками 'Cancel' и 'Start merge'. Есть еще кнопка 'Discard local changes'.
2.2.3.2.2.3 Если нажата кнопка 'Discard local changes', то удалить все отличия от локального мастера. Перейти к шагу 2.2.1.

#11 Updated by Alexey Khoroshilov 2 months ago

  • Status changed from Verified to Closed

Отличие от ТЗ малоосмысленное, но не критичное.

Also available in: Atom PDF