11 ms·
Unison File Synchronizer
- rgovostes 7y agoFrom the changelog: > Further improvements to the OS X GUI (thanks to Alan Schmitt and Craig Federighi). Here are Craig's commits: - https://github.com/bcpierce00/unison/commit/48f8e1b27edbe2df0a6da272b6694f0d522c710b https://github.com/bcpierce00/unison/commit/48f8e1b27edbe2df... - https://github.com/bcpierce00/unison/commit/6645d1793ce843f6fe163c7ad68dc1932ad89500 https://github.com/bcpierce00/unison/commit/6645d1793ce843f6... Around the same time, Dave Abrahams, now of Apple's Swift team, makes an appearance on the unison-hackers mailing list.
- throw0101a 7y agoNot to be confused with Panic's Usenet/NNTP client: * https://en.wikipedia.org/wiki/Unison_(Usenet_client) https://en.wikipedia.org/wiki/Unison_(Usenet_client)
- trevyn 7y agoNor with the Coda replicating filesystem, which is not to be confused with Panic’s code editor of the same name.
- eridius 7y agoRather amusingly, both Panic's Unison and this Unison used the same ~/Library/Application Support/Unison directory on macOS. Thankfully they used different filenames and so didn't end up conflicting.
- avhception 7y agoI can't praise Unison enough. I've been using it every day for over 10 years and is easily one of the most useful pieces of software I've ever come across. I've donated multiple times over the years.
- rwmj 7y agoI'm a maintainer of the Unison package in Fedora and I'd love to know which version(s) of Unison you use day to day. In Fedora (and I think this applies in Debian too) we have to maintain 3 versions because Unison isn't interoperable across minor releases. For this reason we package 2.13, 2.27 and 2.40, and I think there is discussion about packaging the latest release too. Keeping these ancient (esp 2.13) versions going is a pain to say the least.
- carapace 7y ago> Unison isn't interoperable across minor releases. Ouch! FWIW, Thanks for all your work.
- raegis 7y agoI use it in Debian, which used to (until recently) package 2 versions in every release. This was convenient for me, a conservative user, who might run old-stable on some computers for months before upgrading to stable. I have used workarounds in the past (mount home directory in a container, and sync from within) so I'm fine with a single version in Debian. But you package for Fedora, which is "upstream" for RHEL (if I'm not mistaken) with their 10 year life cycles, so I'm sure RHEL customers would love you to keep as many versions available as possible :)
- LeoPanthera 7y agoThis incompatibility is one of the reasons why I reduced my dependency on it, though I still use it for minor things. The last straw came when it turns out that unison was incompatible with the same version, if that version had been built on a different system. I can't remember the details but there was some library version difference that results in a unison that has the same version number but wouldn't talk to one from another system without crashing. Drove me crazy.
- sansnomme 7y agoHow difficult would it be to build a Dropbox clone on top of this?
- bloopernova 7y agoDo you mean rclone or a whole service like Dropbox? (Rclone is pretty amazing, btw) https://rclone.org/ https://rclone.org/
- sansnomme 7y agoAutomated filesync cross-platform. Not git-style manual push pull. More of leave and forget and only intervene when there's a file conflict.
- Nux 7y agoLike Syncthing?
- fraencko 7y agoAlso Resilio Sync, formerly known as BitTorrent Sync.
- mjn 7y agoUnison has support for that on some platforms. On Linux, the option "-repeat watch" uses inotify to watch for changes and rerun unison each time there's a change. You can combine that with -auto and some of the options specifying policies for resolving conflicts (e.g. -prefer newer) to get a setup that works without user interaction.
- marcthe12 7y agoWhat the best way to do bidirectional sync using rclone?
- bloopernova 7y ago
- metalliqaz 7y agoIs this project still going? I used to use it a lot for duplicating my project directories between my lap PC and my home PC. It was so powerful and so useful at the time. Honestly I thought it had died. I use Syncthing now. It's really useful.
- eddieh 7y agoI used to use it daily to sync projects, music, and documents between computers too. It was really nice once I got it configured to my liking. I would sync my work computer to a external hard drive and the external drive to my home computer, thus creating a very powerful sneakernet and an implicit backup on the external. I reluctantly installed Dropbox one day after forgetting my external drive at home. Honestly, that was the beginning of a miserable time. Dropbox never really delivered, it took forever to sync, and constantly caused the internal disk to trash. I had tons of other problems with Dropbox over the years and was very happy the day I quit using it. I still have a unison alias in my .profile alias unison="unison -logfile /Users/eddie/log/unison.log" I really miss the control Unison gave me.
- fyrabanks 7y agoSorry, I'm probably missing something obvious (and am asking out of genuine curiosity here), but why didn't you go back to using Unison? And what are you using now that you quit Dropbox?
- eddieh 7y agoDropbox ended up be an institutional requirement where I was working. Now I just let iCloud do it’s thing. It isn’t great, but it is less buggy than Dropbox.
- comex 7y agoI recently switched from Syncthing to Unison, after getting tired of Syncthing either taking forever to sync anything or getting stuck altogether, with very little visibility or control over what it was doing. So far Unison (with fsmonitor) has ‘just worked’, with files updating immediately on save as I’d expect. (That said, one of the problems I encountered with Syncthing seemed to be that it wouldn’t properly reconnect when I switched networks, which is necessary since it runs as a persistent daemon. With Unison, so far I’ve been starting it up in the foreground in a terminal as needed, so it hasn’t had to provide the same functionality. But I expect I’ll eventually set up some type of auto-reconnect, which will hopefully work better than Syncthing did.)
- shoo 7y agoI used to use unison to periodically sync files between a host filesystem and a VM filesystem as it was a lot faster - in terms of filesystem performance when not syncing - than using the shared folder functionality provided by the VM.
- ufo 7y agoI use Unison every day to synchronize my work computer and my home computer, using an USB thumb drive as the intermediary. The thing I like the most about this arrangement is that I don't need a direct SSH between home and work, that there is no cloud service involved, and that the GUI lets me double check what files are going to be written to/from the usb drive before it synchronizes. There is one issue that I have run into though. If I format the USB as fat32 it can't properly store permissions. And if I format it as ext4 then I need to make sure that my numeric user ID is exactly the same in both my home and work computers (otherwise the permissions get messed up). Is there a way to make my arrangement more robust so that I can sync files through and USB drive, without needing to use the same numeric user id in all my computers?
- Fnoord 7y ago> Is there a way to make my arrangement more robust so that I can sync files through and USB drive, without needing to use the same numeric user id in all my computers? $ chown -Rf ufo.users /media/usbdrive && unison
- rcarmo 7y agoI've been using Unison since... forever. A hint regarding running the latest Mac binary on Mojave: if the GUI crashes on you, it's likely to be an issue regarding syncing file _permissions_ and not just files. This has been biting me for a couple of months now whenever I sync my development tree between Dropbox and OneDrive, since Windows' WSL tends to set wonky 0x777 permissions on entire file trees, and it is usually those that cause Unison to crash. Otherwise, I've been using it to sync 400K+ files without incident.
- eridius 7y agoUnison has been an indispensable tool for me for many years. I keep my desktop and laptop in sync by using an always-on Linode as a sync server. Something I love about Unison is the fact that I can sync files from anywhere on my filesystem without having to move them or replace them with symlinks. I can also sync subsets of my files by defining multiple profiles. I have Unison set up to default to a "common" profile that includes nearly everything, but I can explicitly request a sub-profile if I want. I also have a separate profile that syncs the profiles themselves, so I can make profile changes on one machine and run `unison profiles` to upload them.
- eridius 7y agoThe Development Status section of the manual mentions a follow-on project called Boomerang¹. It looks like the GitHub repo² only had activity for about 2 years, then stopped. Is that a dead project? ¹https://www.seas.upenn.edu/~harmony/ https://www.seas.upenn.edu/~harmony/ ²https://github.com/boomerang-lang/boomerang https://github.com/boomerang-lang/boomerang
- conqrr 7y agoDaily user since beginning of this year. Help keeps my laptop in sync with my remote dev environment.
- jacobu9 7y agoI've been working on a spiritual successor to Unison for a few years called Mutagen [1]. It aims to provide more flexible synchronization and tighter integration with filesystem watching, enabling ~real-time remote editing with your local editor of choice. It also adds SSH-style network forwarding, so you can forward network traffic to/from remote systems to access remote applications without exposing ports. It currently supports SSH and Docker containers, but additional transports are coming. I'd be really happy to receive feedback if you have a chance to try it out! [1] https://github.com/mutagen-io/mutagen https://github.com/mutagen-io/mutagen
- sooheon 7y agoHaven't dug into it yet, but quick Q: does this allow the use case of using a local IDE to interactively develop/run code against a docker environment running in a remote server? (so two "jumps")
- jacobu9 7y agoThat's actually one of the primary use cases at the moment. The way Mutagen works with Docker is by using `docker cp` to inject one of its "agent" binaries into the container and then communicating with that binary over `docker exec`. You can also orchestrate your setup a bit (e.g. to work with Docker Compose) using Mutagen's new orchestration infrastructure. You can find an example of this at the bottom of the Mutagen homepage: https://mutagen.io https://mutagen.io
- mih 7y agoThe name seems to conflict with the Python module (https://mutagen.readthedocs.io/en/latest/ https://mutagen.readthedocs.io/en/latest/), which has been around for a longer time. While you seem to have put in a lot of effort seeing your commit history and search ranking, your first commit is in Nov 2016 - nearly a decade after the other one. Perhaps you should consider rebranding the project, with the greater interest of the FOSS community in mind.
- patsplat 7y agoWhat a fantastic tool! A long time ago used unison to keep file uploads on 2x primary web servers[1] in sync. It worked like a charm. With IIS on Windows!
- pgen 7y agoUnison does not support hard links!
- yawaramin 7y agoA few years ago, I was working in a company that used a shared drive on a local Windows network. Several analysts and people from other departments would use the drive to store shared price lists, tables, and other documentation. Part of my job was to keep these data files updated with info on a daily basis. The problem with trying to edit these files was that everyone logged in on the network had access to them and could change them arbitrarily. Or they could even just inadvertently lock the files if they left them open on their PCs. There was no control or change management. I decided to keep the 'canonical' versions of the files on my PC at work and use Unison to sync them over to the shared network versions of the files once a day. Unison would instantly tell me if anyone other than me had changed the files, and I could investigate further. It was a huge relief knowing that I had proper control over those files.
- logandk 7y agoUnison is great for keeping multiple machines in sync. I eventually switched to Dropbox for reasons I don't recall, but it might be a good time to reconsider. Also, I'd forgotten, but apparently I even made a (poor) attempt at writing a Unison UI of OS X, some 11 years ago... https://github.com/logandk/autoson https://github.com/logandk/autoson
- moviuro 7y agoUnison's cool, but I hit some major roadblocks with it, namely: it can't run on an heterogeneous network [0,1]. As many others have already suggested, syncthing[2] is the new best tool out there for multi-directional sync. [0] https://wiki.archlinux.org/index.php/Unison#Version_incompatibility https://wiki.archlinux.org/index.php/Unison#Version_incompat... , https://groups.yahoo.com/neo/groups/unison-users/conversations/topics/11439 https://groups.yahoo.com/neo/groups/unison-users/conversatio... [1] https://try.popho.be/byeunison.html https://try.popho.be/byeunison.html [2] https://syncthing.net https://syncthing.net
- sdfjkl 7y agoUnison efficiently and reliably syncs my website (static blog mostly) between OS X and FreeBSD. It's one of those extremely underrated pieces of software that just quietly does an excellent job, yet most people never heard of it and continue to struggle with rsync or similar (syncthing fulfills a somewhat different role). Perhaps because it's written in an oddball language, or because the website isn't flashy enough. I often evaluate a wide range of software before choosing what I consider best for a job, and many years ago, Unison came out way ahead in such an evaluation. It never failed me.
- BenGosub 7y agoHow does Unision compare to Rsync, is one a part of the other or both are different tools for syncing files?
- the-peter 7y agoI used and loved Unison for years, but I found myself wanting something that just worked invisibly with no admin effort so I switched to Resilio (Bittorrent Sync). Both work for my purposes. Anyone else try both of these and have feedback?