Skip to main content

A smart CLI tool that provides intelligent recommendations and helps solve merge conflicts

Project description

Fancy Git

FancyGit Overview

A smart CLI tool that provides intelligent recommendations and helps solve merge conflicts by analyzing git command outputs.

Email Notifications Test

Testing email notification system - this change should trigger an email to the commit author.

Overview

FancyGit is a CLI wrapper around git commands that:

  • Runs git commands and captures their output
  • Detects warnings and errors in real-time
  • Provides user confirmation for clean operations
  • Prepares for AI-powered recommendations (future phase)

Current Implementation (Phase 1)

✅ Features Implemented

  • CLI Interface: fancygit command works system-wide
  • Git Commands: Full support for add, commit, push, and pull with argument passing
  • Warning/Error Detection: Regex-based pattern matching for common git issues
  • User Confirmation: Prompts for confirmation when no issues detected
  • Cross-platform: Works on macOS, Linux, and Windows

🔍 Detection Patterns

Error Patterns:

  • error:, fatal:, failed, rejected
  • conflict, merge conflict, unable to

Warning Patterns:

  • warning:, WARNING:, behind, ahead, diverged

Installation

Quick Setup

Run the automated cross-platform launcher script:

python3 launcher.py

This script will:

  • Automatically detect your operating system (Linux, macOS, or Windows)
  • Run the appropriate installation script for your system
  • Check Python 3.6+ and Git installation
  • Make fancygit.py executable
  • Create system-wide symlink (Unix-like systems) or add to PATH (Windows)
  • Test the installation

Usage

Basic Commands

# Add files
fancygit add .
fancygit add filename.txt

# Commit changes
fancygit commit -m "Your commit message"
fancygit commit --amend

# Push to remote
fancygit push origin main

# Pull from remote  
fancygit pull origin main

# With additional arguments
fancygit push origin main --force-with-lease
fancygit pull origin main --rebase

How It Works

  1. Command Execution: Runs the actual git command
  2. Output Analysis: Scans stdout/stderr for warning/error patterns
  3. User Feedback:
    • If issues detected: Shows detailed error/warning messages
    • If no issues: Prompts for confirmation with "enter 'y' to run the command"
  4. Action: Executes or cancels based on user input

Example Output

No Issues:

Running: git push origin main
✅ No warnings or errors detected
No warning messages - enter 'y' to run the command: y
Command executed successfully!

Issues Detected:

Running: git pull origin main
❌ Errors detected:
    error: couldn't find remote ref refs/heads/main

Architecture

FancyGit CLI → Git Commands → Collect Output → Pattern Matching → User Interface (CLI)

Future Roadmap

Phase 2: AI Pipeline

  • Implement AI model for parsing warnings/errors
  • Generate intelligent recommendations
  • Add confidence scoring (backend only)

Phase 3: Smart Resolution

  • Automatic conflict resolution suggestions
  • Context-aware recommendations
  • Integration with popular Git workflows

File Structure

Fancy_Git/
├── fancygit.py          # Main CLI application
├── launcher.py          # Cross-platform launcher script
├── README.md            # This file
├── images/              # Images and documentation
│   └── overview.png     # Project overview image
└── .git/                # Git repository

Note: Platform-specific installation scripts (start.sh, start.bat) are included but automatically managed by launcher.py. THIS SHOULD BE UPDATED ASAP

Requirements

  • Python 3.6+
  • Git installed and configured
  • System permissions for symlink creation
  • Note: No external dependecies for now so no environment setup required

License

MIT License (For now as it is still a private project)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fancygit-1.0.7.tar.gz (43.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fancygit-1.0.7-py3-none-any.whl (42.8 kB view details)

Uploaded Python 3

File details

Details for the file fancygit-1.0.7.tar.gz.

File metadata

  • Download URL: fancygit-1.0.7.tar.gz
  • Upload date:
  • Size: 43.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for fancygit-1.0.7.tar.gz
Algorithm Hash digest
SHA256 a80356656697e837971ef6df23dcbdbbc5d58cff1afc249476199b220c2dd727
MD5 dc60fd455bfcdacd3082ade5378ab214
BLAKE2b-256 97b1363ac2375576c359d2b8a05d66a83f1c3398d68c169521d6fe656841da97

See more details on using hashes here.

File details

Details for the file fancygit-1.0.7-py3-none-any.whl.

File metadata

  • Download URL: fancygit-1.0.7-py3-none-any.whl
  • Upload date:
  • Size: 42.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for fancygit-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 cde9ed1ec8c3c2fae1d3b3e7d90523544b044aadc27d8809d6b9da4a5bd14dec
MD5 fcf3bde9324942000f2f90bffecd6466
BLAKE2b-256 4e4160bf47b4495dafe62e19bdbf85a7ddcd1697cf4e3ffa18aad0e79b36eaf1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page