Synchronizowanie moich plików .org na wielu komputerach

35

Jak mogę aktualizować moje pliki .org na kilku komputerach, być może na wielu platformach (Linux / Windows)?

Mogłem na przykład przechowywać wszystkie pliki .org w git, ale wymagałoby to ode mnie pamiętania o pobieraniu i wypychaniu aktualizacji repozytorium. Mogę pracować z kilkoma skryptami, aby automatycznie obsługiwać pliki, ponieważ nie mam ich tak wielu.

Mogę również spróbować użyć Dropbox do tego. Zakładam, że dropbox synchronizuje pliki wystarczająco często, aby nie powodować problemów.

Czy tryb org oferuje jakieś funkcje pomocne w synchronizacji plików w wielu lokalizacjach?

Zavior
źródło
1
czy to pomaga? Wkładanie org ...
Luke
Dropbox synchronizuje pliki, jak tylko zostaną zapisane. Uważam, że wewnętrznie Dropbox używa skryptu Python do monitorowania katalogu.
Sean Allred
Jeśli bezpieczeństwo / prywatność jest problemem, SpiderOak jest również świetny.
jon
orgmode.org/worg/org-contrib/gsoc2012/student-projects/… / orgmode.org/worg/org-contrib/gsoc2012/student-projects/… wspomina o sterowniku scalania git w pliku org, ale nie mogę znaleźć wszelkie informacje o tym, jak z niego korzystać (jeśli został ukończony)
młotek
Oto przykład synchronizacji folderów na różnych komputerach za rsyncpomocą Emacsa: emacs.stackexchange.com/a/5844/2287
lawlist

Odpowiedzi:

10

Używam asystenta git-annexa do synchronizowania plików org na moich komputerach, a nawet telefonie (Jolla, więc plik binarny linux działa od razu, ale jest też wersja na Androida).

Działa jak dropbox, ponieważ za każdym razem, gdy zapisujesz plik, spróbuje go zsynchronizować, ale jest zdecentralizowany i wolny (jak w mowie wolnej i wolnym piwie).

Konfiguracja jest prosta, jeśli znasz git, ale potrzebujesz trochę czasu, aby zapoznać się ze wszystkimi opcjami.

Możesz znaleźć więcej na http://git-annex.branchable.com

razcampagne
źródło
Popraw mnie, jeśli się mylę, ale asystent git-Annex to okropny wybór. Nie sprawdza zmian w plikach tekstowych. Ustawia także pliki na „tylko do odczytu” przy każdej synchronizacji.
JasoonS,
7

Pliki org to tylko zwykłe pliki tekstowe, więc każda technika, która jest w stanie zsynchronizować zwykłe pliki tekstowe, będzie działała dobrze z plikami org.

Moje ulubione narzędzie do synchronizacji to Unison . Przy odpowiednim pliku konfiguracyjnym piszę

unison org

a Unison porówna pliki w moich ~/org/katalogach na obu moich komputerach, pozwól mi interaktywnie przejrzeć jego działania, a następnie skopiować pliki, które należy skopiować, i wywołać zewnętrzne narzędzie do scalania plików, które wymagają scalenia.

jch
źródło
Skonfigurować szczegóły pliku? Moje próby scalenia się z emacsem ciągle
zawodzą
4

Tryb Org nie zapewnia żadnej funkcji synchronizacji. Aby zsynchronizować pliki, musisz polegać na osobnej aplikacji, takiej jak Dropbox. Dropbox synchronizuje nie tylko często, ale natychmiast po zmianie plików, więc jeśli nie zmienisz pliku i nie wyłączysz komputera, utrzymasz synchronizację plików.

Ryan
źródło
4

Osobiście mam ten problem i korzystam z funkcji kopiowania zamiast Dropbox do synchronizacji plików. (Nie używam Dropbox z powodu problemów z prywatnością). Podobnie jak Dropbox, Copy oferuje klientów dla wszystkich głównych platform.

Czasami zapominam zapisać swoje bufory organizacji, więc zhakowałem następujące funkcje, aby zapisać wszystkie pliki organizacji za każdym razem, gdy zapisuję jakiś plik. Nie jest to świetne rozwiązanie, ale służy mojemu celowi.

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

Ponadto, jeśli przechowujesz poufne dane w swoich plikach org, polecam zajrzeć na tę stronę . Używam org-crypt, co jest niesamowite.

Renan Ranelli
źródło
2

Korzystam z Git do synchronizowania plików w trybie organizacji. Mam skrypt Bash, który zostawiam uruchomiony w tle, który automatycznie zatwierdza plik co minutę (domyślnie), a następnie wypycha lub ściąga w razie potrzeby.

Wersja pseudokodu:

  1. Zatwierdź zmiany lokalne i zaktualizuj piloty.
  2. Znajdź lokalne zatwierdzenie za pomocą git rev-parse @.
  3. Znajdź zdalne zatwierdzenie za pomocą git rev-parse @{u}.
  4. Znajdź bazę za pomocą git merge-base @ @{u}
  5. Jeśli lokalne zatwierdzenie jest równe zdalnemu zatwierdzeniu, to skończymy; wszystko jest aktualne.
  6. Jeśli zatwierdzenie lokalne jest równe bazie, to pilot ma dodatkowe zatwierdzenia, podobnie jak git pull.
  7. Jeśli zdalne zatwierdzenie jest równe bazie, to lokalne ma dodatkowe zatwierdzenia, podobnie jak git push.
  8. W przeciwnym razie zarówno lokalny, jak i zdalny ma dodatkowe zatwierdzenia. Mój skrypt próbuje rozwiązać to automatycznie (za pomocą git pull), ale jeśli nie, wyśle ​​dzwonek i wyjdzie, aby użytkownik mógł naprawić ręcznie.

Te 8 kroków działa w pętli, nie zatrzymując się, dopóki nie zakończę ręcznie za pomocą C-club nie wystąpi błąd.

Używam tego skryptu w systemie Windows za pomocą Cygwin .

Scott Weldon
źródło
2

Korzystam z Dropbox do synchronizowania moich głównych .orgplików zamiast rsync, gitlub podobnego, ponieważ korzystając z Dropbox, możesz także używać MobileOrg do przeglądania .orgplików ze smartfona.

Dla mnie jest to bardzo łatwe i robi świetną robotę.

Rafa de Castro
źródło
2

Jak powiedzieli inni, tryb Org nic na to nie poradzi (i nie powinien). Jest to w zasadzie kwestia znalezienia preferowanego rozwiązania do synchronizacji plików.

Używam Dropbox. Działa bez wysiłku na moich trzech platformach (macOS, stacjonarny Linux, Android). Ponadto mobilny klient Org, którego używam, Orgzly , obsługuje go od razu po wyjęciu z pudełka.

Paul Bissex
źródło
1

Obecnie używam btsync, ale istnieje kilka otwartych (i bardziej kłopotliwych) alternatyw. Zasadniczo obserwuje katalog i synchronizuje go ze wszystkimi innymi uruchomionymi urządzeniami, gdy tylko wejdą w tryb online. Dropbox bez chmury, że tak powiem. Ponieważ wykorzystuje rozproszone tabele skrótów i zapory protokołu torrent, również nie stanowią problemu, a także klienci mobilni. I przenosi wszystko zaszyfrowane.

Daniel Ziltener
źródło
0

Dropbox (lub jakakolwiek inna pamięć w chmurze, jak sądzę) to droga. Ponadto jest to bardzo przydatne, aby zsynchronizować ustawienia Emacsa w ~/.emacs.d(używać mklinkw systemie Windows).

Alain
źródło