Commit Graph

806 Commits (extents-diff)

Author SHA1 Message Date
Axel Burri b3d3c5383b btrbk: add extents-diff command, using Linux::ExtentsMap 2019-05-23 17:36:02 +02:00
Axel Burri 73206e389c Linux::ExtentsMap: add module: FIEMAP block range from filefrag 2019-05-23 17:36:02 +02:00
Axel Burri 3094092df4 btrbk: add print_size, and command line option modifier 2019-05-23 16:44:29 +02:00
Axel Burri 075fb8bfad btrbk: prepare for multiple pre-config commands
Preparatory for extents-diff command
2019-05-23 15:42:31 +02:00
Axel Burri d9d3def390 btrbk: change version to 0.29.0-dev 2019-05-23 15:42:29 +02:00
Axel Burri 31c25d0ee2 change version to 0.28.2; update ChangeLog 2019-05-23 14:11:33 +02:00
Axel Burri 0439e6079f btrbk: fix vinfo_resolved
Fix for rare cases:
- fix for paths named "0"
- return undef if not strictly below $vol (or allow_equal is set)
2019-05-23 13:14:07 +02:00
Axel Burri 461eaada66 btrbk: rename "get_related_readonly_nodes" to "get_related_nodes"; add readonly and omit_self options 2019-05-23 13:14:07 +02:00
Axel Burri f169ab4482 btrbk: cosmetics: test loglevel before dumping cmd return value (performance) 2019-05-23 13:12:45 +02:00
Axel Burri 45b487707f btrbk: honor incremental_resolve on targets (fix: defaults to "mountpoint" instead of "directory")
Use $resolve_droot instead of $droot for calls to get_best_correlated
(probably missed commit), same as $resolve_sroot.

Fixes possible regression of:

514e69243a btrbk: add "incremental_resolve" configuration option
2019-05-19 19:01:50 +02:00
Axel Burri 01230cde22 btrbk: bugfix: add missing (fake) mountpoint for raw targets
For raw targets, get_best_parent() dies as VINFO_MOUNTPOINT is not
defined on raw vinfo.

Fixes regression of:

d64e237e94 btrbk: get_best_parent: consider all parent/child relations
2019-05-19 15:27:27 +02:00
Axel Burri 538dab5396 btrbk: change version to 0.28.2-dev 2019-05-19 15:17:37 +02:00
Axel Burri f132c94c65 change version to 0.28.1; update ChangeLog 2019-05-16 17:16:52 +02:00
Axel Burri ef69f1ffee documentation: remove pre-generated man pages
Package maintainers like to build everything from scratch, removing
overhead. Again, we apologize for the inconvenience.

Note that reproducible builds are still guaranteed by setting
SOURCE_DATE_EPOCH in doc/Makefile.

Reverts: a6dbd60e5a documentation: add pre-generated man pages: from groff to asciidoc and back again
2019-05-16 17:06:15 +02:00
Axel Burri f54853dd18 btrbk: cosmetics (trace logs) 2019-05-16 17:01:51 +02:00
Axel Burri 10bde449c6 btrbk: remove obsolete "resolve_subdir" option of vinfo_init_root
Removed in: b37ef84e36 btrbk: always read mountpoints
2019-05-16 17:01:51 +02:00
Axel Burri b62bb3b1a8 btrbk: get_related_readonly_nodes: vastly increase abort_distance
It's not uncommon to have a large intact parent-chain on targets
(e.g. target_preserve_min=all).

If this is the case, performance drops a bit on "btrbk archive".
Note that we could limit the search depth in get_best_parent() for
some performance improvements, as this only affects extra clones.
2019-05-03 16:13:24 +02:00
Axel Burri 37b0bd3477 btrbk: bugfix: make get_related_readonly_nodes non-recursive
Perl hates recursions, and dies if recursion depth = 100:

    Deep recursion on subroutine "main::_push_related_children"

Unfortunately this happens before the implemented abort condition
(distance=256).

Fixed by re-implementing get_related_readonly_nodes() non-recursive.

