Matt Mackall <mpm@selenic.com> [Wed, 06 Jul 2005 22:25:40 -0800] rev 640
Switch push over to the new scheme
Now push works transparently with any repo with lock and
addchangegroup. Currently this is local repos and ssh.
Matt Mackall <mpm@selenic.com> [Wed, 06 Jul 2005 22:23:57 -0800] rev 639
Add addchangegroup to the ssh protocol
Matt Mackall <mpm@selenic.com> [Wed, 06 Jul 2005 22:23:27 -0800] rev 638
Add a scheme for handling remote locking
This adds an object that remembers to unlock the remote repo on
destruction and lock/unlock functions for the ssh protocol. The remote
repository should also unlock itself when the connection goes down.
Matt Mackall <mpm@selenic.com> [Wed, 06 Jul 2005 22:21:23 -0800] rev 637
Fix up the broken bits in findoutgoing
Matt Mackall <mpm@selenic.com> [Wed, 06 Jul 2005 22:20:56 -0800] rev 636
Move the empty changeset detection out of findincoming to pull
This lets us reuse findincoming for findoutgoing
Matt Mackall <mpm@selenic.com> [Wed, 06 Jul 2005 22:20:12 -0800] rev 635
Protocol switch from using generators to stream-like objects.
This allows the the pull side to precisely control how much data is
read so that another encapsulation layer is not needed.
An http client gets a response with a finite size. Because ssh clients
need to keep the stream open, we must not read more data than is sent
in a response. But due to the streaming nature of the changegroup
scheme, only the piece that's parsing the data knows how far it's
allowed to read.
This means the generator scheme isn't fine-grained enough. Instead we
need file-like objects with a read(x) method. This switches everything
for push/pull over to using file-like objects rather than generators.
Matt Mackall <mpm@selenic.com> [Wed, 06 Jul 2005 22:14:10 -0800] rev 634
Add a repo method to report repo device
This is used to establish whether repos are on the same device for
hard linking. Remote repos all return -1.