patch – simple patch creation and tracking system
These scripts are a simple patch submission and tracking system
used to propose additions or changes to Plan 9.
There is no guarantee that any patch will be accepted, nor
that it will be accepted verbatim.
Each patch has a
(lowercase letters, numbers, dash, dot, and underscore only)
and is stored in
creates a new patch consisting of the changes to
the listed files from the distribution, reading
a description of the patch from standard input:
please provide an explanation of what the change is supposed to do,
some context, and a rationale for the change.
Test data or pointers to same to verify that the fix works are also welcome.
When sending a patch, follow these guidelines:
Before preparing the patch, run
and base your patch on current distribution source code.
If this is a bug fix, explain the bug clearly.
Don’t assume the bug is obvious from the fix.
If this is a new feature, explain it clearly.
Don’t assume it is obvious from the change.
Make the new code look as much like the old code as possible:
don’t make gratuitous changes, and do follow the style of the old code.
for the canonical Plan 9 coding style.
If your patch changes externally-visible behaviour,
update the manual page.
address, if not
will be sent notification messages when the patch is applied, rejected,
or commented on.
If rejected, the e-mail will contain a note explaining why and
probably listing suggested changes and encouraging you to resubmit.
displays information about the named patches,
or all currently pending patches if none are specified.
shows a patch as diffs between the original
source files and the patched source files.
applies the patch to the current source tree.
It is intended to be run by the Plan 9 developers with
as their root file system.
If the source has changed since the patch was
will report the conflict and not change any files.
Before changing any files,
makes backup copies of the current source tree’s
files. The backups are stored in the patch directory.
will copy the backups saved by
back into the source tree.
It will not restore a backup if the file
being replaced is not byte-identical to the one
Propose a change to
which you have modified locally:
% patch/create pwd-errors email@example.com /sys/src/cmd/pwd.c
Fix pwd to print errors to fd 2 rather than 1.
Then the developers at Bell Labs run
to inspect the change (possibly viewing
to see the larger context).
To make the change, they run
Otherwise they run
% patch/note pwd-errors
Pwd should definitely print errors to fd 1 because ...
to add a note to the