← Back to context

Comment by yjftsjthsd-h

18 hours ago

> This wouldn't be an issue if patches were XML or JSON with a well defined schema, but everything must be a boutique undocumented format in the world of Unix tools.

Patch files are readable by humans. Replacing them with XML or JSON would fix this problem, but at the expense of removing a core feature.

If, by "readable by humans", you mean "it would reliably fool humans as well", I'd say it's an ambiguity bug regardless of whether it's "a core feature" or not. A patch format, human-readable or not, should clearly indicate which part is the commit message and which part is an actual diff; it's not the case here.

  • Alright, allow me to disambiguate in your preferred format.

      <?xml version="1.0" encoding="UTF-8"?> <claims> <claims_I_did_not_make description='Claims that I did not make or defend.'> <claim>Patch is perfect.</claim> <claim>Ambiguity is good.</claim> <claim>There are no better formats for conveying patches.</claim> </claims_I_did_not_make> <claims_I_did_make description='What I actually said.'> <claim>Patch files are readable by humans.</claim> <claim>Being readble by humans is useful.</claim> <claim>XML is painful for humans to read and write.</claim> <claim>JSON is painful for humans to read and write.</claim> <claim caveat='Actually this would require all parties to handle JSON or XML correctly which on further reflection I am not sure about. Still, it is a claim I initially made.'>JSON or XML would actually fix this problem in the format.</claim> </claims_I_did_make> <claims_I_did_not_make_but_am_open_to description='Things that were never specified but that I do not actually disagree with.'> <claim>The patch format could be improved.</claim> <claim>Formats should be unambiguous.</claim> <claim>Separating sections is good.</claim> </claims_I_did_not_make_but_am_open_to> </claims>

    • that's not the preferred format for writing XML, this is:

          <?xml version="1.0" encoding="UTF-8"?>
          <claims>
            <claims_I_did_not_make description='Claims that I did not make or defend.'>
              <claim>Patch is perfect.</claim>
              <claim>Ambiguity is good.</claim>
              <claim>There are no better formats for conveying patches.</claim>
            </claims_I_did_not_make>
            <claims_I_did_make description='What I actually said.'>
              <claim>Patch files are readable by humans.</claim>
              <claim>Being readble by humans is useful.</claim>
              <claim>XML is painful for humans to read and write.</claim>
              <claim>JSON is painful for humans to read and write.</claim>
              <claim caveat='Actually this would require all parties to handle JSON or XML correctly which on further reflection I am not sure about. Still, it is a claim I initially made.'>JSON or XML would actually fix this problem in the format.</claim>
            </claims_I_did_make>
            <claims_I_did_not_make_but_am_open_to description='Things that were never specified but that I do not actually disagree with.'>
              <claim>The patch format could be improved.</claim>
              <claim>Formats should be unambiguous.</claim>
              <claim>Separating sections is good.</claim>
            </claims_I_did_not_make_but_am_open_to>
          </claims>

      2 replies →

    • That's really not that bad, especially with indentation and color coding. You're kind of cheating by putting it into HN, which is terrible for code.

      > XML is painful for humans to read and write.

      Speaking of claims no-one made; no-one's talking about writing patch files by hand.

      2 replies →