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

[RFC PATCH 1/6] sha1-name: Add `GET_OID_GENTLY` flag

From
Paul-Sebastian Ungureanu <ungureanupaulsebastian@gmail.com>
Date
Jul 17, 2018, 12:06 UTC
Message-ID
<973c4d380743b4a0491ec63909fef862413db065.1531778417.git.ungureanupaulsebastian@gmail.com>
In-Reply-To
<cover.1531778417.git.ungureanupaulsebastian@gmail.com>

The current API does not provide a method to call `get_oid()` and avoid `exit()` to be called. This commit intention is to introduce a flag in order to make `get_oid()` able to get the sha1 safely, without exiting the program.

Since `get_oid()` calls a lot of functions, which call other functions as well (and so on), there are a lot of cases in which `exit()` could be called. To make this idea more clear, here is one example, which could cause `get_oid()` to die.

  get_oid() -> get_oid_with_context() -> get_oid_with_context_1()
  -> get_oid_1() -> read_ref_at() -> exit()

Where `function1() -> function2()` means that `function1()` might call `function2()` at some point.

Signed-off-by: Paul-Sebastian Ungureanu <ungureanupaulsebastian@gmail.com>
---
 cache.h | 1 +
 1 file changed, 1 insertion(+)
diff --git a/cache.h b/cache.h
index d49092d94..cb8803e2f 100644
--- a/cache.h
+++ b/cache.h
@@ -1314,6 +1314,7 @@ struct object_context {
 #define GET_OID_FOLLOW_SYMLINKS 0100
 #define GET_OID_RECORD_PATH     0200
 #define GET_OID_ONLY_TO_DIE    04000
+#define GET_OID_GENTLY	      010000
 
 #define GET_OID_DISAMBIGUATORS \
 	(GET_OID_COMMIT | GET_OID_COMMITTISH | \
-- 
2.18.0.rc2.184.ga79db55c2.dirty
Previous: Paul-Sebastian UngureanuNext: Duy Nguyen
Message 11 of 13 in “Add gentle alternative for `get_oid()`”
  1. 0/6 Add gentle alternative for `get_oid()`Paul-Sebastian Ungureanu, Jul 17, 2018
  2. 5/6 sha1-name: Teach `get_oid_with_context[_1]()` to be gentlePaul-Sebastian Ungureanu, Jul 17, 2018
  3. Junio C HamanoJul 17, 2018
  4. Paul-Sebastian UngureanuJul 18, 2018
  5. 6/6 sha1-name: Add gentle alternative for `get_oid()`Paul-Sebastian Ungureanu, Jul 17, 2018
  6. 4/6 sha1-name: Teach `get_oid_basic()` to be gentlePaul-Sebastian Ungureanu, Jul 17, 2018
  7. 3/6 refs.c: Teach `read_ref_at()` to accept `GET_OID_GENTLY` flagPaul-Sebastian Ungureanu, Jul 17, 2018
  8. 2/6 tree-walk: Add three new gentle helpersPaul-Sebastian Ungureanu, Jul 17, 2018
  9. Junio C HamanoJul 17, 2018
  10. Paul-Sebastian UngureanuJul 18, 2018
  11. 1/6 sha1-name: Add `GET_OID_GENTLY` flagPaul-Sebastian Ungureanu, Jul 17, 2018
  12. Duy NguyenJul 17, 2018
  13. Paul-Sebastian UngureanuJul 18, 2018

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.