patch(3)



textutil::patch(3tcl)      Text and string utilities     textutil::patch(3tcl)

______________________________________________________________________________

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/De-
       tailed-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 un-
              changed.  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 out-
       put 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

tcllib                                0.1                textutil::patch(3tcl)

Man(1) output converted with man2html
list of all man pages