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: github.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:8ffc0cc2-ad23-4c50-e31a-b73cec2fef6f |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | B12E:356387:8059B2:A5DD3D:696B17FF |
| html-safe-nonce | 0edccb3d4d46914103ec6bb6fb30806c59059d29ebf7ebc52e2ece33972aeaf5 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCMTJFOjM1NjM4Nzo4MDU5QjI6QTVERDNEOjY5NkIxN0ZGIiwidmlzaXRvcl9pZCI6IjM1NTI0NDkxMTU1MzYxNTg3MSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | c4aa3edc5b7bc95c1e0e6d18e21a45fc6a925c18750c05354597a9b752811e09 |
| 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 | 5f99f7c1d70f01da5b93e5ca90303359738944d8ab470e396496262c66e60b8d |
| 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 | 82560a55c6b2054555076f46e683151ee28a19bc |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width