Re: [O] [SYNC] How do you sync your org-mode files between n devices (n 2)

2013-09-05 Thread Alan Schmitt
fatkasuvayu+li...@gmail.com writes:

 I think the issue with tools like Unison, Dropbox, is conflict
 resolution on simultaneous edits.  Traditional version control does a
 better job of that, but then it loses the convenience of these other
 tools.

 I believe there is a list member (Alan) close to Unison development; in
 the thread referenced by Samuel there is some discussion on how this
 could be done in a more well defined manner.

Unison can call external tools to merge conflicting files. If someone
wants to use such a tool with unison, I can definitely give a hand.

Alan



Re: [O] [SYNC] How do you sync your org-mode files between n devices (n 2)

2013-09-05 Thread Suvayu Ali
Hi Alan,

On Thu, Sep 05, 2013 at 10:50:18AM +0200, Alan Schmitt wrote:
 fatkasuvayu+li...@gmail.com writes:
 
  I think the issue with tools like Unison, Dropbox, is conflict
  resolution on simultaneous edits.  Traditional version control does a
  better job of that, but then it loses the convenience of these other
  tools.
 
  I believe there is a list member (Alan) close to Unison development; in
  the thread referenced by Samuel there is some discussion on how this
  could be done in a more well defined manner.
 
 Unison can call external tools to merge conflicting files. If someone
 wants to use such a tool with unison, I can definitely give a hand.

If you can find the time, I have a somewhat more involved proposal for
you :).

I think this would be a wonderful addition to Worg.  Probably the FAQ is
more appropriate (under Tips and Tricks) since this is one of most
commonly asked questions on the list.  On the other hand, if you think
covering this topic requires more than just a few lines, a longer entry
or short article in the config section would be more appropriate.

Cheers,

-- 
Suvayu

Open source is the future. It sets us free.



Re: [O] [SYNC] How do you sync your org-mode files between n devices (n 2)

2013-09-05 Thread Alan Schmitt
Hi,

fatkasuvayu+li...@gmail.com writes:

 Hi Alan,

 On Thu, Sep 05, 2013 at 10:50:18AM +0200, Alan Schmitt wrote:
 fatkasuvayu+li...@gmail.com writes:
 
  I think the issue with tools like Unison, Dropbox, is conflict
  resolution on simultaneous edits.  Traditional version control does a
  better job of that, but then it loses the convenience of these other
  tools.
 
  I believe there is a list member (Alan) close to Unison development; in
  the thread referenced by Samuel there is some discussion on how this
  could be done in a more well defined manner.
 
 Unison can call external tools to merge conflicting files. If someone
 wants to use such a tool with unison, I can definitely give a hand.

 If you can find the time, I have a somewhat more involved proposal for
 you :).

 I think this would be a wonderful addition to Worg.  Probably the FAQ is
 more appropriate (under Tips and Tricks) since this is one of most
 commonly asked questions on the list.  On the other hand, if you think
 covering this topic requires more than just a few lines, a longer entry
 or short article in the config section would be more appropriate.

I can't promise anything, but I can try to write something. What
external merging tool should I use?

Thanks,

Alan



Re: [O] [SYNC] How do you sync your org-mode files between n devices (n 2)

2013-09-05 Thread Karl Voit
* Alan Schmitt alan.schm...@polytechnique.org wrote:
 Hi,

Hi,

 fatkasuvayu+li...@gmail.com writes:

 I think this would be a wonderful addition to Worg.  

Absolutely!

I am using unison as well. So far, I resolved conflicts (I try to do
anything I can to avoid them) very basic manually. I'd love to learn
how to do it with software support in a quick how-to.

 I can't promise anything, but I can try to write something. What
 external merging tool should I use?

I haven't used it yet but I read that Emacs offers some kind of a
3-way-merger ...

-- 
mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML to Org-mode:
get Memacs from https://github.com/novoid/Memacs 

https://github.com/novoid/extract_pdf_annotations_to_orgmode + more on github




Re: [O] [SYNC] How do you sync your org-mode files between n devices (n 2)

