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

git rev-list --all --reflog does not include worktree references

From
Andreas Schwab <schwab@linux-m68k.org>
Date
Oct 5, 2015, 19:08 UTC
Message-ID
<87io6l16cc.fsf@igel.home>

When running git rev-list --all --reflog in the main worktree it doesn't include commits only referenced by the worktrees, neither HEAD nor its reflog.

$ git init test $ cd test # add some commits $ touch 1; git add 1; git commit -m 1 $ touch 2; git add 2; git commit -m 2 # add new worktree $ git worktree add ../test2 master^{} $ cd ../test2 # add more commits $ touch 3; git add 3; git commit -m 3 $ touch 4; git add 4; git commit -m 4 # create an unreferenced commit $ git checkout @^ # both commands should give the same number of commits $ git rev-list --reflog | wc -l 4 $ git -C ../test rev-list --all --reflog | wc -l 2

IIUC this will cause git gc to prune references from worktrees too early.

Andreas.
-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."
Next: Michael J Gruber
Message 1 of 2 in “git rev-list --all --reflog does not include worktree references”
  1. Andreas SchwabOct 5, 2015
  2. Michael J GruberOct 6, 2015

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.