I'm looking for a way to synchronize bookmarks between Chrome instances, without uploading them to anybody's servers.
It must work even if bookmarks are modified while disconnected from the network. I expect to run a command to request the synchronization. I don't want to have to dig into menus, everything should be packed in a shell command.
The tool should handle common cases transparently: bookmark added or removed, bookmark link or text changed. Ideally, there should be some form of interactive conflict resolution if there have been conflicting edits (e.g. same bookmark modified in different ways) but I can probably live with something substandard here.
I want to keep editing bookmarks inside Chrome, so maintaining a text file under distributed version control and importing that after every change won't do. Putting the bookmark database under version control won't allow any kind of merges so it won't do either. A two-way conversion with a text file which I'd put under DVC could work.
The Chrome instances are on multiple machines which communicate via the local filesystem (VM with shared directories) or over SSH. I have Chrome instanced running on both Linux and Windows. If a server component is required, I'll run in on Linux.
Synchronization with Firefox would be a plus but is not required.
Wikipedia's comparison of browser synchronizers is a bit messy and as far as I can see none of the software listed there fits the bill.
rsync
type command as a first approach (able to push or pull, so always run on Linux) but all bookmarks are stored in a single file per profile, so conflict resolution might be messy. Maybe we can find something a bit more intelligent/interactive for merging. That still leaves Firefox out (since I assume the storing format is not the same). I suppose most synchronizers are based on the browser API and as a consequence may not be able to run independently and will probably go over the web.