New -find actions update_merge, rm_merge, clear_merge. -cp_clone now merges.

This commit is contained in:
2011-02-12 17:14:23 +00:00
parent 4642148e6f
commit 26a6a24093
18 changed files with 435 additions and 116 deletions

View File

@ -9,7 +9,7 @@
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH XORRISO 1 "Feb 07, 2011"
.TH XORRISO 1 "Feb 12, 2011"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -1065,7 +1065,8 @@ already exists in the ISO tree.
.TP
\fB\-cp_clone\fR iso_rr_path_original [***] iso_rr_path_dest
Create copies of one or more ISO file objects as with command -clone.
Do not not overwrite existing ISO file objects.
Eventually merge directories with existing ones, but do not overwrite
existing ISO file objects.
.br
The rules for generating the copy addresses are the same as with
command -cpr (see above) resp. shell command cp -r. Other than with -cpr,
@ -1649,6 +1650,16 @@ performs command -update with the found file address as
iso_rr_path. The corresponding file address is determined like with above
action "compare".
.br
\fBupdate_merge\fR
is like update but does not delete the found file if it is missing on disk.
It may be run several times and records with all visited files whether their
counterpart on disk has already been seen by one of the update_merge runs.
Finally, a -find run with action "rm_merge" may remove all files that
saw no counterpart on disk.
.br
Up to the next "rm_merge" or "clear_merge" all newly inserted files will
get marked as having a disk counterpart.
.br
\fBrm\fR
removes the found iso_rr_path from the image if it is not a directory
with files in it. I.e. this "rm" includes "rmdir".
@ -1657,6 +1668,14 @@ with files in it. I.e. this "rm" includes "rmdir".
removes the found iso_rr_path from the image, including whole
directory trees.
.br
\fBrm_merge\fR
removes the found iso_rr_path if it was visited by one or more previous actions
"update_merge" and saw no counterpart on disk in any of them. The marking from
the update actions is removed in any case.
.br
\fBclear_merge\fR
removes an eventual marking from action "update_merge".
.br
\fBreport_damage\fR
classifies files whether they hit a data block that is
marked as damaged. The result is printed together with the eventual address
@ -3118,7 +3137,7 @@ not exist in the ISO image. The report format is the same as with command
.br
\fBadd_missing\fR iso_rr_path_start
adds the counterpart if it does not yet
exist in the ISO image.
exist in the ISO image and marks it for "rm_merge" as non-removable.
.br
E.g.: -findx /home/thomas -exec add_missing /thomas_on_cd --
.br
@ -3550,9 +3569,10 @@ allowed to violate the standard by -compliance option allow_dir_id_ext.
This may be avoided by option -disallow_dir_id_ext.
.br
Option -root is supported. Option -old-root is implemented by xorriso
commands -mkdir, -cp_clone, and -update_r. It sets command -disk_dev_ino
to "ino_only" and -md5 to "on", by default. -disk_dev_ino can be set
to "off" by --old-root-no-ino
commands -mkdir, -cp_clone, -find update_merge, and -find rm_merge.
-root and -old-root set command -disk_dev_ino to "ino_only" and -md5 to "on",
by default.
-disk_dev_ino can be set to "off" by --old-root-no-ino
resp. to "on" by --old-root-devno .
-md5 can be set to "off" by --old-root-no-md5 .
.br
@ -4275,7 +4295,7 @@ $ xorriso \\
.br
-not_leaf '*.o' -not_leaf '*.swp' \\
.br
-update_r /home/thomas/open_source_projects /open_source_projects \\
-update_r /home/thomas/projects /projects \\
.br
-update_r /home/thomas/personal_mail /personal_mail \\
.br
@ -4318,20 +4338,33 @@ older sessions in the table-of-content. E.g. as superuser:
.br
# osirrox -mount /dev/sr0 "volid" '*2008_12_05*' /mnt
.br
.sp 1
This example produces a result similar to -root / -old-root / with mkisofs.
For getting the session trees accumulated in the new sessions, let all -update
commands use a common parent directory and clone it after updating is done:
.br
-update_r /home/thomas/projects /current/projects \\
.br
-update_r /home/thomas/personal_mail /current/personal_mail \\
.br
-clone /current /"$(date '+%Y_%m_%d_%H%M%S')" \\
.br
The cloned tree will have a name like /2011_02_12_155700.
.br
.sp 1
Sessions on multi-session media are separated by several MB of unused blocks.
So with small sessions the payload capacity can become substantially lower
than the overall media capacity. If the remaining space on media does not
suffice for the next gap, the drive is supposed to close the media
automatically.
.br
.sp 1
\fBBetter do not use your youngest backup for -update_r\fR.
Have at least two media which you use alternatingly. So only older backups
get endangered by the new write operation, while the newest backup is
stored safely on a different media.
Always have a blank media ready to perform a full backup in case the update
attempt fails due to insufficient remaining capacity.
.br
This example produces a result similar to -root / -old-root / with mkisofs.
.SS
.B Restore directory trees from a particular ISO session to disk
This is an alternative to mounting the media and using normal file operations.