Giữ các tệp .org của tôi đồng bộ hóa trên nhiều máy tính


35

Làm cách nào tôi có thể cập nhật các tệp .org của mình trên nhiều máy tính, có thể trên nhiều nền tảng (linux / windows)?

Tôi có thể giữ tất cả các tệp .org trong git chẳng hạn, nhưng điều đó đòi hỏi tôi phải nhớ kéo và đẩy để giữ cho repo được cập nhật. Có thể làm việc với một vài tập lệnh để tự động xử lý các tệp, vì tôi không có nhiều tập lệnh đó.

Tôi cũng có thể thử sử dụng dropbox cho việc này. Tôi giả sử dropbox đồng bộ hóa các tệp thường xuyên để không gây ra sự cố.

Chế độ org có cung cấp bất kỳ chức năng nào để giúp đồng bộ hóa các tệp trên nhiều vị trí không?


1
Không giúp đỡ à? Đặt org của bạn ...
Luke

Dropbox đồng bộ hóa các tập tin ngay khi chúng được viết. Trong nội bộ, tôi tin rằng Dropbox sử dụng tập lệnh Python để theo dõi thư mục.
Sean Allred

Nếu bảo mật / quyền riêng tư là một vấn đề, SpiderOak cũng khá tuyệt vời.
jon

orgmode.org/worg/org-contrib/gsoc2012/student-projects/... / orgmode.org/worg/org-contrib/gsoc2012/student-projects/... đề cập đến một org-file tài xế git merge, nhưng tôi không thể tìm thấy bất kỳ thông tin nào về cách sử dụng nó (nếu nó đã được hoàn thành)
unhammer

Dưới đây là một ví dụ về cách đồng bộ hóa các thư mục trên các máy khác nhau bằng cách sử dụng rsyncthông qua Emacs: emacs.stackexchange.com/a/5844/2287
luật

Câu trả lời:


10

Tôi sử dụng trợ lý git-annex để đồng bộ hóa các tệp org của mình trên máy tính và thậm chí cả điện thoại của tôi (một jolla để nhị phân linux hoạt động tốt nhưng cũng có phiên bản Android).

Nó hoạt động giống như dropbox ở chỗ bất cứ khi nào bạn lưu tệp, nó sẽ cố gắng đồng bộ hóa nhưng nó được phân cấp và miễn phí (như trong bài phát biểu miễn phí và bia miễn phí).

Việc thiết lập rất đơn giản nếu bạn biết git nhưng bạn cần một chút thời gian để làm quen với tất cả các tùy chọn.

Bạn có thể tìm thêm tại http://git-annex.branchable.com


Xin hãy sửa tôi nếu tôi sai, nhưng trợ lý git-annex là một lựa chọn kinh khủng. Nó không kiểm tra các thay đổi trong tệp văn bản. Nó cũng đặt các tệp thành 'chỉ đọc' mỗi khi chúng đồng bộ hóa.
JasoonS

7

Các tệp Org chỉ là các tệp văn bản thuần túy, vì vậy mọi kỹ thuật có thể đồng bộ hóa các tệp văn bản thuần túy sẽ hoạt động tốt với các tệp org.

Công cụ đồng bộ yêu thích của tôi là Unison . Với tập tin cấu hình đúng, tôi gõ

unison org

và Unison sẽ so sánh các tệp trong ~/org/thư mục của tôi trên cả hai máy của tôi, để tôi xem xét tương tác các hành động của nó, sau đó sao chép các tệp cần sao chép và gọi một công cụ hợp nhất bên ngoài cho các tệp cần hợp nhất.


Cấu hình chi tiết tập tin? Những nỗ lực của tôi để hợp nhất trong emacs liên tục thất bại
ijoseph

4

Chế độ Org không cung cấp bất kỳ chức năng đồng bộ hóa nào. Bạn sẽ phải dựa vào một ứng dụng riêng như Dropbox để đồng bộ hóa các tệp của mình. Dropbox không chỉ đồng bộ hóa thường xuyên mà ngay lập tức khi các tệp thay đổi, vì vậy trừ khi bạn thay đổi một tệp và tắt ngay lập tức máy tính của mình, bạn sẽ giữ các tệp của mình đồng bộ.


