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

Re: Fix git-svn for SVN 1.7

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 31, 2012, 23:05 UTC
Message-ID
<7vtxwnh6qq.fsf@alter.siamese.dyndns.org>
In-Reply-To
<20120731200108.GA14462@dcvr.yhbt.net>
Eric Wong <normalperson@yhbt.net> writes:
Show 13 quoted lines
> Michael G Schwern <schwern@pobox.com> wrote:
>> It just doesn't matter.
>> 
>> Why are we arguing over which solution will be 4% better two years from now,
>> or if my commits are formatted perfectly, when tremendous amounts of basic
>> work to be done improving git-svn?  The code is undocumented, lacking unit
>> tests, difficult to understand and riddled with bugs.
>
> Yes it does matter.
>
> git-svn has the problems it has because it traditionally had lower
> review standards than the rest of git.  So yes, we're being more careful
> nowadays about the long-term ramifications of changes.

Thanks. I know it takes guts to publicly admit that over time your own creation has become less ideal than you wish it to be, but it needed to be said.

Michael, please realize that the only reason people comment on the patch series is because they care about what the series brings to us. In other words, your effort is appreciated. For a change that we want to have in our codebase, the functionality of the code immediately after the change is applied of course is important, but the maintainability of the result also matters.

We want to make sure that anybody who wants to understand and improve the system can read the code without distraction from inconsistent coding styles used in different sections of code. We want "git log" (or "git log git-svn.perl perl/") output to tell a coherent story about how the code evolved and why these changes are made in a consistent voice to the readers. We want people to be able to "git log | grep Signed-off-by:" to count the contributors.

A contributor has enough room to be creative in how his or her code is designed. Updating the code to follow the "convert as early as possible", and (during subsequent discussion with Eric) suggesting use of class instances instead of bare strings to make it harder to mistakenly use bare unconverted strings are two examples you already showed creativity in areas that matter.

There is no need to be creative in ChangeLog and coding styles; it only hurts maintainability.

Regarding the operator overloading of "eq" for comparing the converted strings, I still think it will hurt maintainablity (we want to make sure that it is harder, not easier, to make wrong changes to the code in the future), but I may be mistaken and you may have better ideas. If you can use overloading in such a way that it won't harm maintainability and yet makes the resulting code easier to read, I don't have any objection.

What I won't accept is "maintainability does not matter".  It does.
Thanks.
Previous: Eric WongNext: Michael G Schwern
Message 34 of 50 in “Fix git-svn for SVN 1.7”
  1. Michael G. SchwernJul 28, 2012
  2. 1/8 SVN 1.7 will truncate "not-a%40{0}" to just "not-a".Michael G. Schwern, Jul 28, 2012
  3. Jonathan NiederJul 28, 2012
  4. Michael G SchwernJul 28, 2012
  5. svn test: escape peg revision separator using empty peg revJonathan Nieder, Oct 9, 2012
  6. Michael J GruberOct 9, 2012
  7. Jonathan NiederOct 9, 2012
  8. Eric WongOct 10, 2012
  9. Jonathan NiederOct 10, 2012
  10. Eric WongOct 10, 2012
  11. Jonathan NiederOct 10, 2012
  12. Eric WongOct 10, 2012
  13. Junio C HamanoOct 10, 2012
  14. 2/8 Fix typo in testMichael G. Schwern, Jul 28, 2012
  15. 3/8 Improve our URL canonicalization to be more like SVN 1.7's.Michael G. Schwern, Jul 28, 2012
  16. 4/8 Replace hand rolled URL escapes with canonicalizationMichael G. Schwern, Jul 28, 2012
  17. 5/8 Canonicalize earlier in a couple spots.Michael G. Schwern, Jul 28, 2012
  18. 6/8 Add function to append a path to a URL.Michael G. Schwern, Jul 28, 2012
  19. 7/8 Turn on canonicalization on newly minted URLs.Michael G. Schwern, Jul 28, 2012
  20. test: work around SVN 1.7 mishandling of svn:special changesJonathan Nieder, Oct 6, 2012
  21. git svn: work around SVN 1.7 mishandling of svn:special changesJonathan Nieder, Oct 9, 2012
  22. Eric WongOct 10, 2012
  23. git svn: work around SVN 1.7 mishandling of svn:special changesJonathan Nieder, Oct 10, 2012
  24. 8/8 Remove some ad hoc canonicalizations.Michael G. Schwern, Jul 28, 2012
  25. Eric WongJul 30, 2012
  26. Michael G SchwernJul 30, 2012
  27. Eric WongJul 30, 2012
  28. Michael G SchwernJul 31, 2012
  29. Eric WongJul 31, 2012
  30. Michael G SchwernJul 31, 2012
  31. Junio C HamanoJul 31, 2012
  32. Michael G SchwernJul 31, 2012
  33. Eric WongJul 31, 2012
  34. Junio C HamanoJul 31, 2012
  35. Michael G SchwernJul 31, 2012
  36. Michael G SchwernJul 31, 2012
  37. Eric WongAug 1, 2012
  38. Eric WongAug 2, 2012
  39. Jonathan NiederAug 2, 2012
  40. Junio C HamanoAug 2, 2012
  41. Robin H. JohnsonAug 2, 2012
  42. Eric WongAug 2, 2012
  43. Junio C HamanoAug 21, 2012
  44. Eric WongAug 21, 2012
  45. Junio C HamanoAug 21, 2012
  46. Eric WongAug 2, 2012
  47. Junio C HamanoAug 2, 2012
  48. Eric WongAug 2, 2012
  49. Eric WongAug 2, 2012
  50. Junio C HamanoAug 2, 2012

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.