Skip to content

Latest commit

 

History

History
16 lines (13 loc) · 2.72 KB

File metadata and controls

16 lines (13 loc) · 2.72 KB

Программа с помощью меню реализует следующие команды:

  • open - открываем файл в версии . Если версия не задана - открываем корневую версию (ее номер по умолчанию равен 0)

  • print - отображает на экран текущую версию файла, с которым работаем.

    Ф-ии редактирования:

  • edit - замена в текущей версии файла данных с индексом i (включительно) по индекс j (не включительно) на символы data

  • add - добавление к текущей версии файла данных, начиная с позиции с индексом i

  • remove - удаляем данные, как в лабе 3

    Ф-ии работы с версиями:

  • push - сохраняем текущую версию в виде разностного образа с предыдущей версией (не с корневой!). Функция возвращает номер версии, по которому можно впоследствии откатиться к этой версии.

  • pull <№ версии> - делает текущей версию с переданным номером (т.е. перемещается по дереву версий, получая текущую версию из разностной информации на пути). Дальнейшее редактирование запоминается как изменения(разность) относительно этой (текущей) версией.

  • delete_version <<№ версии> - удаляет версию из дерева. При этом корректируются наследники этой версии в дереве - разность теперь высчитывается относительно нового корня(предка удаленной вершины)

  • rebase - перебалансирует дерево, помещая текущую версию в корень дерева путем перерассчета разностей версий относительно нового корня. Все номера версий остаются прежними, кроме 2х версий - текущей и бывшей корневой. Их номера меняются местами (т.е. текущая версия становится корнем дерева с номером 0, прежний корень забирает себе бывший номер этой версии)