MatthewSteeples;8941 wrote:
Thanks (as usual) for the quick and thorough response. That's roughly what I was expecting so we'll work around it. One thing I did notice is that one of our resources is being copied when it probably doesn't need to be (and this is 20mb in size). We're not actually copying any additional files apart from what the project references.
My guess here would be that the file is being included via build logic, perhaps through an MSBuild project item. If you add a condition to the item (Condition="'$(NCrunch)' != '1'"), then NCrunch will ignore it and it won't be copied up to the grid node.
MatthewSteeples;8941 wrote:
Just as a quick question then, are there any advantages to having a large snapshot directory for a small team? If it just contains source files and NuGet packages then I'm thinking that it probably doesn't need to be massive. Is it smart enough to "share" the copies of the working directories between sessions if the files are identical (as 90% of them will be).
When a client connects to a grid node, the node must reserve a snapshot for this client.
If an unreserved snapshot already exists on the node that is at least an 85% match for the client, this snapshot will be updated and used. Otherwise a new one will be a created.
It's important that snapshots aren't shared between connected clients, as clients could still have differences in their source code and the grid node cannot make safe assumptions about how these snapshots should be structured or how they may be used by build and test code (some users have tests that reach out of the workspace and into the snapshot to access certain resources).
Provided the grid node has enough snapshots to meet demand, the only advantage in having more of them is in initialisation/synchronisation times. Building snapshots can be expensive, especially if they are very large. If the network connection between client and node is particularly slow, grid node synchronisation can take a long time. Where possible, the node will cross-copy files between snapshots if they are identical to files that need to be transferred from the client (to reduce reliance on the network), so having more data basically means less traffic.