oracular (3) patch.3tcl.gz

Provided by: tcllib_1.21+dfsg-1_all bug

NAME

       textutil::patch - Application of uni-diff patches to directory trees

SYNOPSIS

       package require Tcl  8.2

       package require textutil::patch  ?0.1?

       ::textutil::patch::apply basedirectory striplevel patch reportcmd

       {*}reportcmd apply filename

       {*}reportcmd fail filename hunk expected seen

       {*}reportcmd fail-already filename hunk

________________________________________________________________________________________________________________

DESCRIPTION

       This    package    provides    a   single   command   which   applies   a   patch   in   unified   format
       [https://www.gnu.org/software/diffutils/manual/html_node/Detailed-Unified.html] to a directory tree.

       ::textutil::patch::apply basedirectory striplevel patch reportcmd
              Applies the patch (text of the path, not file)  to  the  files  in  the  basedirectory  using  the
              specified striplevel.  The result of the command is the empty string.

              The striplevel argument is equivalent to option -p of the patch command.

              Errors  are  thrown  when  the  patch  does  not  parse,  and  nothing  is  done  to  the files in
              basedirectory.

              All activities during the application of the patch, including the inability to apply  a  hunk  are
              reported  through  the  command  prefix reportcmd instead. Files with problems are left unchanged.
              Note however that this does not prevent changes to files with no problems, before  and  after  the
              problematic file(s).

              The command prefix is called in 3 possible forms:

              {*}reportcmd apply filename
                     The caller begins operation on file fname, applying all hunks collected for said file.

              {*}reportcmd fail filename hunk expected seen
                     Application  of hunk number hunk of file filename has failed.  The command expected to find
                     the text expected, and saw seen instead.

              {*}reportcmd fail-already filename hunk
                     Application of hunk number hunk of file filename has failed.   The  command  believes  that
                     this hunk has already been applied to the file.

BUGS, IDEAS, FEEDBACK

       This  document,  and  the package it describes, will undoubtedly contain bugs and other problems.  Please
       report such in the category  textutil  of  the  Tcllib  Trackers  [http://core.tcl.tk/tcllib/reportlist].
       Please also report any ideas for enhancements you may have for either package and/or documentation.

       When proposing code changes, please provide unified diffs, i.e the output of diff -u.

       Note  further  that  attachments  are strongly preferred over inlined patches. Attachments can be made by
       going to the Edit form of the ticket immediately after its creation, and then using the left-most  button
       in the secondary navigation bar.

KEYWORDS

       diff -ruN, diff, unified format, fossil, git, patch, unified format diff

CATEGORY

       Text processing