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

[PATCH v3 0/10] getcwd without PATH_MAX

From
René Scharfe <l.s.r@web.de>
Date
Jul 28, 2014, 18:21 UTC
Message-ID
<53D694A2.8030007@web.de>

Paths longer than PATH_MAX can be created and used on at least on some file systems. Currently we use getcwd() generally with a PATH_MAX- sized buffer. This series adds two functions, strbuf_getcwd() and xgetcwd(), then uses them to reduce the number of fixed-sized buffers and to allow us to handle longer working directory paths.

Changes in v3:
  * all getcwd() calls are converted
  * the two strbuf_getcwd() examples from last round use xgetcwd()
    now, as suggested by Jeff
  * strbuf_add_absolute_path() is introduced
René Scharfe (10):
  strbuf: add strbuf_getcwd()
  unix-sockets: use strbuf_getcwd()
  setup: convert setup_git_directory_gently_1 et al. to strbuf
  abspath: use strbuf_getcwd() to remember original working directory
  abspath: convert real_path_internal() to strbuf
  wrapper: add xgetcwd()
  use xgetcwd() to get the current directory or die
  use xgetcwd() to set $GIT_DIR
  abspath: convert absolute_path() to strbuf
  use strbuf_add_absolute_path() to add absolute paths
 Documentation/technical/api-strbuf.txt |  10 +++
 abspath.c                              | 124 +++++++++------------------------
 builtin/init-db.c                      |  24 +++----
 builtin/rev-parse.c                    |   6 +-
 dir.c                                  |  12 ++--
 exec_cmd.c                             |   6 +-
 git-compat-util.h                      |   1 +
 git.c                                  |  13 ++--
 setup.c                                |  91 ++++++++++++------------
 sha1_file.c                            |   2 +-
 strbuf.c                               |  46 ++++++++++++
 strbuf.h                               |   3 +
 trace.c                                |   7 +-
 unix-socket.c                          |  14 ++--
 wrapper.c                              |   8 +++
 15 files changed, 190 insertions(+), 177 deletions(-)
-- 
2.0.2
Next: René Scharfe
Message 1 of 28 in “getcwd without PATH_MAX”
  1. 0/10 getcwd without PATH_MAXRené Scharfe, Jul 28, 2014
  2. 01/10 strbuf: add strbuf_getcwd()René Scharfe, Jul 28, 2014
  3. 02/10 unix-sockets: use strbuf_getcwd()René Scharfe, Jul 28, 2014
  4. Jeff KingJul 28, 2014
  5. 03/10 setup: convert setup_git_directory_gently_1 et al. to strbufRené Scharfe, Jul 28, 2014
  6. Eric SunshineJul 28, 2014
  7. Torsten BögershausenAug 16, 2014
  8. René ScharfeAug 16, 2014
  9. Junio C HamanoAug 18, 2014
  10. 04/10 abspath: use strbuf_getcwd() to remember original working directoryRené Scharfe, Jul 28, 2014
  11. 05/10 abspath: convert real_path_internal() to strbufRené Scharfe, Jul 28, 2014
  12. Jeff KingJul 28, 2014
  13. René ScharfeJul 28, 2014
  14. Jeff KingJul 28, 2014
  15. Junio C HamanoJul 28, 2014
  16. René ScharfeJul 29, 2014
  17. Junio C HamanoJul 29, 2014
  18. fixup for 05/10: plug leakRené Scharfe, Jul 29, 2014
  19. 06/10 wrapper: add xgetcwd()René Scharfe, Jul 28, 2014
  20. 07/10 use xgetcwd() to get the current directory or dieRené Scharfe, Jul 28, 2014
  21. 08/10 use xgetcwd() to set $GIT_DIRRené Scharfe, Jul 28, 2014
  22. 09/10 abspath: convert absolute_path() to strbufRené Scharfe, Jul 28, 2014
  23. Jeff KingJul 28, 2014
  24. René ScharfeJul 28, 2014
  25. fixup for 09/10: plug leakRené Scharfe, Jul 29, 2014
  26. 10/10 use strbuf_add_absolute_path() to add absolute pathsRené Scharfe, Jul 28, 2014
  27. 04/10 abspath: use strbuf_getcwd() to remember original working directoryRené Scharfe, Jul 28, 2014
  28. Jeff KingJul 28, 2014

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.