6.0 KiB
RepoSync: Offline Repository Synchronization
RepoSync is a desktop application designed to synchronize Git repositories and their wikis between two servers that do not have a direct network connection. It's the perfect tool for developers and system administrators working in air-gapped environments, secure corporate networks, or any situation where a repository needs to be mirrored offline.
The process is managed through a portable "bundle folder," which acts as an intermediary to transfer the repository data.
Core Features
- Export to Bundles: Connect to a source server (e.g., a Gitea instance) and export selected repositories and their wikis into a self-contained bundle folder.
- Import from Bundles: Connect to a destination server and import the content from the bundle folder, creating or updating repositories and wikis.
- Intelligent Sync Status: RepoSync automatically compares the local bundles with the remote server to show the status of each repository (e.g.,
Synchronized,Needs Export,Ready to Import,Diverged). - Profile Management: Easily save and manage connection profiles (URL, access token) for multiple servers.
- Graphical User Interface: An intuitive GUI built with Tkinter makes the entire process simple and visual.
- Wiki Support: Full support for synchronizing the wiki associated with each repository, including a guided process for first-time imports.
How It Works
The workflow is based on a simple, three-step offline process:
Source Environment -> [RepoSync EXPORT] -> Bundle Folder (Portable) -> [RepoSync IMPORT] -> Destination Environment
- Export: On a machine with access to the source server, you use RepoSync to export repositories into a local folder. This folder contains Git bundle files (
.bundle) and amanifest.jsonfile that tracks the synchronization state. - Transfer: You manually move the bundle folder to a machine that has access to the destination server (e.g., using a USB drive).
- Import: You use RepoSync on the second machine to read the bundle folder and push the updates to the destination server.
Getting Started
-
Clone the repository:
git clone https://your-repository-url/RepoSync.git cd RepoSync -
Install dependencies:
pip install -r requirements.txt -
Run the application:
python -m RepoSync -
First Configuration:
- The first time you run the app, select a location for your "Bundle Folder".
- Go to
File -> Configure Profiles...to add the connection details for your source and destination servers.
User Manual
For detailed instructions, use cases, and troubleshooting, please refer to the user manual:
License
This project is licensed under the MIT License.
RepoSync: Sincronizzazione Offline di Repository
RepoSync è un'applicazione desktop progettata per sincronizzare repository Git e le relative wiki tra due server che non dispongono di una connessione di rete diretta. È lo strumento perfetto per sviluppatori e amministratori di sistema che lavorano in ambienti "air-gapped" (isolati dalla rete), reti aziendali sicure o qualsiasi situazione in cui un repository debba essere replicato offline.
Il processo è gestito attraverso una "cartella bundle" portatile, che funge da intermediario per trasferire i dati dei repository.
Funzionalità Principali
- Esportazione in Bundle: Connettiti a un server di origine (es. un'istanza Gitea) ed esporta i repository selezionati e le loro wiki in una cartella bundle auto-contenuta.
- Importazione da Bundle: Connettiti a un server di destinazione e importa il contenuto dalla cartella bundle, creando o aggiornando repository e wiki.
- Stato di Sincronizzazione Intelligente: RepoSync confronta automaticamente i bundle locali con il server remoto per mostrare lo stato di ogni repository (es.
Sincronizzato,Da Esportare,Pronto per l'Importazione,Divergente). - Gestione Profili: Salva e gestisci facilmente i profili di connessione (URL, token di accesso) per più server.
- Interfaccia Grafica: Una GUI intuitiva costruita con Tkinter rende l'intero processo semplice e visivo.
- Supporto Wiki: Pieno supporto per la sincronizzazione delle wiki associate a ogni repository, incluso un processo guidato per la prima importazione.
Come Funziona
Il flusso di lavoro si basa su un semplice processo offline in tre passaggi:
Ambiente Sorgente -> [RepoSync ESPORTA] -> Cartella Bundle (Portatile) -> [RepoSync IMPORTA] -> Ambiente Destinazione
- Esporta: Su una macchina con accesso al server di origine, usi RepoSync per esportare i repository in una cartella locale. Questa cartella contiene file bundle di Git (
.bundle) e un filemanifest.jsonche tiene traccia dello stato di sincronizzazione. - Trasferisci: Sposti manualmente la cartella bundle su una macchina che ha accesso al server di destinazione (es. tramite una chiavetta USB).
- Importa: Usi RepoSync sulla seconda macchina per leggere la cartella bundle e inviare (push) gli aggiornamenti al server di destinazione.
Come Iniziare
-
Clona il repository:
git clone https://your-repository-url/RepoSync.git cd RepoSync -
Installa le dipendenze:
pip install -r requirements.txt -
Avvia l'applicazione:
python -m RepoSync -
Prima Configurazione:
- Al primo avvio, seleziona una posizione per la tua "Cartella Bundle".
- Vai su
File -> Configura Profili...per aggiungere i dettagli di connessione per i tuoi server di origine e destinazione.
Manuale Utente
Per istruzioni dettagliate, casi d'uso e risoluzione dei problemi, consulta il manuale utente:
Licenza
Questo progetto è rilasciato con licenza MIT.