Metadata-Version: 2.2
Name: hermes-revision-system
Version: 0.1.0
Summary: Hermes Revision System - современная система контроля версий
Home-page: https://github.com/SomeMedic/hermes-revision-system
Author: SomeMedic
Author-email: maxg2015maxg@gmail.com
Project-URL: Bug Tracker, https://github.com/SomeMedic/hermes-revision-system/issues
Project-URL: Documentation, https://github.com/SomeMedic/hermes-revision-system/wiki
Project-URL: Source Code, https://github.com/SomeMedic/hermes-revision-system
Keywords: hrs,hermes,version control,git,vcs,система контроля версий
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Version Control
Classifier: Topic :: Software Development :: Version Control :: Git
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Natural Language :: Russian
Classifier: Natural Language :: English
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8.1.7
Requires-Dist: watchdog>=3.0.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: graphviz>=0.20.1
Provides-Extra: dev
Requires-Dist: pytest>=7.4.0; extra == "dev"
Requires-Dist: black>=23.12.1; extra == "dev"
Requires-Dist: flake8>=7.0.0; extra == "dev"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: project-url
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# HRS - Hermes Revision System

Современная и эффективная система контроля версий, написанная на Python.

[![PyPI version](https://badge.fury.io/py/hermes-revision-system.svg)](https://badge.fury.io/py/hermes-revision-system)
[![Python Version](https://img.shields.io/pypi/pyversions/hermes-revision-system.svg)](https://pypi.org/project/hermes-revision-system/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## Возможности

- 📦 Базовые операции контроля версий (init, add, commit, status)
- 🌳 Ветвление и слияние (branch, checkout, merge)
- 🏷️ Теги для маркировки важных версий
- 🔄 Система хуков для автоматизации
- 📚 Управление подмодулями
- 📝 Стэш для временного сохранения изменений
- 📊 Визуализация структуры репозитория и истории коммитов
- 🌐 Работа с удаленными репозиториями
- 🚫 Система игнорирования файлов

## Требования

- Python 3.8 или выше
- Graphviz (для визуализации)

## Установка

### Через pip

```bash
pip install hermes-revision-system
```

### Установка Graphviz

#### Windows
```bash
winget install graphviz
```

#### macOS
```bash
brew install graphviz
```

#### Linux
```bash
sudo apt-get install graphviz  # Debian/Ubuntu
sudo dnf install graphviz      # Fedora
sudo pacman -S graphviz       # Arch Linux
```

## Использование

После установки команда `hrs` станет доступна глобально.

### Основные команды

```bash
# Инициализация репозитория
hrs init

# Добавление файлов
hrs add <files>

# Создание коммита
hrs commit -m "commit message"

# Просмотр статуса
hrs status

# История коммитов
hrs log
```

### Работа с ветками

```bash
# Создание ветки
hrs branch <name>

# Список веток
hrs branches

# Переключение веток
hrs checkout <branch>

# Слияние веток
hrs merge <branch> -m "merge message"

# Удаление ветки
hrs delete-branch <name>
```

### Теги

```bash
# Создание тега
hrs tag create <name> -m "message"

# Список тегов
hrs tag list

# Удаление тега
hrs tag delete <name>

# Переключение на тег
hrs tag checkout <name>
```

### Временное хранилище (stash)

```bash
# Сохранение изменений
hrs stash save -m "message"

# Список сохраненных изменений
hrs stash list

# Применение и удаление последнего stash
hrs stash pop

# Применение без удаления
hrs stash apply <index>

# Удаление stash
hrs stash drop <index>

# Очистка всего stash
hrs stash clear
```

### Визуализация

```bash
# Граф структуры директорий
hrs graph tree output.png                    # Сохранить в файл
hrs graph tree -c                            # Вывести в консоль
hrs graph tree -c --ignore "__pycache__"     # С игнорированием файлов

# Граф истории коммитов
hrs graph history output.png                 # Сохранить в файл
hrs graph history -f svg output.svg          # В формате SVG
hrs graph history -n 10 output.png           # Ограничить количество коммитов
```

### Удаленные репозитории

```bash
# Добавление удаленного репозитория
hrs remote add <name> <url>

# Список удаленных репозиториев
hrs remote list

# Отправка изменений
hrs push <remote> <branch>

# Получение изменений
hrs pull <remote> <branch>

# Загрузка информации
hrs fetch <remote>

# Клонирование репозитория
hrs clone <url> [destination]
```

### Игнорирование файлов

```bash
# Добавление паттерна
hrs ignore add "*.pyc"

# Удаление паттерна
hrs ignore remove "*.pyc"

# Список игнорируемых паттернов
hrs ignore list

# Создание стандартного .hrsignore
hrs ignore init
```

## Разработка

1. Клонируйте репозиторий
```bash
git clone https://github.com/SomeMedic/hermes-revision-system.git
cd hermes-revision-system
```

2. Создайте виртуальное окружение
```bash
python -m venv venv
source venv/bin/activate  # Linux/macOS
venv\Scripts\activate     # Windows
```

3. Установите зависимости для разработки
```bash
pip install -e ".[dev]"
```

4. Запустите тесты
```bash
pytest
```

## Лицензия

MIT License. См. файл [LICENSE](LICENSE) для подробностей. 
