The need to check for `null` above strikes me as rather inconvenient - what if `CalculateHistoryDivergence()` just returned an empty `HistoryDivergence` if either side is `null`?

Your code here could then be as simple as:

```csharp
this.div = branch.IsTracking ? repo.ObjectDatabase.Calculate... : new HistoryDivergence();
```

And each property here would simply defer to `div`.