2013-09-05 Thread Suvayu Ali
On Thu, Sep 05, 2013 at 12:00:02PM +0200, Alan Schmitt wrote:
 Hi,
 
 fatkasuvayu+li...@gmail.com writes:
 
  I think this would be a wonderful addition to Worg.  Probably the FAQ is
  more appropriate (under Tips and Tricks) since this is one of most
  commonly asked questions on the list.  On the other hand, if you think
  covering this topic requires more than just a few lines, a longer entry
  or short article in the config section would be more appropriate.
 
 I can't promise anything, but I can try to write something. What
 external merging tool should I use?

I think the most appropriate tool would be org-merge-driver.  But I'm
not sure how reliable it is.  That said, what might be nicer is if you
treat the external tool bits generically.  Then people can choose their
own tools in the future; also that will probably be less work for you
since you don't have to figure out the details of the external merging
tool yourself.

What I'm after is having all the Unison config bits on Worg, then people
choose how they want to use it:
1. plain sync,
2. sync with merging (with their own choice of tools)

I or someone else could then add the Dropbox like, and version control
(Git) way of syncing.  This would then be a fairly complete FAQ on
synchronisation questions.  Does that seem feasible to you?

Thanks a lot,

:)

-- 
Suvayu

Open source is the future. It sets us free.



Re: [O] [SYNC] How do you sync your org-mode files between n devices (n 2)

2013-09-05 Thread Jonas Hörsch
On Thu, Sep 05 2013, Karl Voit wrote:

 * Alan Schmitt alan.schm...@polytechnique.org wrote:
 I can't promise anything, but I can try to write something. What
 external merging tool should I use?

 I haven't used it yet but I read that Emacs offers some kind of a
 3-way-merger ...

and then there is an early git-merge-tool[1] or rather the org-merge-driver
for git. i've been using it for half a year now for my org files in
git, although i seldom have conflicts, as we're just a small group.

maybe somebody on the list has more info on its status?

cheers,
jonas

Footnotes:

[1] 
http://orgmode.org/worg/org-contrib/gsoc2012/student-projects/git-merge-tool/index.html


pgp8Skx0v2CKJ.pgp
Description: PGP signature


Re: [O] [SYNC] How do you sync your org-mode files between n devices (n 2)

2013-09-05 Thread Jambunathan K

 I have a problem. I need to sync my files between several devices
 (currently 3). 

I don't use multiple machines.

I use unison to copy files between Hard disk and USB disk.  Apparently
unison is superior to rsync.



Re: [O] [SYNC] How do you sync your org-mode files between n devices (n 2)

2013-09-05 Thread Alan Schmitt
fatkasuvayu+li...@gmail.com writes:

 On Thu, Sep 05, 2013 at 12:00:02PM +0200, Alan Schmitt wrote:
 Hi,
 
 fatkasuvayu+li...@gmail.com writes:
 
  I think this would be a wonderful addition to Worg.  Probably the FAQ is
  more appropriate (under Tips and Tricks) since this is one of most
  commonly asked questions on the list.  On the other hand, if you think
  covering this topic requires more than just a few lines, a longer entry
  or short article in the config section would be more appropriate.
 
 I can't promise anything, but I can try to write something. What
 external merging tool should I use?

 I think the most appropriate tool would be org-merge-driver.  But I'm
 not sure how reliable it is.  That said, what might be nicer is if you
 treat the external tool bits generically.  Then people can choose their
 own tools in the future; also that will probably be less work for you
 since you don't have to figure out the details of the external merging
 tool yourself.

It makes sense.

 What I'm after is having all the Unison config bits on Worg, then people
 choose how they want to use it:
 1. plain sync,
 2. sync with merging (with their own choice of tools)

 I or someone else could then add the Dropbox like, and version control
 (Git) way of syncing.  This would then be a fairly complete FAQ on
 synchronisation questions.  Does that seem feasible to you?

I've been playing with the merging using ediff, and it works. I'll
explain it here, and depending on the feedback, I'll put it on worg.

Alan

* Synchronizing org files with Unison

