Come sincronizzare una cartella con file di testo tenendo tutte le versioni?

Proviamo a rivitalizzare questa sezione. :asd:

Ho un laptop che non uso che sto cercando di trasformare in una moderna macchina da scrivere con linux (magari poi ci farò un thread a parte), in pratica vorrei che ci sia qualcosa in backgroud che all’avvio del sistema e allo spegnimento faccia questo:

  • si collega con un repo sul cloud (git?)
  • controlla se i file di testo in cloud sono più aggiornati di quelli in locale

se lo sono → scarica i file cloud in locale sovrascrivendo quelli in locale
se non lo sono → carica i file in locale sul cloud

il cloud dovrebbe però tenere tutte le versioni ogni volta che qualcosa viene caricato, in modo da non rischiare di perdere niente

Questa cosa devo poterla fare sia su Linux che su Windows in modo da poter lavorare a un dato documento su entrambi i sistemi.

Mi sto complicando la vita e mi basta usare tipo Dropbox? :asd:

È letteralmente quello che fa git.
Bisognerebbe creare un scriptino che in automatico ti fa un fetch, pull e push in automatico.
Il problema è che il push dovrebbe essere preceduto da un commit che di solito richiede una descrizione manuale.

sync.sh

#!/bin/bash

# Imposta il percorso del repository Git
REPO_DIR=/path/to/repository

# Imposta il nome del branch
BRANCH_NAME=main

# Accedi alla cartella del repository
cd $REPO_DIR

# Aggiorna il repository con le ultime modifiche
git pull origin $BRANCH_NAME

# Aggiunge tutti i file modificati o nuovi
git add .

# Commit delle modifiche con un messaggio predefinito
git commit -m "Aggiornamento automatico"

# Push delle modifiche nel branch specificato
git push origin $BRANCH_NAME
chmod +x /path/to/sync.sh

Per l’esecuzione automatica all’avvio io lo metterei nelle esecuzioni automatiche di KDE / GNOME.
Penso funzioni.

per l’esecuzione automatica allo shutdown si può tentare una roba del genere:

 crontab -e

aggiungi il percorso ed il nome dello script:

@reboot /bin/bash /path/to/script.sh && sudo shutdown -h now

ma un qualsiasi servizio di cloud sync lo fa, senza andare a scomodare Git che se uno manco sapeva esistesse, per esperienza, e’ una piaga spiegargli.

cioe’ un banalissimo gdrive o onedrive o quello che non ricordo piu’ adesso che fu uno dei primi a offrire sto tipo di servizio.

ormai tutti offrono pure il versioning integrato :dunno:

Repository gitlab, è esattamente quello che chiedi

ma google drive c’è su linux? io ero rimasto che non c’è o sbaglio?

su kde si integra anche con una estensione di plasma apposita:

https://apps.kde.org/it/kio_gdrive/

Devo trovare qualcosa che faccia tutto da terminale.

Il sistema non ha né KDE né Gnome ma i3wm.

L’obiettivo è che sostanzialmente non ci sia una sega nel sistema tranne Spotify per la musica e FocusWriter per scrivere.

e allora vai di git e prova con lo scriptino.

Alla fine ho risolto in un modo più semplice appoggiandomi a Mega che ha questo splendido programmino che si installa e gestisce tutto da riga di comando.

Se a qualcuno interessasse dopo averlo installato ho fatto:

mega-login ‘email’ ‘password’
mega-sync /home/utente/CartellaCheVoglioSyncare /CartellaSulCloud

A quel punto ho aggiunto mega-sync al lanciatore di i3 in modo che si avvi quando faccio il login.
Quindi dentro ~/.config/i3/config
exec --no-startup-id mega-sync

Installato il programma per syncare le cartelle di mega su Windows e ho avuto il mio cazzo di sync. Fine.

L’ho messo qui perchè magari torna utile a qualcuno, non so se è linux masterrace approved ma funziona. :asd:

1 Like

mah, io faccio sempre git commit -m “stocazzo” -a
quindi ciaone :asd:

L’importante e’ che lo fai su un branch tuo e poi fai un bel merge squash commit.

Lo fai vero?

Fico non conoscevo. Mi ero pure scordato esistesse mega :asd: