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

git fetch <remote> <branch> behaves weirdely when run in a worktree

From
Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
Date
Sep 23, 2018, 20:09 UTC
Message-ID
<90301874969f7b11f33e504500c150a25d722ff8.camel@gmail.com>
Hi,

I was actually trying to automae the building and installation of Git source code to reduce my burden. I tried to automate it with the help of a script that runs daily via cron and a separate worktree used only by the build script.y run

The script typically fetches new changes for the next branch by running the following in the build worktree (which is not the main worktree):

   $ git fetch origin next

I thought that would result in FETCH_HEAD pointing to the latest changes for origin/next if the command succeeded.

Unfortunately, it seems to be behaving weirdely when run in a worktree. It sems to be behaving as if I ran 'git fetch origin'. To add to that confusion when I run

   $ cat $MAIN_WORKTREE/.git/worktrees/$BUILD_WORKTREE/FETCH_HEAD

it seems to be printing the info about the remote refs once and then if I run it again immediately nothing is printed. If I repeat it again, info about remote refs is printed but this time the info about the remote refs is printed thrice. This happens randomly. Sample output:

   01:23 $ cat ../git/.git/worktrees/$BUILD_WORKTREE/FETCH_HEAD 
   53f9a3e157dbbc901a02ac2c73346d375e24978c	not-for-merge	branch 'maint' of https://github.com/git/git
150f307afc13961b0322ad0e7205a7b193368586	not-for-merge	branch 'master' of https://github.com/git/git
01d371f741e6f0b0076d9ed942d99bdb23757eac	not-for-merge	branch 'next' of https://github.com/git/git
7a81cbc028be113058e0b55062706ec6de62ed94	not-for-merge	branch 'pu' of https://github.com/git/git
722746685bce03f223ed75febe312495e6c139da	not-for-merge	branch 'todo' of https://github.com/git/git
   01:23 $ cat ../git/.git/worktrees/$BUILD_WORKTREE/FETCH_HEAD 
   01:23 $ cat ../git/.git/worktrees/$BUILD_WORKTREE/FETCH_HEAD 
   01:23 $ cat ../git/.git/worktrees/$BUILD_WORKTREE/FETCH_HEAD 
   53f9a3e157dbbc901a02ac2c73346d375e24978c	not-for-merge	branch 'maint' of https://github.com/git/git
150f307afc13961b0322ad0e7205a7b193368586	not-for-merge	branch 'master' of https://github.com/git/git
01d371f741e6f0b0076d9ed942d99bdb23757eac	not-for-merge	branch 'next' of https://github.com/git/git
7a81cbc028be113058e0b55062706ec6de62ed94	not-for-merge	branch 'pu' of https://github.com/git/git
722746685bce03f223ed75febe312495e6c139da	not-for-merge	branch 'todo' of https://github.com/git/git
53f9a3e157dbbc901a02ac2c73346d375e24978c	not-for-merge	branch 'maint' of https://github.com/git/git
150f307afc13961b0322ad0e7205a7b193368586	not-for-merge	branch 'master' of https://github.com/git/git
01d371f741e6f0b0076d9ed942d99bdb23757eac	not-for-merge	branch 'next' of https://github.com/git/git
7a81cbc028be113058e0b55062706ec6de62ed94	not-for-merge	branch 'pu' of https://github.com/git/git
722746685bce03f223ed75febe312495e6c139da	not-for-merge	branch 'todo' of https://github.com/git/git
53f9a3e157dbbc901a02ac2c73346d375e24978c	not-for-merge	branch 'maint' of https://github.com/git/git
150f307afc13961b0322ad0e7205a7b193368586	not-for-merge	branch 'master' of https://github.com/git/git
01d371f741e6f0b0076d9ed942d99bdb23757eac	not-for-merge	branch 'next' of https://github.com/git/git
7a81cbc028be113058e0b55062706ec6de62ed94	not-for-merge	branch 'pu' of https://github.com/git/git
722746685bce03f223ed75febe312495e6c139da	not-for-merge	branch 'todo' of https://github.com/git/git
   01:23 $ cat ../git/.git/worktrees/$BUILD_WORKTREE/FETCH_HEAD 
   53f9a3e157dbbc901a02ac2c73346d375e24978c	not-for-merge	branch 'maint' of https://github.com/git/git
150f307afc13961b0322ad0e7205a7b193368586	not-for-merge	branch 'master' of https://github.com/git/git
01d371f741e6f0b0076d9ed942d99bdb23757eac	not-for-merge	branch 'next' of https://github.com/git/git
7a81cbc028be113058e0b55062706ec6de62ed94	not-for-merge	branch 'pu' of https://github.com/git/git
722746685bce03f223ed75febe312495e6c139da	not-for-merge	branch 'todo' of https://github.com/git/git
   'git fetch <remote> <branch>' behaves correctly in the main worktree.
   Why is this weirdness happening when run in other worktrees?
   Why isn't 'git fetch <remote> <branch> not fetching the changes for
   just the specified branch?
   Am I missing something?
   --
   Sivaraam
Next: Duy Nguyen
Message 1 of 12 in “git fetch <remote> <branch> behaves weirdely when run in a worktree”
  1. Kaartic SivaraamSep 23, 2018
  2. Duy NguyenSep 24, 2018
  3. Kaartic SivaraamSep 25, 2018
  4. Junio C HamanoSep 25, 2018
  5. Kaartic SivaraamSep 26, 2018
  6. Kaartic SivaraamSep 26, 2018
  7. Duy NguyenSep 26, 2018
  8. Duy NguyenSep 26, 2018
  9. Junio C HamanoSep 26, 2018
  10. Kaartic SivaraamOct 2, 2018
  11. Kaartic SivaraamOct 4, 2018
  12. Duy NguyenOct 4, 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.