Автор: Хорошавин Евгений, ФТ-203
Локальная система контроля версий, реализованная по образу и подобию git
.
- Python версии не ниже 3.8
- setuptools
- пакет команд: commands/
- базовый класс для всех команд: command.py
- add.py
- branch.py
- checkout.py
- cherry_pick.py
- commit.py
- diff.py
- init.py
- log.py
- merge.py
- stash.py
- status.py
- tag.py
- команды-"пасхалки": easter_eggs/
- credits.py
- joke.py
- remotes.py
- текстовые файлы для шуток: jokes/
- полезные утилиты для работы программы:
- diff_utils.py
- file_utils.py
- main_file_utils.py
- модуль, настраивающий дальнейшее выполнение команд: main.py
- класс репозитория: repository.py
- тесты: tests/
- класс, описывающий коммит: commitobject.py
- файл, с помощью выполняется сборка для запуска утилиты из консоли: setup.py
python setup.py develop
Ввод команд, начиная с goodgit.
goodgit init
goodgit add **
goodgit commit -m "example"
Использование команд аналогичноgit
goodgit --help
goodgit {command} --help
Каждая команда является реализацией базового класса и должна определять
методы configure
для настройки аргументов и подсказок и execute
, который
вызывается при вызове определённой команды. Работа с репозиторием
осуществляется через класс Main. В нём есть информация о ветках и прочих вещах.
Работа в консолью осуществляется через argparse
. Для удобства ввода
используется сборка через setuptools