git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 00/86] replace prefixcmp() with has_prefix()

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 12, 2013, 16:53 UTC
Message-ID
<xmqqy54timsm.fsf@gitster.dls.corp.google.com>
In-Reply-To
<20131112083240.GA1684@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 5 quoted lines
> I am ambivalent on the code churn, but if we do apply it, we should
> probably leave off the final patch (dropping prefixcmp) for a cycle to
> let topics in flight catch up to the change. Just diffing "master" and
> "next", I see some new uses of prefixcmp which will need adjusted, along
> with spots where the patches themselves will cause textual conflicts.

Yes, I did that check too (but between 'maint' and 'pu'). I think it is a good idea to stop using whatever_cmp() name for things that are not *cmp() functions in the longer term, but smooth migration is a bit tricky (but not as tricky as end-user visible transitions).

Even though we already added has_suffix() for tail matches, it is not too late to rethink, as it is not in 'master' yet.

One thing I noticed is that it is probably misnamed, or at least in a way that invites confusion. Can people tell which one of these is correct without looking at existing callsites?

	has_suffix(filename, "txt");
        has_suffix(filename, ".txt");

The semantics of the function we have is the latter and is better called endswith(), I suspect. And the corresponding function to check for head matches should probably be called beginswith().

Previous: Jeff KingNext: Jeff King
Message 92 of 100 in “replace prefixcmp() with has_prefix()”
  1. 00/86 replace prefixcmp() with has_prefix()Christian Couder, Nov 9, 2013
  2. 01/86 strbuf: add has_prefix() to be used instead of prefixcmp()Christian Couder, Nov 9, 2013
  3. 02/86 diff: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  4. 03/86 fast-import: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  5. 04/86 remote*: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  6. 05/86 daemon: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  7. 06/86 pretty: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  8. 07/86 revision: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  9. 08/86 transport*: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  10. 09/86 config: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  11. 10/86 sha1_name: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  12. 11/86 wt-status: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  13. 12/86 upload-pack: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  14. 13/86 test-line-buffer: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  15. 14/86 parse-options: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  16. 15/86 fetch-pack: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  17. 16/86 git: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  18. 17/86 tag: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  19. 18/86 sequencer: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  20. 19/86 commit: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  21. 20/86 http: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  22. 21/86 imap-send: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  23. 22/86 help: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  24. 23/86 log-tree: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  25. 24/86 merge-recursive: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  26. 25/86 notes: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  27. 26/86 refs: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  28. 27/86 setup: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  29. 28/86 bisect: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  30. 29/86 branch: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  31. 30/86 http-push: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  32. 31/86 send-pack: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  33. 32/86 http-backend: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  34. 33/86 notes-utils: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  35. 34/86 pkt-line: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  36. 35/86 alias: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  37. 36/86 attr: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  38. 37/86 connect: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  39. 38/86 pager: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  40. 39/86 convert: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  41. 40/86 environment: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  42. 41/86 shell: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  43. 42/86 pathspec: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  44. 43/86 submodule: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  45. 44/86 test-string-list: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  46. 45/86 builtin/apply: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  47. 46/86 builtin/archive: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  48. 47/86 builtin/branch: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  49. 48/86 builtin/checkout: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  50. 49/86 builtin/clean: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  51. 50/86 builtin/clone: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  52. 51/86 builtin/column: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  53. 52/86 builtin/commit: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  54. 53/86 builtin/describe: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  55. 54/86 builtin/fast-export: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  56. 55/86 builtin/fetch-pack: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  57. 56/86 builtin/fetch: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  58. 57/86 builtin/fmt-merge-msg: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  59. 58/86 builtin/for-each-ref: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  60. 59/86 builtin/fsck: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  61. 60/86 builtin/help: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  62. 61/86 builtin/index-pack: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  63. 62/86 builtin/init-db: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  64. 63/86 builtin/log: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  65. 64/86 builtin/ls-remote: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  66. 65/86 builtin/mailinfo: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  67. 66/86 builtin/merge-recursive: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  68. 67/86 builtin/merge: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  69. 68/86 builtin/name-rev: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  70. 69/86 builtin/notes: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  71. 70/86 builtin/pack-objects: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  72. 71/86 builtin/prune: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  73. 72/86 builtin/receive-pack: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  74. 73/86 builtin/reflog: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  75. 74/86 builtin/remote: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  76. 75/86 builtin/rev-parse: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  77. 76/86 builtin/send-pack: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  78. 77/86 builtin/shortlog: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  79. 78/86 builtin/show-branch: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  80. 79/86 builtin/show-ref: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  81. 80/86 builtin/symbolic-ref: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  82. 81/86 builtin/tag: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  83. 82/86 builtin/tar-tree: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  84. 83/86 builtin/unpack-objects: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  85. 84/86 builtin/update-ref: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  86. 85/86 builtin/upload-archive: replace prefixcmd() with has_prefix()Christian Couder, Nov 9, 2013
  87. 86/86 strbuf: remove prefixcmp() as it has been replaced with has_prefix()Christian Couder, Nov 9, 2013
  88. Thomas RastNov 9, 2013
  89. Christian CouderNov 12, 2013
  90. Andreas EricssonNov 11, 2013
  91. Jeff KingNov 12, 2013
  92. Junio C HamanoNov 12, 2013
  93. Jeff KingNov 12, 2013
  94. Christian CouderNov 12, 2013
  95. Junio C HamanoNov 12, 2013
  96. Christian CouderNov 13, 2013
  97. Jeff KingNov 13, 2013
  98. Christian CouderNov 17, 2013
  99. Christian CouderNov 18, 2013
  100. Junio C HamanoNov 19, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.