← Back to team overview

dulwich-users team mailing list archive

Re: [PATCH 0/4] RFC/implemenmtation of shallow clone support.

 

On Sun, Oct 17, 2010 at 09:23, Jelmer Vernooij <jelmer@xxxxxxxxx> wrote:

> On Wed, 2010-08-18 at 09:46 -0700, David Borowitz wrote:
> > Stupid git send-email, where'd my body go?
>
> > This implements shallow clone support on the server. The reason it's
> > marked as an RFC is that I don't like the way I have to pass two extra
> > arguments (shallow and client_shallow) down through a bunch of levels
> > of callbacks. It shouldn't break existing code, since they're optional
> > arguments, but it's clear that this approach isn't going to scale
> > forever. Since any API changes, like wrapping some of these arguments
> > up into object state or a data object, would break existing code, I
> > thought I'd ask for suggestions.
> Hmm, I agree that is a tough one. The graph walker object would be the
> right place for this sort of thing, except we construct it inside of
> this function at the moment.
>

I'm willing to put some time into significantly rewriting this code path. I
think to do that though, I need to have a better sense of how these
functions are used in e.g. bzr-git, so I know what the constraints are. (Or
alternatively, so I can help clean that up as well.)


> I think the new parameter names (client_shallow, shallow) are perhaps a
> bit confusing - "client" only makes sense in the context of a server.
>
> Another option would be to allow haves and wants to be tuples that
> include the shallow revisions.
>

That's a possibility. Conceptually it's still complicating the interface
just as much, but at least it would be more code-compatible.


> Cheers,
>
> Jelmer
>
> > On Wed, Aug 18, 2010 at 09:41, <dborowitz@xxxxxxxxxx> wrote:
> >         cae6290 Add eof() and unread_pkt_line() methods to Protocol.
> >         4b46bf0 MissingObjectFinder: minor cleanup: 80 chars, others.
> >         f0bee0e server: Correct short-circuiting operation for no-op
> >         fetches.
> >         c346233 Add shallow clone support to the server.
> >
> >          NEWS                                 |    9 +++
> >          dulwich/object_store.py              |   42 +++++++++--
> >          dulwich/protocol.py                  |   40 ++++++++++-
> >          dulwich/repo.py                      |   21 ++++--
> >          dulwich/server.py                    |  112
> >         +++++++++++++++++++++++++++---
> >          dulwich/tests/compat/server_utils.py |   73
> >         ++++++++++++++++++++
> >          dulwich/tests/compat/test_web.py     |    7 ++-
> >          dulwich/tests/test_protocol.py       |   34 +++++++++-
> >          dulwich/tests/test_server.py         |  125
> >         ++++++++++++++++++++++++++++++++++
> >          9 files changed, 434 insertions(+), 29 deletions(-)
> >
> >
>
>

References