# Missing Tree Hash

**URL:** <https://discourse.julialang.org/t/missing-tree-hash/134039>\
**Category:** General Usage\
**Tags:** question, package, pkg, package-manager\
**Created:** [November 22, 2025, 4:26am UTC](https://discourse.julialang.org/t/missing-tree-hash/134039 "2025-11-22T04:26:18Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Chrysoberyl](https://avatars.discourse-cdn.com/v4/letter/c/ed655f/32.png) [@Chrysoberyl](https://discourse.julialang.org/u/Chrysoberyl)\
**Post date:** [November 22, 2025, 4:26am UTC](https://discourse.julialang.org/t/missing-tree-hash/134039/1 "2025-11-22T04:26:18Z")

</div>

In the versioning file of `GNNGraphs`: [General/G/GNNGraphs/Versions.toml at master · JuliaRegistries/General · GitHub](https://github.com/JuliaRegistries/General/blob/master/G/GNNGraphs/Versions.toml)

There is this line:

```toml
["1.4.2"]
git-tree-sha1 = "b3d3e4edd78a75d90089b4c13df1650895fbc7b2"

```

but after cloning the repository [GitHub - JuliaGraphs/GraphNeuralNetworks.jl: Graph Neural Networks in Julia](https://github.com/JuliaGraphs/GraphNeuralNetworks.jl.git), this tree hash does not exist in `git log --pretty=raw`, because it is a subdirectory.

Another one is this [General/jll/X/Xorg\_libpciaccess\_jll/Versions.toml at master · JuliaRegistries/General · GitHub](https://github.com/JuliaRegistries/General/blob/master/jll/X/Xorg_libpciaccess_jll/Versions.toml)

How does Julia determine the Git commit for this package?

---

<div class="post-metadata">

**Author:** ![Chrysoberyl](https://avatars.discourse-cdn.com/v4/letter/c/ed655f/32.png) [@Chrysoberyl](https://discourse.julialang.org/u/Chrysoberyl)\
**Post date:** [November 22, 2025, 5:55am UTC](https://discourse.julialang.org/t/missing-tree-hash/134039/2 "2025-11-22T05:55:13Z")

</div>

Pkg.jl pins the commit using a tree hash here: [Pkg.jl/src/GitTools.jl at 3bc7bff5cf60bdf9d062558f53c741ba5bf7fa63 · JuliaLang/Pkg.jl · GitHub](https://github.com/JuliaLang/Pkg.jl/blob/3bc7bff5cf60bdf9d062558f53c741ba5bf7fa63/src/GitTools.jl#L127)

However, this doesn’t explain [General/jll/X/Xorg\_libpciaccess\_jll/Versions.toml at master · JuliaRegistries/General · GitHub](https://github.com/JuliaRegistries/General/blob/master/jll/X/Xorg_libpciaccess_jll/Versions.toml). This package isn’t inside a subdirectory, and there are no commits whose tree hash matches the hash for `Xorg_libpciaccess-v0.18.1+0` (`4909eb8f1cbf6bd4b1c30dd18b2ead9019ef2fad`)

---

<div class="post-metadata">

**Author:** ![GunnarFarneback](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gunnarfarneback/32/1827_2.png) [@GunnarFarneback](https://discourse.julialang.org/u/GunnarFarneback)\
**Post date:** [November 22, 2025, 8:46am UTC](https://discourse.julialang.org/t/missing-tree-hash/134039/3 "2025-11-22T08:46:03Z")

</div>

> [@Chrysoberyl](#):
>
> (`4909eb8f1cbf6bd4b1c30dd18b2ead9019ef2fad`)

Yes, there are, but the branch structure is confusing. 4909 is not in HEAD (master) but in main.

```julia-auto
$ git log --pretty="%T %H" --all
4909eb8f1cbf6bd4b1c30dd18b2ead9019ef2fad cd1ccfbcb3bc8a077c705991f9f9d8b97d466098
79a09b8c1d3a2659937503788ce11173ba29681b 06d596755b33e7b64bec52e5f38f8397df829931
4b4f6ac73eeff6fb5e39ea1c6c5b93d776e54995 39cc2808b7846f1bc89fc6a5a01cd376eb11e044
9d4762d479634a46f8aabc1920584d1c5de4fb10 8173c636b990bc5cbcd8b95b6d855ea3bc920e04

$ git log --all --oneline
cd1ccfb (origin/main) Xorg_libpciaccess_jll build 0.18.1+0
06d5967 (HEAD -> master, tag: Xorg_libpciaccess-v0.18.1+0, origin/master, origin/HEAD) Xorg_libpciaccess_jll build 0.16.0+1
39cc280 (tag: Xorg_libpciaccess-v0.16.0+1) Xorg_libpciaccess_jll build 0.16.0+0
8173c63 (tag: Xorg_libpciaccess-v0.16.0+0) Initial commit

```

> [@Chrysoberyl](#):
>
> How does Julia determine the Git commit for this package?

It doesn’t. Only the tree hash is needed for Julia’s purposes.
