git: sbin/hammer: Add depth indentation option to hammer show
Tomohiro Kusumi
tkusumi at crater.dragonflybsd.org
Sun Mar 27 10:07:47 PDT 2016
commit db7212b1c7d9e61bb3cac1e24f7201dbf20245e2
Author: Tomohiro Kusumi <kusumi.tomohiro at gmail.com>
Date: Sat Mar 26 12:19:11 2016 +0900
sbin/hammer: Add depth indentation option to hammer show
Print tab(s) based on the current depth in B-Tree. This makes
hammer show output look like below instead of having everything
without indentation. Depth indentation uses tabs instead of
whitespaces because using 0x20s greatly increases the size of
hammer show output.
This option can be specifed by (-vvv are optional)
# hammer -vvvf /dev/da1:/dev/da2:/dev/da3 show none indent
With obfuscate option, it would be like
# hammer -vvvf /dev/da1:/dev/da2:/dev/da3 show none indent,obfuscate
With B-Tree search directive, it would be like
# hammer -vvvf /dev/da1:/dev/da2:/dev/da3 show 1:00000001020bc6f7:... indent
# hammer -vvvf /dev/da1:/dev/da2:/dev/da3 show 1:00000001020bc6f7:... obfuscate,indent
With filter/nofilter option, it would be like
# hammer -vvvf /dev/da1:/dev/da2:/dev/da3 show 1:00000001020bc6f7:... indent,filter
# hammer -vvvf /dev/da1:/dev/da2:/dev/da3 show 1:00000001020bc6f7:... nofilter,indent
# hammer -vvvf /dev/da1:/dev/da2:/dev/da3 show 1:00000001020bc6f7:... indent,filter,obfuscate
Note that this commit also changes hammer show's suboption format
mentioned above. Above examples are examples of the new format.
The format used to be as follows,
hammer [getopt options] show [search directives] ["filter"/"nofilter"] ["obfuscate"]
but now it's
hammer [getopt options] show [search directives] [comma separated suboptions]
The format mentioned in 337ec5f is obsolete. This was necessary
to keep simplicity of suboption format after search directives.
The comma separated suboptions (filter,nofilter,obfuscate,indent)
are not mentioned in hammer(8) manpage which means this change
doesn't impact anyone (aside from real users almost never use
this command in the first place). Having these suboptions just
makes easier to debug or examine the structure in certain cases.
--
NODE aaa parent=0 depth=0
ELM 0
ELM 1
...
ELM N
NODE bbb parent=aaa depth=1
ELM 0
ELM 1
...
ELM N
NODE ccc parent=aaa depth=1
ELM 0
ELM 1
...
ELM N
NODE ddd parent=ccc depth=2
ELM 0
ELM 1
...
ELM N
...
...
Summary of changes:
sbin/hammer/cmd_show.c | 96 +++++++++++++++++++++++++++++++-------------------
sbin/hammer/hammer.c | 26 +++++++++-----
sbin/hammer/hammer.h | 2 +-
3 files changed, 78 insertions(+), 46 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/db7212b1c7d9e61bb3cac1e24f7201dbf20245e2
--
DragonFly BSD source repository
More information about the Commits
mailing list