Синхронізація моїх файлів .org на кількох комп'ютерах


35

Як я можу постійно оновлювати файли .org на декількох комп'ютерах, можливо, на різних платформах (Linux / Windows)?

Наприклад, я міг би зберігати всі .org файли в git, але це вимагатиме від мене пам'ятати, щоб тягнути і натискати, щоб репортаж був оновлений. Могло працювати з декількома сценаріями, щоб автоматично обробляти файли, так як у мене не так багато.

Я можу спробувати використовувати і дропбокс для цього. Я припускаю, що Dropbox синхронізує файли досить часто, щоб не викликати проблем.

Чи пропонує орган-режим якийсь функціонал, який допомагає синхронізувати файли в декількох місцях?


1
Чи допомагає це? Поклавши свій орган ...
Лука

Dropbox синхронізує файли, як тільки вони будуть записані. Внутрішньо, я вважаю, що Dropbox використовує сценарій Python для моніторингу каталогу.
Шон Аллред

Якщо безпека / конфіденційність викликає проблеми, SpiderOak також досить чудовий.
jon

orgmode.org/worg/org-contrib/gsoc2012/student-projects/… / orgmode.org/worg/org-contrib/gsoc2012/student-projects/… згадує драйвер org-file git merge, але я не можу знайти будь-яку інформацію про те, як ним користуватися (якщо вона була закінчена)
зніміть

Ось приклад того, як синхронізувати папки на різних машинах за rsyncдопомогою Emacs: emacs.stackexchange.com/a/5844/2287
законник

Відповіді:


10

Я використовую помічник git-annex для синхронізації файлів org на своїх комп’ютерах і навіть на телефоні (jolla, тому бінарний файл Linux працює з коробки, але є також версія для Android).

Це працює як Dropbox, оскільки кожен раз, коли ви зберігаєте файл, він намагатиметься синхронізувати його, але він є децентралізованим та вільним (як у вільній мові та вільному пиві).

Налаштування просте, якщо ви знаєте git, але вам потрібен певний час, щоб ознайомитися з усіма можливостями.

Ви можете знайти більше на http://git-annex.branchable.com


Будь ласка, виправте мене, якщо я помиляюся, але помічник git-annex - це жахливий вибір. Він не перевіряє зміни в текстових файлах. Він також встановлює файли "лише для читання" щоразу, коли вони синхронізуються.
JasoonS

7

Файли Org - це просто текстові файли, тому будь-яка техніка, яка здатна синхронізувати файли простого тексту, буде добре працювати з файлами org.

Мій улюблений інструмент синхронізації - Unison . Я маю правильний файл конфігурації

unison org

і Unison буде порівнювати файли в моїх ~/org/каталогах на обох моїх машинах, дозволити інтерактивно переглядати його дії, потім копіювати файли, які потрібно скопіювати, і викликати зовнішній інструмент злиття для файлів, які потребують об'єднання.


Налаштування даних про файл? Мої спроби об'єднатись у emacs продовжують
провалюватися

4

Режим Org сам не забезпечує функцію синхронізації. Вам доведеться покластися на окрему програму, таку як Dropbox, щоб синхронізувати ваші файли. Dropbox синхронізується не просто часто, але відразу, коли файли змінюються, тому, якщо ви не зміните файл і не одразу вимкнете комп'ютер, ви збережете свої файли в синхронізації.


4

У мене особисто є ця проблема, і я використовую копію замість Dropbox для синхронізації моїх файлів. (Я не використовую Dropbox через проблеми конфіденційності). Як і Dropbox, Copy пропонує клієнтів для всіх основних платформ.

Іноді я забуваю зберегти свої org буфери, тому я зламав наступні функції, щоб зберегти всі org файли, коли я зберігаю якийсь файл. Не чудове рішення, але воно служить моєму призначенню.

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

Крім того, якщо ви зберігаєте конфіденційні дані у своїх org файлах, я рекомендую вам переглянути цю сторінку . Я використовую org-crypt, що дивовижно.


2

Я використовую Git для синхронізації файлів у режимі org. У мене є сценарій Bash, який я залишаю працювати у фоновому режимі, який автоматично знімає файл щохвилини (за замовчуванням), а потім натискає або тягне за потребою.

Версія псевдокоду:

  1. Внесіть локальні зміни та оновіть віддалені.
  2. Знайдіть місцевий зв'язок із git rev-parse @.
  3. Знайдіть віддалений фіксатор за допомогою git rev-parse @{u}.
  4. Знайдіть базу с git merge-base @ @{u}
  5. Якщо місцевий фіксування дорівнює віддаленому виконанню, то ми закінчили; все актуально.
  6. Якщо місцевий фіксування дорівнює базовому, то віддалений має додаткові коміти git pull.
  7. Якщо віддалена фіксація дорівнює базовій, то у місцевих є додаткові коміти git push.
  8. В іншому випадку, і локальний, і віддалений мають додаткові коміти. Мій скрипт намагається вирішити це автоматично (за допомогою git pull), але якщо він не може, надішле дзвінок та вихід для користувача, щоб виправити його вручну.

Ці 8 кроків виконуються в циклі, не зупиняючись, поки я не вийду вручну C-c, або не з’явиться помилка.

Я використовую цей скрипт у Windows за допомогою Cygwin .


2

Я використовую Dropbox для синхронізації моїх основних .orgфайлів замість rsync, gitабо тому подібний , тому що з допомогою Dropbox ви можете також використовувати MobileOrg , щоб побачити ваші .orgфайли з вашого смартфона.

Для мене це дуже просто, і це робить приголомшливу роботу.


2

Як вже говорили інші, Org mode нічого не робить з цього приводу (і не повинен). Тому в основному питання пошуку потрібного рішення для синхронізації файлів.

Я використовую Dropbox. Він працює без зусиль на трьох моїх платформах (macOS, настільний Linux, Android). Також мобільний клієнт Org, який я використовую, Orgzly , підтримує його поза коробкою.


1

Зараз я використовую btsync, але навколо є кілька відкритих (і більш громіздких) варіантів. В основному він переглядає каталог і синхронізує його з усіма іншими запущеними пристроями, як тільки вони потрапляють в Інтернет. Коробка без хмари, так би мовити. Оскільки він використовує розподілені хеш-таблиці та брандмауери протоколу торент, також не є проблемою, і мобільні клієнти теж є. І передає все зашифроване.


0

Dropbox (або будь-яке інше хмарне сховище, я думаю) - це шлях. Крім того, це дуже зручно для синхронізації налаштування Emacs ~/.emacs.d(використання mklinkв Windows).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.