diffutils: Changing Structure

 
 18.1.2 Handling Changes to the Directory Structure
 --------------------------------------------------
 
 'diff' and 'patch' do not handle some changes to directory structure.
 For example, suppose one directory tree contains a directory named 'D'
 with some subsidiary files, and another contains a file with the same
 name 'D'.  'diff -r' does not output enough information for 'patch' to
 transform the directory subtree into the file.
 
    There should be a way to specify that a file has been removed without
 having to include its entire contents in the patch file.  There should
 also be a way to tell 'patch' that a file was renamed, even if there is
 no way for 'diff' to generate such information.  There should be a way
 to tell 'patch' that a file's timestamp has changed, even if its
 contents have not changed.
 
    These problems can be fixed by extending the 'diff' output format to
 represent changes in directory structure, and extending 'patch' to
 understand these extensions.