You can grab the latest source code tar file, its gpg signature, and other related files in a variety of ways:
via http (the standard web-browser protocol)
via ftp (file-transfer protocol)
via anonymous rsync from:
rsync://rsync.samba.org/rsyncftp/
Also, an unpacked copy of the latest development version can be browsed on the web or obtained via anonymous rsync, as described in the Source Repository section.
Precompiled binaries are available in most modern OS distributions, so you should first check if you can install an rsync package via your standard package-install tools for your OS.
There are also packages available from some 3rd-parties (note that we cannot vouch for 3rd parties, so use a source that you trust):
RPMs for Red Hat/Fedora from Dag Wieers.
RPMs packages for i386 linux from Matt McCutchen.
cwRsync is a packaging of rsync for MS Windows.
Nightly snapshots of the rsync source tree are also available for people who want to try the latest development version. If you want to track development, then using an anonymous rsync copy will not require as much bandwidth (see below). Or, updating a git repository can automatically merge your local changes with our version. However, one thing the tar file has going for it is that it contains several generated files that are not present in the source repository (such as configure.sh, config.h.in, etc.). It can also be helpful if you cannot use rsync or git because of firewall, network, or software issues.
The rsync development tree is publicly available by various methods so that you can try out the latest changes and give feedback to the developers.
Note: Since the source repository is a work in progress it may, at times, not compile or fail in various ways, though it is usually pretty good.
Anyone can browse the development history through gitweb.
You may also use the git version-control system to check out the latest development version, especially if you want to make local changes. The following command will check-out the latest version into a directory named "rsync":
git clone git://git.samba.org/rsync.git
After the initial clone, I also recommend running the git-set-file-times script to set each file's last-modified time based on its last commit (don't run it again after that unless you do a "make distclean"). You'll also need autoconf and autoheader installed for the "prepare-source" command to succeed unless you use either the "fetch" or "fetchall" option (these options can only fetch the most recent generated file that goes with the latest git version):
cd rsync support/git-set-file-times # optional ./prepare-source
Updating your git checkout with the latest source is very easy:
git pull
Those wanting to just obtain the latest source without the entire git repository can either use a nightly tar-file snapshot (see above) or use an anonymous rsync copy of the unpacked source files:
rsync -av --exclude=.git/ rsync://rsync.samba.org/ftp/unpacked/rsync /dest/dir/
There are also various patch/* branches in the git repository that represent either work-in-progress features or features that are considered to be a little too fringe-interest for the main release. You can see these items as patch files for the dev release, or checkout a branch using git. For instance, the following command set will list all the patch/* branches available on the remote (origin) repository:
git branch -r | fgrep origin/patch/
To checkout one branch—let's say "foo"—as a local branch that can be locally modified while still tracking the remote branch, run this:
git checkout --track -b patch/foo origin/patch/foo
Finally, you can checkout a remote branch in a way that can be built, but local changes cannot be committed (unless you create a local branch later):
git checkout origin/patch/foo