A copy-patch records the copy operation of the file system. The patch may be denoted as: **copy** *from to* This is equivalent to: **addfile** *to*; **hunk** ''to 1 Its pro over the equivalent form is that it documents the connection of from and to. It commutes with all patches but - hunk from ... this satisfies: - hunk from X ; copy from to = copy from to; hunk to X; hunk from X - copy from to ; hunk from X = hunk from X; copy from to; hunk to X\_inverse - addfile to - addfile to ; copy from to = error - copy from to ; addfile = error - hunk to - hunk to X ; copy from to = error - copy from to ; hunk to X = hunk from X ; copy from to; hunk from X\_inverse - remove from - remove from ; copy from to = error - copy from to ; remove from = rename from to - remove to - remove to; copy from to = hunk to - copy from to; remove to =