This describes how to synchronize org files using the 
[[http://www.cis.upenn.edu/~bcpierce/unison/][Unison file synchronizer]],
as well as how to configure it to use an external tool to merge conflicting
edits.

** Prerequisites

You should have Unison up and running. Binaries can be found 
[[http://www.cis.upenn.edu/~bcpierce/unison/download.html][here]] and the
documentation is 
[[http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html][here]].

** Synchronization

Unison is a file synchronizer, thus it may be used to synchronize org files. To
configure Unison, on uses a /profile/ which states where the things to
synchronize are as well as some options. Assuming I want to synchronize the
files in ~/Users/schmitta/dir1~ and ~/Users/schmitta/dir2~, the profile would
look like this

#+BEGIN_EXAMPLE
root = /Users/schmitta/dir1
root = /Users/schmitta/dir2
#+END_EXAMPLE

In most cases Unison will be used with a remote machine. The local machine is
called the /client/ and the remote one the /server/. For such remote
synchronization, the ~unison~ binary must be installed in the server as
well. The simplest way to connect to the machine is using ssh. One should check
that unison can be found there by doing ~ssh user@remote unison -version~. If
~unison~ cannot be found in the path, one may set the ~servercmd~ option as
indicated in the next example.

(Please see the 
[[http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#roots][manual
 section on roots]] for further details.)

#+BEGIN_EXAMPLE
root = /Users/schmitta/dir1
root = ssh://user@remote/relative/path/to/dir2

servercmd = /usr/bin/unison
#+END_EXAMPLE

** Merging

As Unison works on the level of files, it will trigger a /conflict/ if both
files have changed since the last synchronization. In that case one can only
choose which file to keep, which is not satisfying. Unison offers the
possibility to use external tools to merge the files. There is an 
[[http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#merge][extensive
manual section]] regarding this, we'll just describe how to use emacs and ediff 
to
do it.

For better merging, we will ask unison to keep the last synchronized version of
every org file on the client; this way we can use ediff with ancestor. These
~currentbackup~ files may live alongside the synchronized files (with names of
the form ~.bak.version.name~, which is configurable) or in a central location.

Here is the modified configuration file.

#+BEGIN_EXAMPLE
root = /Users/schmitta/dir1
root = ssh://user@remote/relative/path/to/dir2

servercmd = /usr/bin/unison

backupcurrent = Name *.org
backuplocation = local
maxbackups = 0

merge = Name *.org - emacsclient -c --eval '(ediff-merge-files-with-ancestor 
CURRENT1 CURRENT2 CURRENTARCH nil NEW)'

#+END_EXAMPLE

The ~backupcurrent~ option tells unison to keep a backup of the last
synchronized version of ever file with an ~org~ extension. The location of the
backup should be local (alongside the file). Finally, no other backup should be
created.

Next follows the merge command. For every org file in conflict, use the command
that launches a new emacs frame calling the ediff with ancestor function. The
~CURRENT1~, ~CURRENT2~, and ~CURRENTARCH~ strings are  replaced with the file
from the first root, the file from the second root, and the last synchronized
version. 

Re: [O] [SYNC] How do you sync your org-mode files between n devices (n 2)

2013-09-05 Thread Suvayu Ali
Just a few typo/editorial comments.

On Thu, Sep 05, 2013 at 02:31:42PM +0200, Alan Schmitt wrote:
 
 * Synchronizing org files with Unison
 
 This describes how to synchronize org files using the 
 [[http://www.cis.upenn.edu/~bcpierce/unison/][Unison file synchronizer]],
 as well as how to configure it to use an external tool to merge conflicting
 edits.
 
 ** Prerequisites
 
 You should have Unison up and running. Binaries can be found 
 [[http://www.cis.upenn.edu/~bcpierce/unison/download.html][here]] and the
 documentation is 
 [[http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html][here]].
 
 ** Synchronization
 
 Unison is a file synchronizer, thus it may be used to synchronize org files. 
 To
 configure Unison, on uses a /profile/ which states where the things to

on uses - one uses

 synchronize are as well as some options. Assuming I want to synchronize the
 files in ~/Users/schmitta/dir1~ and ~/Users/schmitta/dir2~, the profile would
 look like this
 
 #+BEGIN_EXAMPLE
 root = /Users/schmitta/dir1
 root = /Users/schmitta/dir2
 #+END_EXAMPLE
 
 In most cases Unison will be used with a remote machine. The local machine is
 called the /client/ and the remote one the /server/. For such remote
 synchronization, the ~unison~ binary must be installed in the server as
 well. The simplest way to connect to the machine is using ssh. One should 
 check
 that unison can be found there by doing ~ssh user@remote unison -version~. If
 ~unison~ cannot be found in the path, one may set the ~servercmd~ option as
 indicated in the next example.
 
 (Please see the 
 [[http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#roots][manual
  section on roots]] for further details.)
 
 #+BEGIN_EXAMPLE
 root = /Users/schmitta/dir1
 root = ssh://user@remote/relative/path/to/dir2
 
 servercmd = /usr/bin/unison
 #+END_EXAMPLE
 
 ** Merging
 
 As Unison works on the level of files, it will trigger a /conflict/ if both
 files have changed since the last synchronization. In that case one can only
 choose which file to keep, which is not satisfying. Unison offers the

Maybe satisfactory is better than satisfying?

 possibility to use external tools to merge the files. There is an 
 [[http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#merge][extensive
 manual section]] regarding this, we'll just describe how to use emacs and 
 ediff to
 do it.
 
 For better merging, we will ask unison to keep the last synchronized version 
 of
 every org file on the client; this way we can use ediff with ancestor. These
 ~currentbackup~ files may live alongside the synchronized files (with names of
 the form ~.bak.version.name~, which is configurable) or in a central location.
 
 Here is the modified configuration file.
 
 #+BEGIN_EXAMPLE
 root = /Users/schmitta/dir1
 root = ssh://user@remote/relative/path/to/dir2
 
 servercmd = /usr/bin/unison
 
 backupcurrent = Name *.org
 backuplocation = local
 maxbackups = 0
 
 merge = Name *.org - emacsclient -c --eval '(ediff-merge-files-with-ancestor 
 CURRENT1 CURRENT2 CURRENTARCH nil NEW)'
 
 #+END_EXAMPLE
 
 The ~backupcurrent~ option tells unison to keep a backup of the last
 synchronized version of ever file with an ~org~ extension. The location of the

ever file - every file

 backup should be local (alongside the file). Finally, no other backup should 
 be
 created.
 
 Next follows the merge command. For every org file in conflict, use the 
 command
 that launches a new emacs frame calling the ediff with ancestor function. The
 ~CURRENT1~, ~CURRENT2~, and ~CURRENTARCH~ strings are  replaced with the file
 from the first root, the file from the second root, and the last synchronized
 version. The ~NEW~ file is where Unison expects the file to be saved (which 
 will
 be done by the ediff session).
 
 Thus, when an org file has been modified on both hosts, an ediff session will 
 be
 launched in a new frame. Closing the frame will make Unison commit the merge 
 (it
 waits until the command has finished).
 
 If one does not want to use backups, it's possible to use the simpler ediff
 (without ancestor) command as follows.
 
 #+BEGIN_EXAMPLE
 root = /Users/schmitta/dir1
 root = ssh://user@remote/relative/path/to/dir2
 
 servercmd = /usr/bin/unison
 
 merge = Name *.org - emacsclient -c --eval '(ediff-merge-files CURRENT1 
 CURRENT2 nil NEW)'
 
 #+END_EXAMPLE

This a very clear and complete write-up.  Thanks a lot Alan!

:)

-- 
Suvayu

Open source is the future. It sets us free.



Re: [O] [SYNC] How do you sync your org-mode files between n devices (n 2)

2013-09-05 Thread Alan Schmitt
fatkasuvayu+li...@gmail.com writes:

 Just a few typo/editorial comments.

I fixed them.

 This a very clear and complete write-up.  Thanks a lot Alan!

 :)

Thanks. It's online at
http://orgmode.org/worg/org-tutorials/unison-sync.html (I also changed
the index page to point at it).

Alan



Re: [O] [SYNC] How do you sync your org-mode files between n devices (n 2)

2013-09-05 Thread Robert Horn

Alan Schmitt writes:

 I can't promise anything, but I can try to write something. What
 external merging tool should I use?


There was some work done in a Summer of Code last year or the year
before.  I don't know how much more work remains.  It was an effort for
a delta operator for git.

I use a multi-system git environment, and the one area that is beyond
the git capabilities at present is the following kind of problem:

There is a repeating daily task with a log file.  On machine A, the task
is finished on Monday, Wednesday, and Friday.  On machine B, the task is
finished on Tuesday, Thursday, and Saturday.

Git does not understand the task structure, nor does it understand date
oriented logs.  It recognizes that there is a stretch of logfile and
task structure that needs my human intervention and leaves that part for
me to fix.  I have to cut the log entries from machine A version and put them
into the log from machine B version in proper date order.  The last
complete and next lines will come from machine B because they are more
recent.  I understand the date orientation, task structure, etc.  Git
does not.

Proper understanding of things like interleaving date related entries is
a difficult task to get right.  It would be enough to get it 80% right
with 0% improper fixes, and 20% identified for human merging.  But to
reach this level means understanding all the different users of date
tagged lines, entries, headlines, etc. in the org structure.

R Horn



Re: [O] [SYNC] How do you sync your org-mode files between n devices (n 2)

2013-09-05 Thread Marc Ihm

Hi,

My aproach is low-tech.

I manage two special files:
- token.txt, which (through shell-scripts) moves around with me and helps to 
check,
  that I do not have multiple emacs open on different machines.
- open.txt, which is created by a small piece of elisp and helps to check,
  that I do not have multiple emacs open on the same machine.
With both files I can be sure, that there is only one single instance of emacs 
open
on all my devices (other instances of emacs at least display a warning message).

Having this, synchronisation with rsync is quite easy.

With this approach I do not have merge conflicts (unless I mess up things 
occasionally :-).
I use several instances of windows and linux, that are connected by network or 
usb-stick.

best regards,
Marc





Re: [O] [SYNC] How do you sync your org-mode files between n devices (n 2)

2013-09-04 Thread Suvayu Ali
On Tue, Sep 03, 2013 at 11:34:52PM +0200, nore...@maillard.im wrote:
 Hello,
 
 I have a problem. I need to sync my files between several devices
 (currently 3). At first, I thought the solution would have been to use
 mobileorg (that made sense since I also use an android device) but as
 far as I understand it, it is not really designed for that purpose (I
 have several agendas.org staying in the hierarchy with conflicts from
 all sources...)
 
 How do you sync your files easily and share them between 3, 4 or even
 more places ?

I use Git.

-- 
Suvayu

Open source is the future. It sets us free.



Re: [O] [SYNC] How do you sync your org-mode files between n devices (n 2)

2013-09-04 Thread Xiao-Yong Jin

On Sep 4, 2013, at 3:04 PM, Suvayu Ali fatkasuvayu+li...@gmail.com wrote:

 On Tue, Sep 03, 2013 at 11:34:52PM +0200, nore...@maillard.im wrote:
 Hello,
 
 I have a problem. I need to sync my files between several devices
 (currently 3). At first, I thought the solution would have been to use
 mobileorg (that made sense since I also use an android device) but as
 far as I understand it, it is not really designed for that purpose (I
 have several agendas.org staying in the hierarchy with conflicts from
 all sources...)
 
 How do you sync your files easily and share them between 3, 4 or even
 more places ?
 
 I use Git.

You might try unison.  Works for me.

 -- 
 Suvayu
 
 Open source is the future. It sets us free.
 




Re: [O] [SYNC] How do you sync your org-mode files between n devices (n 2)

2013-09-04 Thread Paul Rudin
nore...@maillard.im writes:


 I have a problem. I need to sync my files between several devices
 (currently 3). At first, I thought the solution would have been to use
 mobileorg (that made sense since I also use an android device) but as
 far as I understand it, it is not really designed for that purpose (I
 have several agendas.org staying in the hierarchy with conflicts from
 all sources...)

 How do you sync your files easily and share them between 3, 4 or even
 more places ?

Dropbox.

I also use bitbucket for coding projects proper, but its overkill if you
just want to keep up to date with latest versions of files.

The nice thing about using Dropbox is that you don't need to check
anything in - as long as you save files you can just work away from you
desktop and then pick things up exactly where you left off on your
laptop.

If you have changes that you need to merge together on different devices
then you probably do want to use git or similar.




Re: [O] [SYNC] How do you sync your org-mode files between n devices (n 2)

2013-09-04 Thread Samuel Loury
Hi,

nore...@maillard.im writes:

 How do you sync your files easily and share them between 3, 4 or even
 more places ?
You might find the answer to that question in a previous thread:

http://www.mail-archive.com/emacs-orgmode@gnu.org/msg73502.html

Hope that helps.
Best,
-- 
Konubinix
GPG Key: 7439106A
Fingerprint: 5993 BE7A DA65 E2D9 06CE  5C36 75D2 3CED 7439 106A


signature.asc
Description: PGP signature


Re: [O] [SYNC] How do you sync your org-mode files between n devices (n 2)

2013-09-04 Thread Suvayu Ali
On Wed, Sep 04, 2013 at 03:30:24PM +0900, Xiao-Yong Jin wrote:
 
 On Sep 4, 2013, at 3:04 PM, Suvayu Ali fatkasuvayu+li...@gmail.com wrote:
 
  On Tue, Sep 03, 2013 at 11:34:52PM +0200, nore...@maillard.im wrote:
  Hello,
  
  I have a problem. I need to sync my files between several devices
  (currently 3). At first, I thought the solution would have been to use
  mobileorg (that made sense since I also use an android device) but as
  far as I understand it, it is not really designed for that purpose (I
  have several agendas.org staying in the hierarchy with conflicts from
  all sources...)
  
  How do you sync your files easily and share them between 3, 4 or even
  more places ?
  
  I use Git.
 
 You might try unison.  Works for me.

I think the issue with tools like Unison, Dropbox, is conflict
resolution on simultaneous edits.  Traditional version control does a
better job of that, but then it loses the convenience of these other
tools.

I believe there is a list member (Alan) close to Unison development; in
the thread referenced by Samuel there is some discussion on how this
could be done in a more well defined manner.

Hope this helps,

-- 
Suvayu

Open source is the future. It sets us free.



Re: [O] [SYNC] How do you sync your org-mode files between n devices (n 2)

2013-09-04 Thread Torsten Wagner
Hi,

For me it is git using a central server. I push from the clients to the
server and pull from the server only. Never on a device to device base,
because most of the time the devices can't see each other (different
networks).


Hope that helps

Torsten



On 4 September 2013 09:43, Suvayu Ali fatkasuvayu+li...@gmail.com wrote:

 On Wed, Sep 04, 2013 at 03:30:24PM +0900, Xiao-Yong Jin wrote:
 
  On Sep 4, 2013, at 3:04 PM, Suvayu Ali fatkasuvayu+li...@gmail.com
 wrote:
 
   On Tue, Sep 03, 2013 at 11:34:52PM +0200, nore...@maillard.im wrote:
   Hello,
  
   I have a problem. I need to sync my files between several devices
   (currently 3). At first, I thought the solution would have been to use
   mobileorg (that made sense since I also use an android device) but as
   far as I understand it, it is not really designed for that purpose (I
   have several agendas.org staying in the hierarchy with conflicts from
   all sources...)
  
   How do you sync your files easily and share them between 3, 4 or even
   more places ?
  
   I use Git.
 
  You might try unison.  Works for me.

 I think the issue with tools like Unison, Dropbox, is conflict
 resolution on simultaneous edits.  Traditional version control does a
 better job of that, but then it loses the convenience of these other
 tools.

 I believe there is a list member (Alan) close to Unison development; in
 the thread referenced by Samuel there is some discussion on how this
 could be done in a more well defined manner.

 Hope this helps,

 --
 Suvayu

 Open source is the future. It sets us free.




[O] [SYNC] How do you sync your org-mode files between n devices (n 2)

2013-09-03 Thread noreply
Hello,

I have a problem. I need to sync my files between several devices
(currently 3). At first, I thought the solution would have been to use
mobileorg (that made sense since I also use an android device) but as
far as I understand it, it is not really designed for that purpose (I
have several agendas.org staying in the hierarchy with conflicts from
all sources...)

How do you sync your files easily and share them between 3, 4 or even
more places ?

Regards
-- 
XMA