unison is a user-level (no server) file synchronization tool
I gave this a quick try, but it didn't work for me: bash-2.04$ unison b ssh://trevor@localhost/tmp/unison trevor@localhost.localdomain's password: Looking for changes Looking for changes [Waiting for changes from server] Reconciling changes local localhost... changed ----> [root] [<ret>IENdxpgq/><?] d Uncaught exception File "/ad3/ports/trevor/unison/work/unison-2.5.1/os.ml", line 0, characters 6538-6550: Assertion failed bash-2.04$ ls -l //tmp/unison/ total 2 -rw-r--r-- 1 trevor wheel 12 Oct 25 09:10 a -rw-r--r-- 1 trevor wheel 16 Oct 25 09:10 b bash-2.04$ whoami trevor When it was compiling, I noticed it looking for etags. That seems to come with EMACS, which I don't have. The compilation finishes, saying that an error was ignored. Perhaps it would be desirable to add a dependency on EMACS. I notice there's a newer version available. The documentation for the program describes a GTK+ version. If you were feeling ambitious, you could make that an option for the port. -- Trevor Johnson http://jpj.net/~trevor/gpgkey.txt
Trevor Johnson writes: > I gave this a quick try, but it didn't work for me: > > bash-2.04$ unison b ssh://trevor@localhost/tmp/unison The unison documentation isn't quite clear on this, but I believe you need a double slash after the hostname, like so: unison b ssh://trevor@localhost//tmp/unison at least, this is the way it works for me (while it doesn't if there's just one slash). RE: etags dependancy, I've removed the creation of the tags file from the default target. See below for the modified version (it's identical to the original port except for that one line). Currently 2.5.1 is the newest stable version. AFAIK, there is an 2.5.3 in "very beta", and I prefer to wait with it to stabilize. # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # /usr/ports/net/unison/ # /usr/ports/net/unison/pkg-plist # /usr/ports/net/unison/pkg-descr # /usr/ports/net/unison/distinfo # /usr/ports/net/unison/Makefile # /usr/ports/net/unison/pkg-comment # /usr/ports/net/unison/files # /usr/ports/net/unison/files/patch-aa # echo c - /usr/ports/net/unison/ mkdir -p /usr/ports/net/unison/ > /dev/null 2>&1 echo x - /usr/ports/net/unison/pkg-plist sed 's/^X//' >/usr/ports/net/unison/pkg-plist << 'END-of-/usr/ports/net/unison/pkg-plist' Xbin/unison END-of-/usr/ports/net/unison/pkg-plist echo x - /usr/ports/net/unison/pkg-descr sed 's/^X//' >/usr/ports/net/unison/pkg-descr << 'END-of-/usr/ports/net/unison/pkg-descr' XUnison is a file-synchronization tool for Unix and Windows. It allows two Xreplicas of a collection of files and directories to be stored on different Xhosts (or different disks on the same host), modified separately, and then Xbrought up to date by propagating the changes in each replica to the other. X XUnison shares a number of features with tools such as configuration Xmanagement packages (CVS, PRCS, etc.) distributed filesystems (Coda, etc.) Xuni-directional mirroring utilities (rsync, etc.) and other synchronizers X(Intellisync, Reconcile, etc). X XWWW: http://www.cis.upenn.edu/~bcpierce/unison/ X X- Dan Pelleg X Xdpelleg+unison@cs.cmu.edu END-of-/usr/ports/net/unison/pkg-descr echo x - /usr/ports/net/unison/distinfo sed 's/^X//' >/usr/ports/net/unison/distinfo << 'END-of-/usr/ports/net/unison/distinfo' XMD5 (src.tar.gz) = e7e1f701d8d2c22e25380550ca8d60f4 END-of-/usr/ports/net/unison/distinfo echo x - /usr/ports/net/unison/Makefile sed 's/^X//' >/usr/ports/net/unison/Makefile << 'END-of-/usr/ports/net/unison/Makefile' X# New ports collection makefile for: unison X# Date created: 4 October 2000 X# Whom: Dan Pelleg <dpelleg+unison@cs.cmu.edu> X# X# $FreeBSD$ X# X XPORTNAME= unison XPORTVERSION= 2.5.1 XCATEGORIES= net XMASTER_SITES= http://www.cis.upenn.edu/~bcpierce/unison/download/stable/unison-2.5.1/ XDISTNAME= src X XMAINTAINER= Dan Pelleg <dpelleg+unison@cs.cmu.edu> X XBUILD_DEPENDS= ocamlc:${PORTSDIR}/lang/ocaml X XWRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION} X XUSE_GMAKE= yes XMAKE_ARGS= UISTYLE=text CFLAGS="" X Xpost-install: X strip ${PREFIX}/bin/unison X X.include <bsd.port.mk> END-of-/usr/ports/net/unison/Makefile echo x - /usr/ports/net/unison/pkg-comment sed 's/^X//' >/usr/ports/net/unison/pkg-comment << 'END-of-/usr/ports/net/unison/pkg-comment' XA user-level file synchronization tool END-of-/usr/ports/net/unison/pkg-comment echo c - /usr/ports/net/unison/files mkdir -p /usr/ports/net/unison/files > /dev/null 2>&1 echo x - /usr/ports/net/unison/files/patch-aa sed 's/^X//' >/usr/ports/net/unison/files/patch-aa << 'END-of-/usr/ports/net/unison/files/patch-aa' X--- Makefile.orig Mon Sep 25 19:04:31 2000 X+++ Makefile Wed Oct 25 20:48:53 2000 X@@ -62,12 +62,12 @@ X ###################################################################### X # Installation X X-INSTALLDIR = $(HOME)/bin/ X+INSTALLDIR = ${PREFIX}/bin/ X X install: $(NAME)$(EXEC_EXT) X- -mv $(INSTALLDIR)/$(NAME)$(EXEC_EXT) /tmp/$(NAME)-$(shell echo $$$$) X+# -mv $(INSTALLDIR)/$(NAME)$(EXEC_EXT) /tmp/$(NAME)-$(shell echo $$$$) X cp $(NAME)$(EXEC_EXT) $(INSTALLDIR) X- cp $(NAME)$(EXEC_EXT) $(INSTALLDIR)$(NAME)-$(VERSION)$(EXEC_EXT) X+# cp $(NAME)$(EXEC_EXT) $(INSTALLDIR)$(NAME)-$(VERSION)$(EXEC_EXT) X X ###################################################################### X # Demo X@@ -204,7 +204,7 @@ X tags: X -$(ETAGS) *.ml *.mli X X-all:: TAGS X+# all:: TAGS X X TAGS: X $(MAKE) tags END-of-/usr/ports/net/unison/files/patch-aa exit
State Changed From-To: open->closed Committed with a DIST_SUBDIR--thanks, Dan.
> > bash-2.04$ unison b ssh://trevor@localhost/tmp/unison > > The unison documentation isn't quite clear on this, but I believe you need > a double slash after the hostname, like so: > > unison b ssh://trevor@localhost//tmp/unison The documentation is clear enough; I just hadn't read it carefully. With the first syntax, unison will add ~trevor to the remote path. With the second syntax, the path is absolute (starts from /). > at least, this is the way it works for me (while it doesn't if there's > just one slash). > > RE: etags dependancy, I've removed the creation of the tags file from the > default target. See below for the modified version (it's identical to > the original port except for that one line). Thanks! I added a DIST_SUBDIR so people would know what src.tar.gz belonged to, and committed this. -- Trevor Johnson http://jpj.net/~trevor/gpgkey.txt