git annex multicast [options]
Multicast allows files to be broadcast to multiple receivers, typically on a single local network.
The uftp program is used for multicast. <http://uftp-multicast.sourceforge.net/>
Generates a multicast encryption key and stores a corresponding multicast address to the git-annex branch.
- --send [file]
Sends the specified files to any receivers whose multicast addresses are stored in the git-annex branch.
When no files are specified, all annexed files in the current directory and subdirectories are sent.
The git-annex-matching-options(1) can be used to control which files to send. For example:
git annex multicast send . --not --copies 2
Receives files from senders whose multicast addresses are stored in the git-annex brach.
As each file is received, its filename is displayed. This is the filename that the sender used; the local working tree may use a different name for the file, or not contain a link to the file.
This command continues running, until it is interrupted by you pressing ctrl-c.
Note that the configured annex.diskreserve is not honored by this command, because uftpd receives the actual files, and can receive any size file.
- --uftp-opt=option -Uoption
Pass an option on to the uftp/uftpd command. May be specified multiple times.
For example, to broadcast at 50 Mbps:
git annex multicast send -U-R -U50000
Suppose a teacher wants to multicast files to students in a classroom.
This assumes that the teacher and students have cloned a git-annex repository, and both can push changes to its git-annex branch, or otherwise push changes to each-other.
First, the teacher runs git annex multicast --gen-address; git annex sync
Next, students each run git annex multicast --gen-address; git annex sync
Once all the students have generated addresses, the teacher runs git annex sync once more. (Now the students all have received the teacher's address, and the teacher has received all the student's addresses.)
Next students each run git annex multicast --receive
Finally, once the students are all listening (ahem), teacher runs git annex multicast --send
Joey Hess <firstname.lastname@example.org>