summary refs log tree commit diff
path: root/doc/coding-conventions.xml
diff options
context:
space:
mode:
authorChris Martin <ch.martin@gmail.com>2017-11-17 17:11:40 -0500
committerChris Martin <ch.martin@gmail.com>2017-11-17 17:46:07 -0500
commitb43c5e016096abd9f5729e3206e183727b961e94 (patch)
tree7cdecd90fd74dba4fc77e3b7f7ae9417ddbf540b /doc/coding-conventions.xml
parentb7734b61a0a4076ac9f940217272acf7e75c851f (diff)
downloadnixlib-b43c5e016096abd9f5729e3206e183727b961e94.tar
nixlib-b43c5e016096abd9f5729e3206e183727b961e94.tar.gz
nixlib-b43c5e016096abd9f5729e3206e183727b961e94.tar.bz2
nixlib-b43c5e016096abd9f5729e3206e183727b961e94.tar.lz
nixlib-b43c5e016096abd9f5729e3206e183727b961e94.tar.xz
nixlib-b43c5e016096abd9f5729e3206e183727b961e94.tar.zst
nixlib-b43c5e016096abd9f5729e3206e183727b961e94.zip
nixpkgs manual: how to make a patch file with git
This addresses #31684.
Diffstat (limited to 'doc/coding-conventions.xml')
-rw-r--r--doc/coding-conventions.xml27
1 files changed, 25 insertions, 2 deletions
diff --git a/doc/coding-conventions.xml b/doc/coding-conventions.xml
index 0776e70f14e1..765fc56c3bb3 100644
--- a/doc/coding-conventions.xml
+++ b/doc/coding-conventions.xml
@@ -661,8 +661,6 @@ src = fetchFromGitHub {
 </section>
 
 <section xml:id="sec-patches"><title>Patches</title>
-  <para>Only patches that are unique to <literal>nixpkgs</literal> should be
-    included in <literal>nixpkgs</literal> source.</para>
   <para>Patches available online should be retrieved using
     <literal>fetchpatch</literal>.</para>
   <para>
@@ -676,5 +674,30 @@ patches = [
 ];
 </programlisting>
   </para>
+  <para>Otherwise, you can add a <literal>.patch</literal> file to the
+  <literal>nixpkgs</literal> repository. In the interest of keeping our
+  maintenance burden to a minimum, only patches that are unique
+  to <literal>nixpkgs</literal> should be added in this way.</para>
+<para><programlisting>
+patches = [ ./0001-changes.patch ];
+</programlisting></para>
+  <para>If you do need to do create this sort of patch file,
+  one way to do so is with git:
+  <orderedlist>
+    <listitem><para>Move to the root directory of the source code
+    you're patching.<screen>
+$ cd the/program/source</screen></para></listitem>
+    <listitem><para>If a git repository is not already present,
+    create one and stage all of the source files.<screen>
+$ git init
+$ git add .</screen></para></listitem>
+    <listitem><para>Edit some files to make whatever changes need
+    to be included in the patch.</para></listitem>
+    <listitem><para>Use git to create a diff, and pipe the output
+    to a patch file:<screen>
+$ git diff > nixpkgs/pkgs/the/package/0001-changes.patch</screen>
+    </para></listitem>
+  </orderedlist></para>
 </section>
+
 </chapter>