Uno script per stanare e risolvere i conflitti di Syncthing
Syncthing è fantastico. Un programma che ti consente di mantenere copie di alcuni file su più computer contemporaneamente, aggiornandoli in maniera autonoma. Lo utilizzo ogni giorno per lavoro e mi ci trovo benissimo, ma ha un problema: ogni tanto posso verificarsi dei conflitti.
Quando il software incontra due versioni dello stesso file cerca di capire quale sia la più recente e invia quella versione a tutti gli altri dispositivi. Alcune volte però non riesce a capire quale sia il file più recente (e magari ha ragione, non esiste), quindi genererà una copia dello stesso file. Dato che è molto snervante trovare e controllare quali siano i file da eliminare, ho scritto un programma che lo fa in automatico. D'altra parte, perchè dovrei farlo io quando può farlo il computer?
Questo script è progettato per eliminare ricorsivamente tutti i file di conflitto. Ecco una spiegazione dettagliata delle principali parti dello script:
- Funzione di scansione ricorsiva: La funzione scan è il cuore dello script. Ricorsivamente attraversa tutte le directory e sottodirectory cercando file di conflitto generati da Syncthing. Quando ne trova uno, visualizza le informazioni sul conflitto, utilizza il programma Meld per confrontare le differenze tra i file (se sono file testuali) e, una volta che l'utente ha controllato con i propri occhi i file, chiede il permesso di eliminare uno dei due file.
- Blocco principale (MAIN): La parte principale dello script inizia con un messaggio di presentazione. Successivamente, chiama la funzione di scansione per analizzare la directory corrente ("." rappresenta la directory corrente). Chiaramente, se si vuole usare questo script, esso va conservato nella directory principale della cartella condivisa tra dispositivi. Infine, mostra un riepilogo dei conflitti trovati e visualizza i file eliminati e i file rimanenti (non eliminati).
È importante notare che lo script fa un uso intensivo di comandi di sistema (Linux) e richiede alcuni strumenti specifici come Meld e Dialog. Se questi programmi non sono installati non è possibile usare lo script. Inoltre, l'utente è avvisato di usare lo script con cautela, poiché elimina i file senza possibilità di recupero.
Download: |
|
Dopo aver scaricato, rinomina il file in syncthing_clean.py