Refs: https://github.com/digint/btrbk/issues/279
2019-05-03 16:10:41 +02:00
Axel Burri 206e706d85 btrbk: allow overriding options with context restrictions
This allows commands like:

    btrbk run mysubvol --override=snapshot_name=mysubvol-oneshot
2019-04-30 13:38:47 +02:00
Axel Burri 3d169d1df4 btrbk: change version to 0.28.1-dev 2019-04-30 13:38:33 +02:00
Axel Burri a6dbd60e5a documentation: add pre-generated man pages: from groff to asciidoc and back again
This reduces build-time dependencies to zero, helping package
maintainers and providing reproducible builds.

NOTE: generated man pages will only be updated on releases. In order
to make sure the docs are correctly rebuilt, run "make clean man". We
apologize for the inconvenience.

From Groff to Asciidoc and Back Again [1]
=========================================

| Comparison                                                               | Links                                                                                                          |
| -------------------------------------------------------------------------| -------------------------------------------------------------------------------------------------------------- |
| **Plain ROFF**                                                           |                                                                                                                |
| +++ Best result for `man` (our main goal!)                               |                                                                                                                |
| - Not supported by github                                                | [btrbk(1) v0.25.1 in plain groff](https://github.com/digint/btrbk/blob/v0.25.1/doc/btrbk.1)                    |
| - No decent converters: e.g. `groff -Txhtml -mandoc`                     | [btrbk(1) v0.25.1 at digint.ch (official site)](https://digint.ch/btrbk/doc/archive/btrbk-0.25.1/btrbk.1.html) |
|                                                                          |                                                                                                                |
| **asciidoc**                                                             |                                                                                                                |
| + Decent (scriptable!) html                                              | [btrbk(1) v0.26.1 at digint.ch (official site)](https://digint.ch/btrbk/doc/archive/btrbk-0.26.1/btrbk.1.html) |
| + Supported by github (helps contributors writing decent documentation)  | [btrbk.1.asciidoc v0.26.1 at github](https://github.com/digint/btrbk/blob/master/doc/btrbk.1.asciidoc)         |
|                                                                          |                                                                                                                |
| **asciidoc (`xmlto`, `atx`)**                                            | http://asciidoc.org/                                                                                           |
| + Good result for `man`                                                  |                                                                                                                |
| - EOL (why care that much? it works fine!)                               | [asciidoc EOL notice at github](https://github.com/asciidoc/asciidoc/releases/tag/8.6.10)                      |
|                                                                          |                                                                                                                |
| **asciidoc (`asciidoctor`)**                                             | https://asciidoctor.org                                                                                        |
| - Pulls in tons of ruby (build depends)                                  | https://bugs.gentoo.org/681056                                                                                 |
| -- Implies to commit a pre-converted `doc/btrbk.1`                       |                                                                                                                |
| + Seems more evolved than `xmlto`, still actively maintained             |                                                                                                                |
|                                                                          |                                                                                                                |
| **rst (`xrst2man.py` from docutils)**                                    |                                                                                                                |
| - Worse result for `man`                                                 |                                                                                                                |
| ++ Good html converters (after having a quick look at it)                |                                                                                                                |
| - Not so well supported by github                                        | [btrbk.1.rst v0.26.1 at github](https://github.com/digint/btrbk/blob/rst2man/doc/btrbk.1.rst)                  |

 [1] https://github.com/digint/btrbk/pull/219 (edited)
2019-04-24 19:45:54 +02:00
Axel Burri fc485565ce change version to 0.28.0; update ChangeLog 2019-04-24 19:45:09 +02:00
Axel Burri 5b34f620aa documentation: reproducible builds: set SOURCE_DATE_EPOCH to "📅" tag 2019-04-24 19:41:14 +02:00
Axel Burri e3176a0027 documentation: asciidoc: add "release-version" attribute, and append it to "man source" attribute 2019-04-24 19:41:14 +02:00
Axel Burri 818cc42d9b documentation: Makefile: dont compress documentation by default
Many (all?) distro builds scripts want to do compression by their own.
2019-04-24 19:41:14 +02:00
Axel Burri 173319e7e1 documentation: Makefile: always build using asciidoctor (remove a2x)
Remove support for man page generation using asciidoc "a2x": The
project is discontinued, and depends on Python 2.7.

As we will provide pre-generated man pages as of btrbk-0.28.0, this is
not needed any more.
2019-04-24 19:40:59 +02:00
Axel Burri d231a955ce documentation: btrbk.conf.5: cosmetics: replace tabs with whitespace 2019-04-24 19:22:30 +02:00
Axel Burri fe9ce255c5 remove experimental tag on "btrbk archive" 2019-04-24 19:22:30 +02:00
Axel Burri 725a284f16 documentation: README.md: adapt indentation in examples 2019-04-24 19:22:30 +02:00
Axel Burri f5c7c74108 documentation: simplify examples, remove optional "send-receive" on "target" declarations 2019-04-24 19:22:29 +02:00
Axel Burri cb1c12a6c1 documentation: btrbk.conf.5: more comprehensive text on "target" declaration 2019-04-24 13:52:05 +02:00
Axel Burri 6115cbdace btrbk: make target_type optional for "target" section 2019-04-24 13:51:52 +02:00
Axel Burri 50267f1ca9 documentation: btrbk.conf.5: add warning on old versions of mbuffer 2019-04-24 12:53:19 +02:00
Axel Burri e7793d9e06 documentation: README.md: add example command line for quick additional snapshot 2019-04-20 14:51:31 +02:00
Axel Burri 88b737d4b7 documentation: README.md: add multiple groups in virtual machine setup 2019-04-20 14:49:05 +02:00
Axel Burri 32d92ff3b7 btrbk: allow space separated groups 2019-04-20 14:05:42 +02:00
Axel Burri 0a2c5dbfb3 btrbk: use transaction for mkdir (cosmetics)
Prints correct "dryrun_success" (instead of "DRYRUN") in transaction
log.
2019-04-18 17:28:15 +02:00
Axel Burri 3d2936d40c btrbk: fix regression for "btrbk archive -n"
resolve by mountpoint needs VINFO_MOUNTPOINT, which was not inserted
on fake mkdir:

514e69243a btrbk: add "incremental_resolve" configuration option
2019-04-18 17:24:38 +02:00
Axel Burri e36289a769 btrbk: use "archive_target" config context for archives
Distinguish normal "target" and (generated) "archive_target"
configuration context (printed in transaction log for
"abort_<context>" actions).
2019-04-18 16:40:25 +02:00
Axel Burri a7da44cf2f btrbk: bugfix: print aborted subvolumes to transaction log
Print all (deferred) actions to transaction log (file, syslog) in
init_transaction_log(), e.g. ABORTED() in "expand subvolume globs".
2019-04-18 16:28:53 +02:00
Axel Burri 25f0a76e28 btrbk: cosmetics: fix error message 2019-04-18 16:28:45 +02:00
Axel Burri 45b24d6477 documentation: btrbk.1: add "exclude" command line option 2019-04-18 15:09:15 +02:00
Axel Burri 14b5edcf68 documentation: btrbk.1: update filter statements section 2019-04-18 15:09:15 +02:00
Axel Burri 95819f03ea documentation: btrbk.1: cosmetics: same order for options in all docs 2019-04-18 15:09:15 +02:00
Axel Burri 66004aeae8 documentation: btrbk.conf.5: add "noauto" option 2019-04-18 15:09:15 +02:00
Axel Burri b6da6b0158 documentation: btrbk.conf.5: cosmetics, delete empty line 2019-04-18 15:09:15 +02:00
Axel Burri b2f434b396 btrbk: add "exclude" command line option 2019-04-18 15:09:15 +02:00
Axel Burri f0cff5ee5a btrbk: add vinfo_filter_statement framework 2019-04-18 15:09:15 +02:00
Axel Burri 6e7d649588 btrbk: add "noauto" configuration option 2019-04-18 15:09:15 +02:00
Axel Burri ae004e48fd btrbk: map empty value to "yes" in configuration 2019-04-18 15:09:15 +02:00