Embellished RemoteDelta that has information specific
to a push operation. We want to know what our options are
for changes to upload, whether the remote has unrecorded relevant changes,
and whether the remote has changes we don’t know about, since those might
effect whether or not we actually want to go through with the push.
For a RemoteRepo that’s Local, Ssh, or Http
(anything other than a LocalChannel),
RemoteDelta contains data about the difference between
the “actual” state of the remote (‘theirs’) and the last version of it
that we cached (‘ours’). The dichotomy is the last point at which the two
were the same. remote_unrecs is a list of changes which used to be
present in the remote, AND were present in the current channel we’re
pulling to or pushing from. The significance of that is that if we knew
about a certain change but did not pull it, the user won’t be notified
if it’s unrecorded in the remote.
Create a RemoteDelta for a RemoteRepo::LocalChannel.
Since this case doesn’t have a local remote cache to worry about,
mainly just calculates the to_download list of changes.