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

Re: [PATCH] cvsserver: Make always-binary mode a config file option

From
APAndy Parkins <andyparkins@gmail.com>
Date
Mar 1, 2007, 08:40 UTC
Message-ID
<200703010840.54377.andyparkins@gmail.com>
In-Reply-To
<46a038f90702281540o520cc214xa929a3e3c4e70883@mail.gmail.com>
On Wednesday 2007 February 28 23:40, Martin Langhoff wrote:
> I guess what I mean is that the common case on windows is going to be
> for users who want their binary files un-corrupted, and their text
> files newline-converted.

Given that windows editors/tools generally cope quite well with UNIX line endings, the common case could well be that no one cares that the new line conversion isn't happening (it's certainly the case for me).

> In fact, I think we should have it set to default to binary -- which

Me too. However, I didn't want to change existing behaviour. That die has been cast unfortunately.

> does the best job of preserving data. And override that based on file
> extension (configurable) or  check the "head" of the file cheaply for
> binary-ness before we update the file on the client side.

You're right in theory, but I really don't like the idea of auto-detection; things like that /always/ go wrong and when they do there isn't a way to undo what it's done. Douglas Adams had it right when he said:

"The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair."

> I agree with the idea of doing something smart with -kb flags, but
> this is not a good move. For the common case among Windows TortoiseCVS
> users, the switch proposed introduces the ability to switch between
> one broken mode to another broken mode.

I don't understand. What is broken about it? As far as I can tell the -kb flag doesn't do anything smart, it /disables/ the smartness and tells the client that the file is binary. As you say - both modes are broken, so supplying a switch isn't crazy because one broken mode might suit better than another. I agree that neither is ideal, but until the "ideal" is implemented, it's better to have the option than not have it.

I think I'm missing something that you are worrying about and that I haven't noticed. Does -kb do something that I'm not aware of? Is there a more correct way of telling the client that a file is binary?

> (And in terms of temporary workarounds, TortoiseCVS has a switch in
> itself to disable newline conversion.)

I'd prefer if the configuration is kept on the server side as much as possible. Disabling newline conversion in the client is exactly the same solution as putting -kb everywhere in the server, except in the server it only needs doing once; and when a better method is eventually found the clients can continue without having to change anything.

Andy
-- 
Dr Andy Parkins, M Eng (hons), MIET
andyparkins@gmail.com
Previous: Martin LanghoffNext: Martin Langhoff
Message 8 of 17 in “git-cvsserver and binary files”
  1. Andy ParkinsFeb 22, 2007
  2. Added "-kb" to all the entries lines sent to the clientAndy Parkins, Feb 22, 2007
  3. Junio C HamanoFeb 22, 2007
  4. cvsserver: Make always-binary mode a config file optionAndy Parkins, Feb 27, 2007
  5. Martin LanghoffFeb 28, 2007
  6. Andy ParkinsFeb 28, 2007
  7. Martin LanghoffFeb 28, 2007
  8. Andy ParkinsMar 1, 2007
  9. Martin LanghoffMar 1, 2007
  10. Andy ParkinsMar 1, 2007
  11. Junio C HamanoMar 1, 2007
  12. Junio C HamanoMar 1, 2007
  13. Junio C HamanoMar 1, 2007
  14. Andy ParkinsMar 1, 2007
  15. Karl HasselströmMar 1, 2007
  16. cvsserver: Make always-binary mode a config file optionAndy Parkins, Feb 27, 2007
  17. Junio C HamanoFeb 27, 2007

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.