Halten Sie meine .org-Dateien auf mehreren Computern synchron


35

Wie kann ich meine .org-Dateien auf mehreren Computern, möglicherweise auf mehreren Plattformen (Linux / Windows), auf dem neuesten Stand halten?

Ich könnte zum Beispiel alle .org-Dateien in Git behalten, aber das würde mich daran erinnern, zu ziehen und zu drücken, um das Repo auf dem neuesten Stand zu halten. Könnte mit ein paar Skripten arbeiten, um die Dateien automatisch zu verarbeiten, da ich nicht so viele habe.

Ich könnte es auch mit Dropbox versuchen. Ich gehe davon aus, dass Dropbox die Dateien oft genug synchronisiert, um keine Probleme zu verursachen.

Bietet der Organisationsmodus Funktionen zur Unterstützung der Synchronisierung der Dateien über mehrere Speicherorte hinweg?


1
Luke

Dropbox synchronisiert Dateien, sobald sie geschrieben wurden. Intern verwendet Dropbox meines Erachtens ein Python-Skript, um das Verzeichnis zu überwachen.
Sean Allred

Wenn es um Sicherheit / Datenschutz geht, ist SpiderOak auch ziemlich gut.
Jon

orgmode.org/worg/org-contrib/gsoc2012/student-projects/… / orgmode.org/worg/org-contrib/gsoc2012/student-projects/… erwähnt einen org-file git merge driver, aber ich kann ihn nicht finden Informationen zur Verwendung (wenn es fertig war)
Unhammer

Hier ist ein Beispiel für die Synchronisierung von Ordnern auf verschiedenen Computern mithilfe rsyncvon Emacs: emacs.stackexchange.com/a/5844/2287
lawlist

Antworten:


10

Ich verwende git-annex assistant, um meine Organisationsdateien auf meinen Computern und sogar auf meinem Telefon zu synchronisieren (ein Jolla, damit die Linux-Binärdatei sofort funktioniert, aber es gibt auch eine Android-Version).

Es funktioniert wie Dropbox, wenn Sie eine Datei speichern und versuchen, sie zu synchronisieren, aber es ist dezentralisiert und kostenlos (wie bei Redefreiheit und Freibier).

Das Setup ist einfach, wenn Sie git kennen, aber Sie brauchen etwas Zeit, um sich mit allen Optionen vertraut zu machen.

Weitere Informationen finden Sie unter http://git-annex.branchable.com


Bitte korrigieren Sie mich, wenn ich falsch liege, aber der Assistent ist eine schreckliche Wahl. Es wird nicht nach Änderungen in Textdateien gesucht. Außerdem werden die Dateien bei jeder Synchronisierung auf "schreibgeschützt" gesetzt.
JasoonS

7

Org-Dateien sind reine Textdateien, daher funktioniert jede Technik, die reine Textdateien synchronisieren kann, problemlos mit Org-Dateien.

Mein Lieblingssynchronisationswerkzeug ist Unison . Mit der richtigen Konfigurationsdatei tippe ich

unison org

und Unison vergleicht die Dateien in meinen ~/org/Verzeichnissen auf beiden Computern, lässt mich interaktiv die Aktionen überprüfen, kopiert dann die zu kopierenden Dateien und ruft ein externes Merge-Tool für die Dateien auf, die zusammengeführt werden müssen.


Konfigurationsdatei Details? Meine Versuche, in Emacs zu verschmelzen, scheitern immer wieder
ijoseph

4

Der Org-Modus bietet selbst keine Synchronisierungsfunktionen. Sie müssten sich auf eine separate Anwendung wie Dropbox verlassen, um Ihre Dateien zu synchronisieren. Dropbox wird nicht nur häufig synchronisiert, sondern sofort, wenn sich Dateien ändern. Wenn Sie also eine Datei nicht ändern und Ihren Computer sofort ausschalten, bleiben Ihre Dateien synchron.


4

Ich persönlich habe dieses Problem und benutze Copy anstelle von Dropbox, um meine Dateien zu synchronisieren. (Ich verwende Dropbox aus Datenschutzgründen nicht.) Genau wie Dropbox bietet Copy Clients für alle wichtigen Plattformen.

Manchmal vergesse ich, meine Organisationspuffer zu speichern, deshalb habe ich die folgenden Funktionen gehackt, um alle Organisationsdateien zu speichern, wenn ich eine Datei speichere. Keine gute Lösung, aber sie dient meinem Zweck.

(add-hook 'after-save-hook 'org-save-all-org-buffers)

Wenn Sie vertrauliche Daten in Ihren Organisationsdateien haben, empfehle ich Ihnen, sich diese Seite anzusehen . Ich benutze Org-Krypta, was erstaunlich ist.


2

Ich verwende Git, um meine Dateien im Organisationsmodus zu synchronisieren. Ich habe ein Bash-Skript , das ich im Hintergrund laufen lassen, das die Datei automatisch jede Minute (standardmäßig) festschreibt und dann nach Bedarf drückt oder zieht.

Die Pseudocode-Version:

  1. Übernehmen Sie lokale Änderungen und aktualisieren Sie Remotes.
  2. Finde lokales Commit mit git rev-parse @.
  3. Remote Commit finden mit git rev-parse @{u}.
  4. Basis finden mit git merge-base @ @{u}
  5. Wenn das lokale Festschreiben dem Remote-Festschreiben entspricht, sind wir fertig. alles ist aktuell.
  6. Wenn local commit gleich base ist, verfügt remote über zusätzliche Commits git pull.
  7. Wenn remote commit gleich base ist, verfügt local über zusätzliche Commits git push.
  8. Ansonsten hat sowohl local als auch remote zusätzliche Commits. Mein Skript versucht dies automatisch (mit git pull) zu beheben , aber wenn dies nicht möglich ist, wird eine Klingel gesendet und der Benutzer beendet, damit der Fehler manuell behoben werden kann.

Diese 8 Schritte werden in einer Schleife ausgeführt und erst dann angehalten, wenn ich manuell mit beende C-coder ein Fehler aufgetreten ist.

Ich benutze dieses Skript unter Windows mit Cygwin .


2

Ich benutze Dropbox auf meine Haupt zu synchronisieren .orgDateien statt rsync, gitoder dergleichen , weil mit Dropbox können Sie auch MobileOrg Ihre sehen .orgDateien von Ihrem Smartphone.

Für mich ist das sehr einfach und es macht einen tollen Job.


2

Wie andere gesagt haben, macht der Org-Modus nichts dagegen (und sollte es auch nicht). Im Grunde geht es also darum, die von Ihnen bevorzugte Lösung für die Dateisynchronisierung zu finden.

Ich benutze Dropbox. Es funktioniert mühelos auf meinen drei Plattformen (macOS, Desktop Linux, Android). Der von mir verwendete mobile Org-Client, Orgzly , unterstützt das sofort .


1

Ich verwende derzeit btsync, aber es gibt mehrere offene (und umständlichere) Alternativen. Grundsätzlich wird das Verzeichnis überwacht und mit allen anderen aktiven Geräten synchronisiert, sobald diese online sind. Eine Dropbox sozusagen ohne Cloud. Da es verteilte Hash-Tabellen und die Torrent-Protokoll-Firewalls verwendet, ist dies ebenfalls kein Problem, und es gibt auch mobile Clients. Und es überträgt alles verschlüsselt.


0

Dropbox (oder irgendein anderer Cloud-Speicher, denke ich) ist der richtige Weg. Außerdem ist dies sehr praktisch, um das Emacs-Setup zu synchronisieren ~/.emacs.d( mklinkunter Windows zu verwenden).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.