{"id":10,"date":"2007-01-08T23:03:37","date_gmt":"2007-01-08T23:03:37","guid":{"rendered":"http:\/\/cyberelk.net\/tim\/?page_id=10"},"modified":"2026-02-27T17:57:00","modified_gmt":"2026-02-27T16:57:00","slug":"patchutils","status":"publish","type":"page","link":"https:\/\/cyberelk.net\/tim\/software\/patchutils\/","title":{"rendered":"patchutils"},"content":{"rendered":"<div style=\"float: right; padding: 1em;\"><\/div>\n<h2>What is it?<\/h2>\n<p>Patchutils is a small collection of programs that operate on patch files.<\/p>\n<p>Interdiff generates an incremental patch from two patches against a common source. For example, if you have applied a pre-patch to a source tree, and wish to apply another pre-patch (which is against the same original source tree), you can use interdiff to generate the patch that you need to apply. You can also use this to review changes between two pre-patches.<\/p>\n<p>Combinediff generates a single patch from two incremental patches, allowing you to merge patches together. The resulting patch file only alters each file once.<\/p>\n<p>Filterdiff will select the portions of a patch file that apply to files matching (or, alternatively, not matching) a shell wildcard.<\/p>\n<p>Fixcvsdiff is for correcting the output of &#8216;cvs diff&#8217;.<\/p>\n<p>Rediff corrects hand-edited patches, by comparing the original patch with the modified one and adjusting the offsets and counts.<\/p>\n<p>Lsdiff displays a short listing of affected files in a patch file, along with (optionally) the line numbers of the start of each patch.<\/p>\n<p>Splitdiff separates out patches from a patch file so that each new patch file only alters any given file once. In this way, a file containing several incremental patches can be split into individual incremental patches.<\/p>\n<p>Grepdiff displays a list of the files modified by a patch where the patch contains a given regular expression.<\/p>\n<p>Recountdiff fixes up counts and offsets in a unified diff.<\/p>\n<p>Unwrapdiff fixes word-wrapped unified diffs.<\/p>\n<h2>Where is it?<\/h2>\n<p>Signed released tarballs are here: <a href=\"https:\/\/cyberelk.net\/tim\/data\/patchutils\/\">https:\/\/cyberelk.net\/tim\/data\/patchutils\/stable\/<\/a>.<\/p>\n<p>The git repository is available to view at <a href=\"https:\/\/github.com\/twaugh\/patchutils\">GitHub<\/a>.<\/p>\n<h3>Bug Reporting<\/h3>\n<p>Report bugs using the <a href=\"https:\/\/github.com\/twaugh\/patchutils\/issues\">GitHub issues page<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What is it? Patchutils is a small collection of programs that operate on patch files. Interdiff generates an incremental patch from two patches against a common source. For example, if you have applied a pre-patch to a source tree, and wish to apply another pre-patch (which is against the same original source tree), you can [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":8,"menu_order":5,"comment_status":"closed","ping_status":"closed","template":"","meta":{"jetpack_post_was_ever_published":false,"footnotes":""},"class_list":["post-10","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>patchutils - PRINT HEAD<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cyberelk.net\/tim\/software\/patchutils\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"patchutils - PRINT HEAD\" \/>\n<meta property=\"og:description\" content=\"What is it? Patchutils is a small collection of programs that operate on patch files. Interdiff generates an incremental patch from two patches against a common source. For example, if you have applied a pre-patch to a source tree, and wish to apply another pre-patch (which is against the same original source tree), you can [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cyberelk.net\/tim\/software\/patchutils\/\" \/>\n<meta property=\"og:site_name\" content=\"PRINT HEAD\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-27T16:57:00+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/software\\\/patchutils\\\/\",\"url\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/software\\\/patchutils\\\/\",\"name\":\"patchutils - PRINT HEAD\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/#website\"},\"datePublished\":\"2007-01-08T23:03:37+00:00\",\"dateModified\":\"2026-02-27T16:57:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/software\\\/patchutils\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/cyberelk.net\\\/tim\\\/software\\\/patchutils\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/software\\\/patchutils\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"My Projects\",\"item\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/software\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"patchutils\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/#website\",\"url\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/\",\"name\":\"PRINT HEAD\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/#\\\/schema\\\/person\\\/23b749f30a67f1b1c6af17024fc94bf6\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/#\\\/schema\\\/person\\\/23b749f30a67f1b1c6af17024fc94bf6\",\"name\":\"Tim Waugh\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/printhead.png\",\"url\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/printhead.png\",\"contentUrl\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/printhead.png\",\"width\":731,\"height\":140,\"caption\":\"Tim Waugh\"},\"logo\":{\"@id\":\"https:\\\/\\\/cyberelk.net\\\/tim\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/printhead.png\"},\"sameAs\":[\"http:\\\/\\\/cyberelk.net\\\/tim\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"patchutils - PRINT HEAD","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cyberelk.net\/tim\/software\/patchutils\/","og_locale":"en_GB","og_type":"article","og_title":"patchutils - PRINT HEAD","og_description":"What is it? Patchutils is a small collection of programs that operate on patch files. Interdiff generates an incremental patch from two patches against a common source. For example, if you have applied a pre-patch to a source tree, and wish to apply another pre-patch (which is against the same original source tree), you can [&hellip;]","og_url":"https:\/\/cyberelk.net\/tim\/software\/patchutils\/","og_site_name":"PRINT HEAD","article_modified_time":"2026-02-27T16:57:00+00:00","twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/cyberelk.net\/tim\/software\/patchutils\/","url":"https:\/\/cyberelk.net\/tim\/software\/patchutils\/","name":"patchutils - PRINT HEAD","isPartOf":{"@id":"https:\/\/cyberelk.net\/tim\/#website"},"datePublished":"2007-01-08T23:03:37+00:00","dateModified":"2026-02-27T16:57:00+00:00","breadcrumb":{"@id":"https:\/\/cyberelk.net\/tim\/software\/patchutils\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cyberelk.net\/tim\/software\/patchutils\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/cyberelk.net\/tim\/software\/patchutils\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cyberelk.net\/tim\/"},{"@type":"ListItem","position":2,"name":"My Projects","item":"https:\/\/cyberelk.net\/tim\/software\/"},{"@type":"ListItem","position":3,"name":"patchutils"}]},{"@type":"WebSite","@id":"https:\/\/cyberelk.net\/tim\/#website","url":"https:\/\/cyberelk.net\/tim\/","name":"PRINT HEAD","description":"","publisher":{"@id":"https:\/\/cyberelk.net\/tim\/#\/schema\/person\/23b749f30a67f1b1c6af17024fc94bf6"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cyberelk.net\/tim\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/cyberelk.net\/tim\/#\/schema\/person\/23b749f30a67f1b1c6af17024fc94bf6","name":"Tim Waugh","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2023\/01\/printhead.png","url":"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2023\/01\/printhead.png","contentUrl":"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2023\/01\/printhead.png","width":731,"height":140,"caption":"Tim Waugh"},"logo":{"@id":"https:\/\/cyberelk.net\/tim\/wp-content\/uploads\/2023\/01\/printhead.png"},"sameAs":["http:\/\/cyberelk.net\/tim"]}]}},"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/PnnS2-a","_links":{"self":[{"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/pages\/10","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/comments?post=10"}],"version-history":[{"count":6,"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/pages\/10\/revisions"}],"predecessor-version":[{"id":1320,"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/pages\/10\/revisions\/1320"}],"up":[{"embeddable":true,"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/pages\/8"}],"wp:attachment":[{"href":"https:\/\/cyberelk.net\/tim\/wp-json\/wp\/v2\/media?parent=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}