fwiw, both of them are also moving _in the direction_ of work trees as far as git is concerned (ie the idea was discussed a few months back), though implementation details differ - the biggest difficulty when relying too much on git and its state is that the state bleeds into version resolution since git is used as a source of "available versions" and if these change, the version resolution outcome will be different, often - this is the root cause of a lot of nimble woes, specially because two packages might need _conflicting_ versions of the same dep - if there's a global "git cache" and its state is relevant for version resolution, it gets messy very quickly