main.py: forward SIGTSTP/SIGCONT so "C-z" will actually suspend everything.

Catch and forward SIGTSTP (as SIGSTOP) and SIGCONT to the subprocess
as we already do for SIGTERM and SIGINT so that the subprocess will
also suspend/resume.

This still leaves bup with potentially unexpected behavior since the
(detached) subprocess will never see a SIGSTOP delivered to the parent
(because SIGSTOP can't be intercepted and forwarded).  This is due to
the os.setsid() call that was originally introduced to support current
newliner arrangement (cf. b7a524ccb662c9ed3ebd786da0f45f459929ef45).

Thanks to Kalle for the report.

Reported-by: krichter722@aol.de
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
save-cmd.py: don't write an irrelevant and incomplete .bupm fragment.

When finishing up (leaving) a directory and preparing to store its
related tree in the repository, don't write the pending .bupm (which
is still incomplete) to the pack if we know the directory already
exists in the repository (i.e. when we're not going to write it
either).

This problem was discovered when Zoran noticed that two consecutive
saves without an intervening index could produce a repository with an
unreferenced blob (according to git fsck).

Reported-by: Zoran Zaric <zz@zoranzaric.de>
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Add --human-readable option to "bup web".

When --human-readable is specified, print sizes like 3.5K, 1.8G,
etc., instead of the exact byte count.

Signed-Off-By: Kumar Appaiah <a.kumar@alumni.iitm.ac.in>
Reviewed-by: Zoran Zaric <zz@zoranzaric.de>
[rlb@defaultvalue.org: adjust commit message; squash two of Kumar's
 patches into this one.]
Reviewed-by: Rob Browning <rlb@defaultvalue.org>
Add -l and --human-readable options to "bup ls".

When -l is specified, include the size in bytes for each item.

When --human-readable is also specified, print sizes like 3.5K, 1.8G,
etc., instead of the exact byte count.

Signed-Off-By: Kumar Appaiah <a.kumar@alumni.iitm.ac.in>
Reviewed-by: Zoran Zaric <zz@zoranzaric.de>
[rlb@defaultvalue.org: adjust commit message; adjust newlines; squash
 two of Kumar's patches into this one.]
Reviewed-by: Rob Browning <rlb@defaultvalue.org>
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Add -e,--sshcmd support to remote commands.

Added support for the rsync-style -e command line option to explicitly
specify the command line bup should use for the remote shell. This
allows the use of advanced SSH options by specifying them on the command
line ala:

	bup init -r user@remotehost -e 'ssh -oCompression=yes'

or the use of alternate shells which accept addressing and command
invocation in the SSH style.

Signed-off-by: Will Rouesnel <w.rouesnel@gmail.com>
Revised documentation to show the new -e,--sshcmd arguments.

Updates the documentation for init, join, save and split to be inline
with the -e,--sshcmd argument and their usage in relation to
-r,--remote.

Updates the documentation for -r,--remote for init, join, save, split
and on to indicate that user@host notation can be used (no code changes
required it was already possible).

Signed-off-by: Will Rouesnel <w.rouesnel@gmail.com>
Merge branch 'index-grafts-draft-submission' into cutting-edge