# SXXXXXXX_CodeBridge SXXXXXXX_CodeBridge is a small desktop utility that compares two directory trees, creates ZIP "export packages" containing changed files and a JSON manifest, and can apply those packages to target trees. It is intended for lightweight synchronization and code/package exchange workflows. **Supported platforms:** Windows, macOS, Linux (requires Python 3.11+ and tkinter) ## Features / Caratteristiche - Compare two directory trees and show added, modified and deleted files - Produce a ZIP export package with a `bridge_manifest.json` describing the changes - Apply an export package to a destination tree (handles deletions and file extraction) - GUI with side-by-side diff viewer, minimap, profile-based ignore lists, and embedded logs ## Quick Start / Avvio rapido English 1. Install Python 3.11+ and ensure `tkinter` is available. 2. From the repository root run: ```bash python -m codebridge ``` ### Running in a local virtual environment / Eseguire in un ambiente .venv It is recommended to run the application inside an isolated Python virtual environment. Windows (PowerShell or Command Prompt): ```powershell # from repository root scripts\create_venv.bat # then activate .venv\Scripts\activate.bat python -m codebridge ``` Unix / macOS (bash / zsh): ```bash # from repository root ./scripts/create_venv.sh source .venv/bin/activate python -m codebridge ``` Notes / Note: - `tkinter` is part of the Python standard library but may need the platform GUI packages installed (e.g., `sudo apt install python3-tk` on Debian/Ubuntu). - Add any external dependencies to `requirements.txt` and re-run the script to install them into `.venv`. Italiano 1. Installa Python 3.11+ e assicurati che `tkinter` sia disponibile. 2. Dalla cartella del repository esegui: ```bash python -m codebridge ``` ## Data contract / Manifest Exported ZIP packages contain a `bridge_manifest.json` with the following keys: ```json { "timestamp": "2023-10-27T10:00:00", "commit_message": "...", "changes": {"added": [], "modified": [], "deleted": []} } ``` This manifest is used when applying a package so deletions are handled and modified/added files are extracted. ## Profiles and ignore lists / Profili e liste di ignore The application supports named profiles that persist to `profiles.json` at the repository root. Each profile can include `ignore_extensions` so you can exclude build artifacts or temporary files from comparisons. ## Contributing / Contribuire - Please follow PEP8 style for Python changes. - GUI and core logic are separated under `codebridge/gui` and `codebridge/core` — keep UI-only changes in `gui` and logic changes in `core`. ## License Please check repository root for license information.