79 lines
2.7 KiB
Markdown
79 lines
2.7 KiB
Markdown
# 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.
|