-
Notifications
You must be signed in to change notification settings - Fork 291
Description
Describe and demonstrate the bug
I have the following transcript that just pulls the same code twice into two different projects (note this is a private repository):
```ucm
first/main> pull.without-history @cloud/nimbus/main
```
```ucm
second/main> pull.without-history @cloud/nimbus/main
```
When I run this transcript with UNISON_DEBUG=timing I see the following:
⚙️ Processing stanza 1 of 2.InputPattern: 1.85 ms (cpu), 3.88 ms (system)
Causal Negotiation: 23.2 ms (cpu), 107 ms (system)
...
<progress messages about downloading up inserting entities>
...
updateProjectBranchRoot: 39.5 s (cpu), 37.0 s (system)
InputPattern: 60.9 s (cpu), 61.4 s (system)
⚙️ Processing stanza 2 of 2.InputPattern: 2.72 ms (cpu), 5.00 ms (system)
updateProjectBranchRoot: 39.5 s (cpu), 37.1 s (system)
InputPattern: 39.5 s (cpu), 37.6 s (system)
✔️ Compl ted transcript.s , 9 s
InputPattern: 2.70 µs (cpu), 2.74 µs (system)
I don't see a timing specifically for downloading the definitions. I'm guessing that it's roughly the difference between the first updateProjectBranchRoot (39.5 s) and the first InputPattern (60.9 s). But what is notable to me is that for both stanzas the updateProjectBranchRoot takes the same 39.5 s (cpu). That seems like a lot to me. And all of the data is the same as in the other project: do we really need to do this work again? What is it that updateProjectBranchRoot is doing?
Environment (please complete the following information):
ucm --versionrelease/0.5.47' (built on 2025-08-29)- OS/Architecture: x86 linux