Metadata-Version: 2.4
Name: qgitc
Version: 5.8.3
Summary: A cross-platform Git GUI tool
Author-email: Weitian Leung <weitianleung@gmail.com>
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/timxx/qgitc
Project-URL: Repository, https://github.com/timxx/qgitc.git
Project-URL: Issues, https://github.com/timxx/qgitc/issues
Keywords: git,conflict,viewer,blame,ai,llm,log,commit,code review
Classifier: Operating System :: POSIX
Classifier: Operating System :: POSIX :: BSD
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: PySide6-Essentials>=6.3.0; sys_platform != "linux"
Requires-Dist: PySide6>=6.2.0; sys_platform == "linux"
Requires-Dist: chardet
Requires-Dist: psutil; sys_platform == "win32"
Requires-Dist: packaging
Requires-Dist: opentelemetry-api
Requires-Dist: opentelemetry-sdk
Requires-Dist: opentelemetry-exporter-otlp-proto-http
Requires-Dist: pygit2; sys_platform == "win32"
Dynamic: description
Dynamic: description-content-type
Dynamic: license-file

# QGitc

[![Build Status](https://github.com/timxx/qgitc/actions/workflows/main.yml/badge.svg)](https://github.com/timxx/qgitc/actions)
[![Unit Testing](https://github.com/timxx/qgitc/actions/workflows/tests.yml/badge.svg)](https://github.com/timxx/qgitc/actions)
[![Coverage](https://timxx.github.io/qgitc/badges/coverage.svg)](https://github.com/timxx/qgitc/actions)
[![PyPI version](https://img.shields.io/pypi/v/qgitc.svg)](https://pypi.org/project/qgitc)
[![Python version](https://img.shields.io/pypi/pyversions/qgitc.svg)](https://pypi.org/project/qgitc)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)


A cross-platform Git GUI tool designed to simplify commit history exploration, blame tracking, committing changes, and resolving conflicts. Leverage AI for generating commit messages and performing code reviews.


## Screenshots

### Main Window
![Main Window](https://raw.githubusercontent.com/timxx/qgitc/refs/heads/master/screenshots/main.png)

### Blame Window
![Blame](https://raw.githubusercontent.com/timxx/qgitc/refs/heads/master/screenshots/blame.png)

### Commit Window
![Commit](https://raw.githubusercontent.com/timxx/qgitc/refs/heads/master/screenshots/commit.png)

### AI Assistant
![AI Assistant](https://raw.githubusercontent.com/timxx/qgitc/refs/heads/master/screenshots/assistant.png)

### Merge Tool
![Merge Tool](https://raw.githubusercontent.com/timxx/qgitc/refs/heads/master/screenshots/resolve.png)

## Features

- [x] Two branches view for easy comparing a conflict commit base on the file.
- [x] Visualize white spaces and carriage return for easy diff compare.
- [x] Syntax highlight for diff contents.
- [x] Filter logs by file path or commit pattern.
- [x] Copy commit summary as HTML format for pasting.
- [x] Custom pattern for creating links.
- [x] Collect conflict files for merging.
- [x] Launch specify merge tool for specify file suffix.
- [x] Builtin image diff tool for easy finding the difference.
- [ ] Auto finding which commit cause conflicts.
- [x] File blame support
- [x] AI intergrated
- [x] Composite mode
- [x] AI-based commit
- [x] AI-based code review


## Requirements

- `pip install -r requirements.txt`
- git (command line)
- pywin32
  - Optional for Windows if you want record the conflict log easily
- pywpsrpc
  - Optional for Linux if you want record the conflict log easily
- openpyxl
  - Optional if no pywin32/ pywpsrpc is available


## Build & Run

- Using source directly
  - Run **python setup.py build** to build the project
  - Run **qgitc.py** under project root directory.

- Build from source
  - Run *pip install .* under project root directory to install qgitc, and then run *qgitc* command.

- Install from pypi
  - pip install qgitc


## Shell Integration

``` sh
qgitc shell register
# to unregister, run:
qgitc shell unregister

# to use the source directly:
python qgitc.py shell register

# for Linux user
# if your file manager isn't the default one comes with desktop
# say your desktop is Ubuntu, but use thunar as default one
# use --file-manager to specify reigster for
qgitc shell register --file-manager=thunar
```

## Icons

Most of the [SVG icons](./qgitc/data/icons/) come from [Google Fonts](https://fonts.google.com/icons).

Some were resized with Inkscape to match the size for QGitc.
