Title: Unable to apply patches with trailing blank line removed · Issue #59 · techtonik/python-patch · GitHub
Open Graph Title: Unable to apply patches with trailing blank line removed · Issue #59 · techtonik/python-patch
X Title: Unable to apply patches with trailing blank line removed · Issue #59 · techtonik/python-patch
Description: Given a.txt: 1 2 3 and broken.patch (note that it's missing the third line of context): --- a.txt 2019-03-28 17:02:04.832004033 -0700 +++ b.txt 2019-03-28 17:02:34.999576803 -0700 @@ -1,4 +1,4 @@ -1 +0 2 3 one can get to b.txt: 0 2 3 usi...
Open Graph Description: Given a.txt: 1 2 3 and broken.patch (note that it's missing the third line of context): --- a.txt 2019-03-28 17:02:04.832004033 -0700 +++ b.txt 2019-03-28 17:02:34.999576803 -0700 @@ -1,4 +1,4 @@ -...
X Description: Given a.txt: 1 2 3 and broken.patch (note that it's missing the third line of context): --- a.txt 2019-03-28 17:02:04.832004033 -0700 +++ b.txt 2019-03-28 17:02:34.999576803 -0700 @@ -1,4 +1,4 ...
Opengraph URL: https://github.com/techtonik/python-patch/issues/59
X: @github
Domain: patch-diff.githubusercontent.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Unable to apply patches with trailing blank line removed","articleBody":"Given `a.txt`:\r\n\r\n```\r\n1\r\n2\r\n3\r\n\r\n```\r\n\r\nand `broken.patch` (note that it's missing the third line of context):\r\n\r\n```\r\n--- a.txt\t2019-03-28 17:02:04.832004033 -0700\r\n+++ b.txt\t2019-03-28 17:02:34.999576803 -0700\r\n@@ -1,4 +1,4 @@\r\n-1\r\n+0\r\n 2\r\n 3\r\n```\r\n\r\none can get to `b.txt`:\r\n\r\n```\r\n0\r\n2\r\n3\r\n\r\n```\r\n\r\nusing `patch -p0 \u003c broken.patch` but not with python-patch:\r\n\r\n```\r\n$ ./patch.py --debug broken.patch \r\n DEBUG reading broken.patch\r\n WARNING error: patch stream is incomplete!\r\n DEBUG - 0 hunks for a.txt\r\n DEBUG total files: 1 total hunks: 0\r\n DEBUG normalize filenames\r\n DEBUG patch type = plain\r\n DEBUG source = a.txt\r\n DEBUG target = b.txt\r\nTraceback (most recent call last):\r\n File \"./patch.py\", line 1193, in \u003cmodule\u003e\r\n main()\r\n File \"./patch.py\", line 1186, in main\r\n patch.apply(options.strip, root=options.directory) or sys.exit(-1)\r\nAttributeError: 'bool' object has no attribute 'apply'\r\n```\r\n\r\nTo patch `a.txt` correctly using python-patch, one needs to provide the non-truncated patch file which contains the full three lines of context (with the last line consisting of a single trailing space):\r\n\r\n```\r\n--- a.txt\t2019-03-28 17:02:04.832004033 -0700\r\n+++ b.txt\t2019-03-28 17:02:34.999576803 -0700\r\n@@ -1,4 +1,4 @@\r\n-1\r\n+0\r\n 2\r\n 3\r\n \r\n```\r\n\r\nThis can be a problem since `git` is commonly configured to remove \"unnecessary trailing whitespace\" via the following option in `~/.gitconfig`:\r\n\r\n```\r\n[apply]\r\n whitespace = fix\r\n```","author":{"url":"https://github.com/fmarier","@type":"Person","name":"fmarier"},"datePublished":"2019-03-29T00:13:21.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":2},"url":"https://github.com/59/python-patch/issues/59"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:25b0692d-af2c-eb09-77c1-b918a2a65e8e |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | D79C:5B9E:28D178:354432:696EC657 |
| html-safe-nonce | 85fe859767417613ef3ae54a7801292f5ee3ecac37d5eccfdad0e3a93f6ccae7 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJENzlDOjVCOUU6MjhEMTc4OjM1NDQzMjo2OTZFQzY1NyIsInZpc2l0b3JfaWQiOiIyNDk2NTg5MDE5NzY4MzQyMTAzIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 42df005933096fd176dae7c1f53bb60d572d3cf162dee616f497bba3d3d41db3 |
| hovercard-subject-tag | issue:426759416 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/techtonik/python-patch/59/issue_layout |
| twitter:image | https://opengraph.githubassets.com/ac04941f510272c9414bbb683528db881f112e574aa3ad43aa1a074f2e934541/techtonik/python-patch/issues/59 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/ac04941f510272c9414bbb683528db881f112e574aa3ad43aa1a074f2e934541/techtonik/python-patch/issues/59 |
| og:image:alt | Given a.txt: 1 2 3 and broken.patch (note that it's missing the third line of context): --- a.txt 2019-03-28 17:02:04.832004033 -0700 +++ b.txt 2019-03-28 17:02:34.999576803 -0700 @@ -1,4 +1,4 @@ -... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | fmarier |
| hostname | github.com |
| expected-hostname | github.com |
| None | b278ad162d35332b6de714dfb005de04386c4d92df6475522bef910f491a35ee |
| turbo-cache-control | no-preview |
| go-import | github.com/techtonik/python-patch git https://github.com/techtonik/python-patch.git |
| octolytics-dimension-user_id | 515889 |
| octolytics-dimension-user_login | techtonik |
| octolytics-dimension-repository_id | 34159484 |
| octolytics-dimension-repository_nwo | techtonik/python-patch |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 34159484 |
| octolytics-dimension-repository_network_root_nwo | techtonik/python-patch |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 39aed5006635ab6f45e6b77d23e73b08a00272a3 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width