Permalink
Commits on Feb 1, 2011
  1. runtests: Apparently $(wildcard) in make doesn't always sort its output.

    This meant that on Solaris, tests would be run in a different order, so that
    BUP_MAIN_EXTRA (set in tclient.py) wouldn't be set the same as on Linux.
    
    In this case, we know the wildcard will always match something anyway, so we
    might as well just let the shell expand it out rather than asking make to do
    it.
    
    Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
    committed Feb 1, 2011
  2. cmd/help: earlier path.exedir() change made it not find manpages corr…

    …ectly.
    
    ...when the binary wasn't actually installed.  Previously, it would use
    sys.argv[0], which was the path to bup-help, but now it uses path.exedir(),
    which has the path to bup, which is one directory up.
    
    Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
    committed Feb 1, 2011
  3. Merge branch 'mux'

    * mux:
      If you specified the port number on the command line, convert it to an int.
      Add `bup daemon` command for simple socket server
      Add DemuxConn and `bup mux` for client-server
    committed Feb 1, 2011
  4. If you specified the port number on the command line, convert it to a…

    …n int.
    
    This gets rid of an exception.
    
    Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
    committed Feb 1, 2011
  5. Add `bup daemon` command for simple socket server

    Nothing special here, just listens on a host:port combination and spawns
    `bup mux server` instances.
    
    Signed-off-by: Brandon Low <lostlogic@lostlogicx.com>
    Brandon Low committed with Jan 27, 2011
  6. Add DemuxConn and `bup mux` for client-server

    `bup mux` works with any bup command to multiplex its stdout and stderr
    streams over a single stdout stream.
    
    DemuxConn works on the client side to demultiplex stderr and data
    streams from a single stream, emulating a simple connection.
    
    For now, these are only used in the case of simple socket bup://
    client-server connections, because rsh and local connections don't need
    them.
    
    Signed-off-by: Brandon Low <lostlogic@lostlogicx.com>
    Brandon Low committed with Jan 27, 2011
  7. @lelutin

    t/test.sh: Fix a test for 'split' on solaris

    When looking at output from a test run on Solaris, one test in the
    'split' suite showed up as OK but was actually showing a diff
    invocation error.
    
    The -q argument (for quiet) does not exist on the version of diff that
    is installed on Solaris. Since wvtest intercepts output from tested
    commands, the -q argument is actually not needed. Remove the argument in
    order to make the test execute correctly under all operating systems
    that were tested thus far.
    
    Signed-off-by: Gabriel Filion <lelutin@gmail.com>
    lelutin committed with Jan 28, 2011
Commits on Jan 26, 2011
  1. Give main.py the a --profile option

    This is just a convenience for anyone who is interested in seeing where
    CPU seconds are going.
    
    Signed-off-by: Brandon Low <lostlogic@lostlogicx.com>
    Brandon Low committed with Jan 26, 2011
  2. options.py: generate usage string correctly for no-* options.

    (copied from the sshuttle project)
    
    Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
    committed Jan 26, 2011
  3. options.py: don't die if tty width is set to 0.

    This sometimes happens if weird people, such as myself, open a pty without
    setting the width field correctly.
    
    (copied from the sshuttle project)
    
    Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
    committed Jan 23, 2011
  4. Combine and speed up idx->midx and bupindex merge

    These two processes used almost identical algorithms, but were
    implemented separately.  The main difference was one was ascending and
    the other was descending.
    
    This patch reverses the cmp on index.Entry so that both can share an
    algorithm.
    
    It also cuts some overhead in the algorithm by using it.next() instead of
    the next() wrapper, yielding a ~6% speedup on midx generation and index merging.
    
    Signed-off-by: Brandon Low <lostlogic@lostlogicx.com>
    Brandon Low committed with Jan 24, 2011
  5. Minorly fix outbytes calculation in client

    Signed-off-by: Brandon Low <lostlogic@lostlogicx.com>
    Brandon Low committed with Jan 22, 2011
  6. Use os.path rather than '/' logic in wvtest

    Signed-off-by: Brandon Low <lostlogic@lostlogicx.com>
    Brandon Low committed with Jan 22, 2011
  7. Handle $BUP_MAIN_EXE more carefully.

    In some cases, we might have been using sys.argv[0] *after* doing a chdir(),
    which doesn't work reliably since argv[0] might be a relative path.
    
    Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
    committed Jan 26, 2011
  8. auto_midx(): report args when failing to call a subprocess.

    The exception from subprocess.call() doesn't report the path it tried to use
    when it prints the "No such file or directory" error, which isn't helpful
    when trying to debug problems.
    
    Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
    committed Jan 26, 2011
  9. Henning Mueller reports that bup works on Solaris now.

    Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
    committed Jan 26, 2011
  10. lib/bup/drecurse.py: work even if O_NOFOLLOW is missing.

    It's non-critical and appears to be missing on Solaris.  Thanks to Henning
    Mueller for reporting the problem.
    
    Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
    committed Jan 26, 2011
