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

Re: git read-tree doesn't accept tree-ish

From
NBNikita Bobko <nikitabobko@gmail.com>
Date
Aug 23, 2021, 19:10 UTC
Message-ID
<CAMJzOtz_h0iEL1VQCFvvLzw3XnL+qM=f+BvkmsTU=ps+0VA7RA@mail.gmail.com>
In-Reply-To
<YSPuq/HmF3tnYHCA@coredump.intra.peff.net>
Yes, now I see. Thanks!

I was trying to read state of a particular directory/file from a particular revision into my index but so far didn't manage to do it reliably.

I was using `git read-tree <hash>:<path>` and it doesn't work for files (because they are blobs not tree-ish as you elaborated it to me) and for directories, in my cases, it fails with not so helpful message: ``` error: Entry '<path>/<subpath>' overlaps with '<path>/<subpath>'. Cannot bind. ```

`git checkout <hash> -- <path>` also doesn't work in my case because if any file is removed in `<hash>` but not in my HEAD then `git checkout` doesn't remove the file in my HEAD

On Mon, Aug 23, 2021 at 8:53 PM Jeff King <peff@peff.net> wrote:
Show 27 quoted lines
>
> On Mon, Aug 23, 2021 at 07:31:29PM +0200, Nikita Bobko wrote:
>
> > ```
> > git init
> > echo foo > foo
> > git add --all
> > git commit -m 'foo'
> >
> > echo bar > foo
> > git add --all
> > git commit -m 'bar'
> >
> > git read-tree HEAD~:foo
> > ```
> > EXP: Read information about file `foo` into index
> > ACT: `fatal: failed to unpack tree object HEAD~:foo`
> >
> > I expect it to work because manpage says that `git-read-tree` accepts
> > `<tree-ish>`
>
> In your example, "foo" is a blob, not a tree. And thus HEAD~:foo
> is not a tree-ish. Just "HEAD~" would be.
>
> What are you trying to do?
>
> -Peff
Previous: Jeff KingNext: Elijah Newren
Message 4 of 7 in “git read-tree doesn't accept tree-ish”
  1. Nikita BobkoAug 23, 2021
  2. Elijah NewrenAug 23, 2021
  3. Jeff KingAug 23, 2021
  4. Nikita BobkoAug 23, 2021
  5. Elijah NewrenAug 23, 2021
  6. Junio C HamanoAug 23, 2021
  7. Nikita BobkoAug 23, 2021

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.