7.7 KiB
RepoSync - Manuale Utente
Indice dei Contenuti
- Introduzione
- Primi Passi
- La Finestra Principale
- Gestione dei Profili
- Il Flusso di Esportazione
- Il Flusso di Importazione
- Comprendere gli Stati di Sincronizzazione
- Domande Frequenti (FAQ)
1. Introduzione
RepoSync è un'applicazione desktop che permette di sincronizzare repository Git tra due server senza un collegamento di rete diretto. Utilizza la funzione .bundle di Git per creare una copia completa e portatile di un repository, che può poi essere trasferita e "spacchettata" su un altro server.
Questo manuale ti guiderà attraverso tutte le funzionalità dell'applicazione.
2. Primi Passi
Installazione
- Clona il repository dalla sua origine.
- Naviga nella directory del progetto.
- Installa i pacchetti Python richiesti:
pip install -r requirements.txt.
Configurazione Iniziale
Prima di poter usare RepoSync, devono essere configurate due cose:
- Cartella Bundle: Al primo avvio, ti verrà chiesto di selezionare una cartella. Questa cartella è cruciale, poiché conterrà tutti i bundle dei repository esportati e il file
manifest.json. Puoi cambiare questo percorso in seguito usando il pulsante "Sfoglia...". - Profili Server: Devi indicare a RepoSync come connettersi ai tuoi server Git. Vai nel menu
File -> Configura Profili...per impostare almeno un profilo per il tuo server di origine e uno per quello di destinazione.
3. La Finestra Principale
L'interfaccia utente è divisa in quattro aree principali:
- Percorso Cartella Bundle: In alto, mostra la cartella bundle attualmente selezionata. Puoi cambiarla con "Sfoglia..." o svuotarne il contenuto con "Reset".
- Schede (Esporta/Importa): L'area principale è divisa in due schede, una per ogni fase della sincronizzazione.
- Log: Il pannello inferiore mostra i log dettagliati di tutte le operazioni, utile per il debug.
- Barra di Stato: In fondo, una barra di stato mostra l'operazione corrente, una barra di avanzamento e la dimensione totale di un'esportazione/importazione.
4. Gestione dei Profili
Il Gestore Profili (File -> Configura Profili...) è dove salvi le impostazioni di connessione per i tuoi server Gitea.
- Nome Profilo: Un nome amichevole a tua scelta (es. "Gitea Casa", "Server Lavoro").
- URL Server: L'URL di base della tua istanza Gitea (es.
http://192.168.1.100:3000). - Token di Accesso: Un token di accesso personale generato dalle impostazioni del tuo account Gitea. È necessario per l'accesso all'API e per le operazioni Git.
- Tipo di Servizio: Attualmente supporta
gitea.
Da questa finestra puoi creare un profilo (Nuovo), salvarlo (Salva) o eliminarlo (Elimina).
5. Il Flusso di Esportazione
Questo processo copia i repository da un server di origine alla tua cartella bundle.
- Vai alla scheda Esporta da Server.
- Seleziona il profilo server corretto dal menu a tendina "Esporta da Server:".
- Clicca sul pulsante Recupera Elementi. RepoSync si connetterà al server e confronterà i suoi repository con il contenuto del tuo file
manifest.json. - La lista verrà popolata, mostrando lo stato di sincronizzazione di ogni elemento.
- Seleziona i repository e le wiki che desideri esportare. Puoi usare il pulsante "Seleziona Modificati" per selezionare rapidamente tutti gli elementi nuovi o modificati sul server.
- Clicca sul pulsante Esporta Selezionati. RepoSync clonerà ogni elemento selezionato e creerà un file
.bundleper esso nella tua cartella bundle. - Una volta completato, puoi spostare fisicamente l'intera cartella bundle sulla tua altra macchina.
6. Il Flusso di Importazione
Questo processo copia i repository dalla tua cartella bundle a un server di destinazione.
- Assicurati che la tua cartella bundle sia accessibile dalla macchina corrente.
- In RepoSync, imposta il "Percorso Cartella Bundle" sulla posizione corretta.
- Vai alla scheda Importa su Server.
- Seleziona il profilo del server di destinazione corretto dal menu a tendina "Importa su Server:".
- Clicca sul pulsante Controlla Stato Bundle. RepoSync leggerà il
manifest.jsone confronterà il suo contenuto con i repository sul server di destinazione. - La lista verrà popolata. Presta molta attenzione allo stato:
- Puoi importare solo elementi con stato
NEW_REPO(non esiste sul server) oBEHIND(il bundle ha modifiche più recenti del server).
- Puoi importare solo elementi con stato
- Seleziona gli elementi che desideri importare.
- Clicca sul pulsante Importa Selezionati. RepoSync creerà o aggiornerà i repository sul server di destinazione.
7. Comprendere gli Stati di Sincronizzazione
Lo stato indica la relazione tra il server e il tuo bundle/manifest locale.
Nella Scheda Esporta:
- NEW_REPO: Questo repository esiste sul server ma non nella tua cartella bundle. Deve essere esportato.
- AHEAD: Il repository sul server ha nuovi commit che non sono nel tuo bundle. Deve essere esportato.
- IDENTICAL: Il server e il bundle sono perfettamente sincronizzati. Nessuna azione richiesta.
- ORPHANED_BUNDLE: Esiste un bundle per questo elemento, ma il repository è stato cancellato dal server.
Nella Scheda Importa:
- NEW_REPO: Esiste un bundle per questo elemento, ma il repository non esiste sul server di destinazione. È pronto per essere importato.
- BEHIND: Il bundle contiene commit più recenti rispetto al repository sul server di destinazione. È pronto per essere importato.
- AHEAD: Il repository sul server di destinazione ha commit più recenti del bundle. Non puoi importarlo, poiché sovrascriverebbe le modifiche. Devi prima esportare da questo server.
- DIVERGED: Sia il bundle che il repository sul server hanno nuovi commit unici. Richiede un intervento manuale.
- IDENTICAL: Il bundle e il server sono sincronizzati. Nessuna azione richiesta.
8. Domande Frequenti (FAQ)
D: L'importazione della mia wiki è fallita e mi ha chiesto di fare un'azione manuale. Perché?
R: A causa di una limitazione o di un bug in alcune versioni di Gitea, un repository wiki non può essere creato tramite un git push se è completamente vuoto. RepoSync ti istruirà a visitare l'interfaccia web di Gitea, andare alla scheda "Wiki" del repository e cliccare su "Crea la prima pagina". Questo inizializza la wiki sul server. Dopodiché, puoi eseguire nuovamente l'importazione in RepoSync, che questa volta avrà successo.
D: Cos'è un file .bundle?
R: È una funzionalità standard di Git. Un singolo file che contiene l'intera cronologia di un repository Git, inclusi tutti i branch e i tag. È un backup completo e portatile.
D: Cos'è manifest.json?
R: È il "cervello" di RepoSync. Memorizza i metadati di ogni repository esportato, incluso l'hash del commit di ogni branch. Questo file permette a RepoSync di determinare lo stato di sincronizzazione senza dover ispezionare ogni file bundle a ogni controllo.
D: Come ottengo un Token di Accesso per Gitea?
R: Accedi al tuo account Gitea, vai su Impostazioni -> Applicazioni e, sotto "Gestisci Token di Accesso", genera un nuovo token. Assicurati che abbia i permessi di lettura e scrittura per i repository.
D: Posso usare questo programma con GitHub o GitLab?
R: Attualmente, il client API è scritto specificamente per Gitea. La logica di base potrebbe essere adattata per supportare altri servizi creando un nuovo client che implementi l'interfaccia BaseVCSClient.