1 2Notable changes in 0.30 as compared to 0.29.3 3============================================= 4 5May require attention 6--------------------- 7 8* The minimum `git` version required is now 1.5.6. 9 10* The `prune-older` command now keeps the most recent save in each 11 period group (day, week, month, ...) rather than the oldest. 12 13* `bup` now adds a zero-padded suffix to the names of saves with the 14 same timestamp (e.g. 1970-01-01-214640-07) in order to avoid 15 duplicates. The sequence number currently represents the save's 16 reversed position in default `git rev-list` order, so that given: 17 18 /foo/1970-01-01-214640-09 19 /foo/1970-01-01-214640-10 20 21 In the normal case, the -10 save would be the next save made after 22 -09 (and the -09 save would be the single parent commit for -10). 23 24* `bup` is not currently compatible with Python 3 and will now refuse 25 to run if the Python version is not 2 unless 26 `BUP_ALLOW_UNEXPECTED_PYTHON_VERSION=true` is set in the environment 27 (which can be useful for development and testing). 28 29* `bup ls -s` now reports the tree hash for commits unless 30 `--commit-hash` is also specified. 31 32General 33------- 34 35* `bup get` has been added. This command allows the transfer or 36 rewriting of data within and between repositories, local or remote. 37 Among other things, it can be used to append remote saves to a local 38 branch, which by extension supports merging repositories. See 39 `bup-get(1)` for further information, and please note, this is a new 40 *EXPERIMENTAL* command that can (intentionally) modify your data in 41 destructive ways. It is potentially much more dangerous than most 42 `bup` commands. Treat with caution. 43 44* `bup` can now restore directly from a remote repository via `bup 45 restore -r host:path ...`. See `bup-restore(1)` for more 46 information. 47 48* `bup ls` can now report information for remote repositories via `bup 49 ls -r host:path ...`. See `bup-ls(1)` for more information. 50 51* `bup` should respect the git pack.packSizeLimit setting when writing 52 packfiles, though at the moment it will only affect a remote 53 repository when the option is set there directly. 54 55* `bup save` now stores the size for all links and normal files. For 56 directories saved using this new format retrieving file sizes for 57 larger files should be notably less expensive. Among other things 58 this may improve the performance of commands like `bup ls -l` or 59 `find /some/fuse/dir -ls`. 60 61* The VFS (Virtual File System) that underlies many operations, and 62 provides the basis for commands like `restore`, `ls`, etc. has been 63 rewritten in a way that makes remote repository access easier, 64 should decrease the memory footprint in some cases (e.g. for bup 65 fuse), and should make it easier to provide more selective caching. 66 At the moment, data is just evicted at random once a threshold is 67 reached. 68 69* A `--noop <--blobs|--tree>` option has been added to `bup split` 70 which prints the resulting id without storing the data in the 71 repository. 72 73Bugs 74---- 75 76* The way `bup` handles output from subprocesses (diagnostics, 77 progress, etc.) has been adjusted in a way that should make it less 78 likely that bup might continue running after the main process has 79 exited, say via a C-c (SIGINT). 80 81* `bup` should now respect the specified compression level when 82 writing to a remote repository. 83 84* `bup restore` now creates FIFOs with mkfifo, not mknod, which is 85 more portable. The previous approach did not work correctly on (at 86 least) some versions of NetBSD. 87 88* `bup` should no longer just crash when it encounters a commit with a 89 "mergetag" header. For the moment, it just ignores them, and 90 they'll be discarded whenever `bup` rewrites a commit, say via the 91 `rm`, `prune-older`, or `get` commands. 92 93* The bloom command should now end progress messages with \r, not \n, 94 which avoids leaving spurious output lines behind at exit. 95 96* A missing space has been added to the `bup split --bench` output. 97 98* Various Python version compatibility problems have been fixed, 99 including some of the incompatibilities introduced by Python 3. 100 101* Some issues with mincore on WSL have been fixed. 102 103* Some Android build incompatibilities have been fixed. 104 105 106Build system 107------------ 108 109* The tests no longer assume pwd is in /bin. 110 111* The tests should be less sensitive to the locale. 112 113* `test-meta` should no longer try to apply chattr +T to files. 'T' 114 only works for directories, and newer Linux kernels actually reject 115 the attempt (as of at least 4.12, and maybe 4.10). 116 117* `test-rm` should no longer fail when newer versions of git 118 automatically create packed-refs. 119 120* `test-sparse-files` should be less likely to fail when run inside a 121 container. 122 123* `test-index-check-device` and `test-xdev` now use separate files for 124 their loopback mounts. Previously each was mounting the same image 125 twice, which could produce the same device number. 126 127Thanks to (at least) 128==================== 129 130Alexander Barton, Artem Leshchev, Ben Kelly, Fabian 'xx4h' Melters, 131Greg Troxel, Jamie Wyrick, Julien Goodwin, Mateusz Konieczny, 132Nathaniel Filardo, Patrick Rouleau, Paul Kronenwetter, Rob Browning, 133Robert Evans, Tim Riemenschneider, and bedhanger 134