4

Cá nhân tôi có vấn đề này và đã sử dụng bản sao thay vì Dropbox để các tệp của tôi được đồng bộ hóa. (Tôi không sử dụng Dropbox vì vấn đề riêng tư). Giống như Dropbox, Copy cung cấp ứng dụng khách cho tất cả các nền tảng chính.

Đôi khi tôi quên lưu bộ đệm org của mình, vì vậy tôi đã hack các chức năng sau để lưu tất cả các tệp org bất cứ khi nào tôi lưu một số tệp. Không phải là một giải pháp tuyệt vời, nhưng nó phục vụ mục đích của tôi.

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

Ngoài ra, nếu bạn giữ dữ liệu nhạy cảm trong các tệp org của mình, tôi khuyên bạn nên xem trang này . Tôi sử dụng org-crypt thật tuyệt vời.


2

Tôi sử dụng Git để đồng bộ hóa các tệp chế độ tổ chức của mình. Tôi có một tập lệnh Bash mà tôi để chạy ở chế độ nền, nó sẽ tự động xác nhận tệp mỗi phút (theo mặc định), sau đó đẩy hoặc kéo khi cần.

Phiên bản mã giả:

  1. Cam kết thay đổi cục bộ và cập nhật từ xa.
  2. Tìm cam kết địa phương với git rev-parse @.
  3. Tìm cam kết từ xa với git rev-parse @{u}.
  4. Tìm cơ sở với git merge-base @ @{u}
  5. Nếu cam kết cục bộ bằng cam kết từ xa, thì chúng ta đã hoàn thành; mọi thứ đều cập nhật
  6. Nếu cam kết cục bộ bằng cơ sở, thì từ xa có thêm cam kết, do đó, làm git pull.
  7. Nếu cam kết từ xa bằng cơ sở, thì cục bộ có thêm cam kết, do đó, làm git push.
  8. Mặt khác, cả cục bộ và từ xa đều có thêm các xác nhận. Kịch bản của tôi cố gắng tự động giải quyết vấn đề này (với git pull), nhưng nếu không thể, sẽ gửi chuông và thoát để người dùng khắc phục thủ công.

8 bước đó chạy trong một vòng lặp, không dừng lại cho đến khi tôi thoát bằng tay C-choặc có lỗi.

Tôi sử dụng tập lệnh này trên Windows bằng Cygwin .


2

Tôi sử dụng Dropbox để đồng bộ hóa chính của tôi .orgtập tin thay vì rsync, githoặc tương tự bởi vì sử dụng Dropbox bạn cũng có thể sử dụng MobileOrg để xem bạn .orgtập tin từ điện thoại thông minh của bạn.

Đối với tôi điều này là rất dễ dàng và nó làm một công việc tuyệt vời.


2

Như những người khác đã nói, chế độ Org không làm bất cứ điều gì về chính nó (cũng không nên). Vì vậy, về cơ bản là vấn đề tìm giải pháp đồng bộ hóa tệp ưa thích của bạn.

Tôi sử dụng Dropbox. Nó hoạt động mà không cần nỗ lực trên ba nền tảng của tôi (macOS, máy tính để bàn Linux, Android). Ngoài ra, ứng dụng khách Org di động mà tôi sử dụng, Orgzly , hỗ trợ nó ra khỏi hộp.


1

Tôi hiện đang sử dụng btsync, nhưng có một số lựa chọn thay thế mở (và cồng kềnh hơn) xung quanh. Về cơ bản, nó xem thư mục và đồng bộ hóa nó với tất cả các thiết bị đang chạy khác ngay khi chúng trực tuyến. Một dropbox không có đám mây để nói. Vì nó sử dụng các bảng băm phân tán và tường lửa giao thức torrent cũng không phải là vấn đề và cũng có các máy khách di động. Và nó chuyển mọi thứ được mã hóa.


0

Dropbox (hoặc bất kỳ lưu trữ đám mây nào khác tôi đoán) là cách để đi. Ngoài ra, điều này thực sự tiện dụng để đồng bộ hóa thiết lập Emacs trong ~/.emacs.d(sử dụng mklinktrên Windows).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.