indygreg added inline comments.

INLINE COMMENTS

> narrowbundle2.py:329
>      getbundleargs['narrow'] = 'boolean'
> -    getbundleargs['widen'] = 'boolean'
>      getbundleargs['depth'] = 'plain'

Because of how `wireprotov1server.getbundle()` handles arguments, removing this 
argument from the definition of arguments to the `getbundle` wire protocol 
command means that existing clients attempting to send the argument to the 
`getbundle` wire protocol command will cause a server-side exception.

We need to keep this key around for BC unless we're fine breaking old clients 
or unless there is something that changes server capabilities in a way that 
prevents old clients from calling `getbundle` with this argument. We could 
ignore the argument or nerf the server to error if it is received.

> martinvonz wrote in narrowwirepeer.py:79-82
> That code was added in 
> https://www.mercurial-scm.org/repo/hg/rev/3e7f675628ad. Maybe @indygreg can 
> tell us if he thinks we should support the same values for a new wireprotocol 
> command.

We probably want to extract the argument "parsing" from 
`wireprotov1server.getbundle()` into a standalone function so we can use it for 
this command.

Arguments in wire protocol version 1 are wonky :/

> narrowwirepeer.py:64
> +    """
> +
> +    oldincludes = wireprototypes.decodelist(args.get('oldincludes'))

I'm pretty sure we'll want a try..except around this entire command so that 
we'll send a bundle2 error payload on failure. See 
`wireprotov1server.getbundle()` for inspiration. Search for use of the 
`error:abort` bundle2 part. We'll want to do something like that in the except 
block.

Keep in mind exceptions can occur mid stream. In that case, proper error 
handling is a bit harder. But a good start is to put a `try..except` around all 
the code before we `return` the output.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D4813

To: pulkit, durin42, #hg-reviewers, martinvonz
Cc: indygreg, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to