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


35

Как я могу поддерживать свои файлы .org в актуальном состоянии на нескольких компьютерах, возможно, на разных платформах (linux / windows)?

Я мог бы, например, хранить все файлы .org в git, но это потребовало бы от меня не забывать тянуть и толкать, чтобы обновлять репо. Может работать с несколькими скриптами для автоматической обработки файлов, так как у меня их не так много.

Я мог бы попробовать использовать Dropbox для этого. Я бы предположил, что Dropbox синхронизирует файлы достаточно часто, чтобы не вызывать проблем.

Предлагает ли org-mode какие-либо функции, помогающие синхронизировать файлы в разных местах?



Dropbox синхронизирует файлы, как только они записаны. Внутренне я полагаю, что Dropbox использует скрипт Python для мониторинга каталога.
Шон Оллред

Если безопасность / конфиденциальность является проблемой, SpiderOak также довольно хорош.
джон

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

Вот пример того, как синхронизировать папки на разных машинах с rsyncпомощью Emacs: emacs.stackexchange.com/a/5844/2287
lawlist

Ответы:


10

Я использую ассистент git-annex для синхронизации файлов org на своих компьютерах и даже на моем телефоне (это здорово, так как бинарный файл linux работает из коробки, но есть и версия для Android).

Он работает как dropbox в том, что когда вы сохраняете файл, он пытается его синхронизировать, но он децентрализован и бесплатен (как в случае со свободой слова и бесплатным пивом).

Настройка проста, если вы знаете git, но вам нужно некоторое время, чтобы ознакомиться со всеми опциями.

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


Пожалуйста, поправьте меня, если я ошибаюсь, но помощник в git-приложении - ужасный выбор. Он не проверяет изменения в текстовых файлах. Он также устанавливает файлы «только для чтения» при каждой синхронизации.
JasoonS

7

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

Мой любимый инструмент синхронизации - Unison . С правильным файлом конфигурации я печатаю

unison org

и Unison будет сравнивать файлы в моих ~/org/каталогах на обеих моих машинах, позволять мне в интерактивном режиме просматривать его действия, затем копировать файлы, которые необходимо скопировать, и вызывать внешний инструмент слияния для файлов, которые необходимо объединить.


Подробности файла конфигурации? Мои попытки слиться в emacs продолжают терпеть неудачу
ijoseph

4

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


4

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

Иногда я забываю сохранить свои организационные буферы, поэтому я взломал следующие функции, чтобы сохранить все организационные файлы всякий раз, когда я сохраняю какой-либо файл. Не очень хорошее решение, но оно служит моей цели.

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

Кроме того, если вы храните конфиденциальные данные в своих файлах org, я рекомендую вам взглянуть на эту страницу . Я использую орг-крипту, которая удивительна.


2

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

Версия псевдокода:

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

Эти 8 шагов выполняются в цикле, не останавливаясь до тех пор, пока я не выйду вручную с помощью C-cили не произойдет ошибка.

Я использую этот скрипт на Windows, используя Cygwin .


2

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

Для меня это очень легко и делает потрясающую работу.


2

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

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


1

В настоящее время я использую btsync, но есть несколько открытых (и более громоздких) альтернатив. Он в основном следит за каталогом и синхронизирует его со всеми другими работающими устройствами, как только они подключаются к сети. Dropbox без облака, так сказать. Поскольку он использует распределенные хеш-таблицы и межсетевые экраны через торрент-протокол, это тоже не проблема, и есть также мобильные клиенты. И он передает все в зашифрованном виде.


0

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.