Commits on Jan 18, 2011
  1. @lelutin

    options: remove unused 'exe' parameter

    The 'exe' parameter was added in the hope of using it for additional
    contextual information in the help text that Options generates. It was
    till then abandoned and was judged as superflous information.
    
    Remove the 'exe' parameter from Options' constructor.
    
    Signed-off-by: Gabriel Filion <lelutin@gmail.com>
    lelutin committed with Jan 17, 2011
  2. save: handle backup write errors properly

    bup-save was catching all IOErrors and treating them as data-read
    failures, but some of them could be backup-write errors.  Have git.py
    and client.py raise distinctive errors when pack write raises IOError.
    
    Signed-off-by: Brandon Low <lostlogic@lostlogicx.com>
    Brandon Low committed with Jan 12, 2011
  3. Fix test by forcing order

    Signed-off-by: Brandon Low <lostlogic@lostlogicx.com>
    Brandon Low committed with Jan 12, 2011
  4. Remove seemingly unnecessary abspath() call from the previous patch.

    Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
    committed Jan 18, 2011
  5. FreeBSD + os.mknod => broken, open().close()

    Signed-off-by: Brandon Low <lostlogic@lostlogicx.com>
    Brandon Low committed with Jan 12, 2011
  6. @lelutin

    cmd/init: don't spit out a traceback on init error

    When an error occurs during repository creation, 'bup init' currently
    lets GitError exceptions leak out, printing a backtrace to unsuspecting
    users in the process.
    
    Intercept GitError exceptions that come out of git.init_repo() and print
    out the message that it contains in a more friendly manner.
    
    Signed-off-by: Gabriel Filion <lelutin@gmail.com>
    lelutin committed with Jan 17, 2011
  7. @lelutin

    git.py: error when repo's parent dir absent

    Currently, when you try to initialize a bup repository inside an
    unexistant directory (e.g. BUP_DIR=some_dir/bup_repo, and some_dir does
    not exist), bup has to call "git init" to then obtain an error code
    which is not very significant to users.
    
    Add a check for the existence of the repository's parent directory and
    throw an exception with a more meaningful error message when that
    happens.
    
    Signed-off-by: Gabriel Filion <lelutin@gmail.com>
    lelutin committed with Jan 17, 2011
Commits on Jan 10, 2011
  1. @zoranzaric

    Fix typo in documentation for strip_base_path

    Signed-off-by: Zoran Zaric <zz@zoranzaric.de>
    zoranzaric committed with Jan 8, 2011
  2. @lelutin

    Add some notes on how to install bup on FreeBSD

    I've given bup a go on FreeBSD 8.1 and everything seemed to be
    functional.
    
    Some package names are not really obvious, and the default 'make'
    command doesn't like bup's GNU Make-ish Makefile. Add some notes in the
    README so that people can have some pointers on what to do to get bup
    fully functional under FreeBSD.
    
    Signed-off-by: Gabriel Filion <lelutin@gmail.com>
    lelutin committed with Jan 9, 2011
  3. @lelutin

    Update ls man page for new -a option

    Commit 74d28e7, while modifying the
    default behaviour for 'bup ls', introduced a new option to obtain the
    old default behaviour.
    
    Reflect this change in the bup-ls man page.
    
    Signed-off-by: Gabriel Filion <lelutin@gmail.com>
    lelutin committed with Jan 9, 2011
  4. move auto_midx calls to callers of sync_index

    In call cases, sync_index is now called from a loop.  It makes more
    sense to have the callers run auto_midx after the loop now.
    
    Signed-off-by: Brandon Low <lostlogic@lostlogicx.com>
    Brandon Low committed with Jan 8, 2011
  5. client/server:Handle multiple suggestions and misc

    There was a fixme in the code, I was doing cleanups and fixed it.  There
    are therefor some misc. cleanups in here along with the handling of
    multiple suggested packs.
    
    Signed-off-by: Brandon Low <lostlogic@lostlogicx.com>
    Brandon Low committed with Jan 8, 2011
  6. Dumb server doesn't need objcache

    And it's a waste of memory on a low power box.
    
    Signed-off-by: Brandon Low <lostlogic@lostlogicx.com>
    Brandon Low committed with Jan 8, 2011
Commits on Jan 8, 2011
  1. Merge branch 'next' into 'master'

    * 'next':
      Change server_mode=='dumb' to just a dumb_server_mode bool.
      Teach bup about URLs and non-ssh remotes
      Don't generate midx files in dumb server mode
      Add optional dumb-server mode
      git.CatPipe: set a buffer size on the subprocess to increase performance.
      Improve test pass condition
      Adds examples for strip, strip-prefix and graft to bup save's documentation
      Adds --graft option to bup save.
    
    Conflicts:
    	lib/bup/t/thelpers.py
    committed Jan 8, 2011
  2. Merge branch 'zz/strip_path_fix'

    * zz/strip_path_fix:
      Fix a bug in strip_path when prefix is a symlink
      Add a testcase for strip_path
    committed Jan 8, 2011
  3. @zoranzaric

    Fix a bug in strip_path when prefix is a symlink

    helpers.realpath() wasn't the right choice for path normalization.
    The prefix itself can be a symlink, too.  Now we use os.path.realpath(),
    which also follows symlinks for the last element.
    
    Signed-off-by: Zoran Zaric <zz@zoranzaric.de>
    zoranzaric committed with Jan 7, 2011
  4. @zoranzaric

    Add a testcase for strip_path

    As reported by Aleksandr Milewski strip_path has a bug when the prefix
    is a symlink.  This case is addressed with this test.
    
    Signed-off-by: Zoran Zaric <zz@zoranzaric.de>
    zoranzaric committed with Jan 7, 2011
Commits on Jan 6, 2011
  1. Merge branch 'bl/dumbserver' into next

    * bl/dumbserver:
      Change server_mode=='dumb' to just a dumb_server_mode bool.
      Teach bup about URLs and non-ssh remotes
      Don't generate midx files in dumb server mode
      Add optional dumb-server mode
    committed Jan 6, 2011