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

[PATCHES 9-12/12] line_buffer: more wrappers around stdio functions

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Jan 3, 2011, 03:03 UTC
Message-ID
<20110103030328.GA10143@burratino>
In-Reply-To
<20110103004900.GA30506@burratino>

This might be the last batch of line_buffer patches for the moment[1]. It introduces wrappers around strbuf_fread, fgetc, fdopen, and tmpfile so the line_buffer lib can do what those functions do.

The motivation in the background is delta application.  We need:
 - binary-safe input, since svn (like most version control systems)
   gets used to store binary files from time to time.
 - character-oriented input (fgetc) as a basic convenience, needed in
   particular for reading variable-length integers in svndiff blocks.
 - input from file descriptors, to read information requested from
   fast-import (in particular, delta preimages).
 - temporary files, to store the result of delta application and
   retrieve its length so svn-fe can write
	data <length>
	... delta application result ...
   to fast-import.

The ideas behind the third and fourth patches (patches 11 and 12) are from David Barr's earlier work in the same direction. Patches are based against

  [PATCH 8/8] t0081 (line-buffer): add buffering tests

so we can reuse some of the testing infrastructure. They are numbered accordingly for easy application.

Each patch introduces new API. I would be happy if you can find an infelicity or two so we can fix the functions now before people get used to them.

Jonathan Nieder (4):
  vcs-svn: add binary-safe read function
  vcs-svn: allow character-oriented input
  vcs-svn: allow input from file descriptor
  vcs-svn: teach line_buffer about temporary files
 t/t0081-line-buffer.sh  |   27 +++++++++++++++++++++++++++
 test-line-buffer.c      |   21 ++++++++++++++++++---
 vcs-svn/line_buffer.c   |   43 +++++++++++++++++++++++++++++++++++++++++++
 vcs-svn/line_buffer.h   |   10 +++++++++-
 vcs-svn/line_buffer.txt |   31 +++++++++++++++++++++++++++----
 5 files changed, 124 insertions(+), 8 deletions(-)

[1] There's another patch to use 64-bit offsets but the API changes are more obvious.

Previous: Jonathan NiederNext: Jonathan Nieder
Message 12 of 25 in “teach vcs-svn/line_buffer to handle multiple input files”
  1. 0/4 teach vcs-svn/line_buffer to handle multiple input filesJonathan Nieder, Dec 24, 2010
  2. 1/4 vcs-svn: eliminate global byte_bufferJonathan Nieder, Dec 24, 2010
  3. 2/4 vcs-svn: replace buffer_read_string memory pool with a strbufJonathan Nieder, Dec 24, 2010
  4. 3/4 vcs-svn: collect line_buffer data in a structJonathan Nieder, Dec 24, 2010
  5. 4/4 vcs-svn: teach line_buffer to handle multiple input filesJonathan Nieder, Dec 24, 2010
  6. Jonathan NiederJan 3, 2011
  7. 5/8 vcs-svn: make test-line-buffer input format more flexibleJonathan Nieder, Jan 3, 2011
  8. 6/8 tests: give vcs-svn/line_buffer its own test scriptJonathan Nieder, Jan 3, 2011
  9. 7/8 vcs-svn: tweak test-line-buffer to not assume line-oriented inputJonathan Nieder, Jan 3, 2011
  10. 8/8 t0081 (line-buffer): add buffering testsJonathan Nieder, Jan 3, 2011
  11. Jonathan NiederJan 3, 2011
  12. 12/12 line_buffer: more wrappers around stdio functionsJonathan Nieder, Jan 3, 2011
  13. 09/12 vcs-svn: add binary-safe read functionJonathan Nieder, Jan 3, 2011
  14. 10/12 vcs-svn: allow character-oriented inputJonathan Nieder, Jan 3, 2011
  15. 11/12 vcs-svn: allow input from file descriptorJonathan Nieder, Jan 3, 2011
  16. 12/12 vcs-svn: teach line_buffer about temporary filesJonathan Nieder, Jan 3, 2011
  17. vcs-svn: give control over temporary file namesJonathan Nieder, Jan 22, 2011
  18. [PULL svn-fe] fast-import 'ls', line-buffer changesJonathan Nieder, Feb 26, 2011
  19. David Michael BarrFeb 26, 2011
  20. Junio C HamanoFeb 28, 2011
  21. fast-import: make code "-Wpointer-arith" cleanJonathan Nieder, Feb 28, 2011
  22. Sverre RabbelierFeb 28, 2011
  23. Junio C HamanoFeb 28, 2011
  24. Jonathan NiederFeb 28, 2011
  25. Junio C HamanoMar 1, 2011

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.