This is indeed how this is currently being called. However, unless I'm wrong, the `xxxFinder` code doesn't consider as granted that the passed `Branch` is the `Head` of the repository.

1. Either we mimic this indirection and, in GitFlowVersionForDirectoryFinder, set the `Context.CurrentBranch` from `Repository.Head`, and let the `Context` infer the value of `Tip` from `CurrentBranch` (my proposal above, mainly because I do not know what led to this indirection).
1. Or we could make the `Context` only accept the `Repository` as a settable property and make it expose `Repository.Head` as `CurrentBranch` and `CurrentBranch.Tip` as `Tip`. If we go down this road, I'd event suggest renaming `CurrentBranch` property to `Head` for more clarity.

Point 1 would be a bit more flexible, as it wouldn't require the branch to be checked out (ie. to be pointed at by HEAD).
However, if we rather choose point 2 as a target, It may be worth pondering if the `Context` type adds any value. Indeed, we may directly pass the `IRepository` to the ``xxxFinder`s and make the underlying code explicitly works against Head.

@SimonCropp Thoughts?