RFR: 7902611: Add support for Mercurial 5.3

Erik Joelsson erik.joelsson at oracle.com
Tue Feb 18 18:33:30 UTC 2020


Looks good.

/Erik

On 2020-02-14 06:29, Erik Helin wrote:
> Hi all,
>
> please review this patch that adds support to jcheck for Mercurial 
> 5.3. There are two changes to Mercurial's API that affects jcheck:
>
> - c5548b0b6847
>   scmutil: convert status data object from a tuple to an attrs (API)
>
>   Review: https://phab.mercurial-scm.org/D7406
>   Commit: https://www.mercurial-scm.org/repo/hg/rev/c5548b0b6847
>
> - 1e87851dba63
>   changectx: add a "maybe filtered" filtered attribute
>
>   Review: https://phab.mercurial-scm.org/D7483
>   Commit: https://www.mercurial-scm.org/repo/hg/rev/1e87851dba63
>
> The first commit changed the class `scmutil.status` to inherit from 
> `object` instead of `tuple`. The fix for this is easy since 
> `scmutil.status implements `__iter__` - we can just feed the result of 
> `repo.status()` to the `tuple` constructor and we have a `tuple` 
> again. This is backwards compatible with the old API since 
> `tuple(tuple([1,2,3]))` result in `tuple(1,2,3)` - i.e. applying 
> `tuple` on a tuple is no-op.
>
> The second commit added an argument with a default value to the 
> constructor for `context.changectx`. jcheck already has a workaround 
> for this constructor since it was changed back in 3d35304bd09b [0], 
> the jcheck workarouud was introduced in jcheck 4ac08a4210ec [1]. The 
> problem is that the fix in 4ac08a4210ec was a bit too strict - it 
> expects the `context.changectx` constructor to take _exactly_ 4 
> arguments. When the fifth argument with a defaul value was added, then 
> this workaround fails. I changed this workaround to first try to use 
> the oldest version of the `context.changectx` constructor, and if that 
> fails with a `TypeError`, use the more recent variant of the constructor.
>
> Issue:
> - https://bugs.openjdk.java.net/browse/CODETOOLS-7902611
>
> Webrev:
> - https://cr.openjdk.java.net/~ehelin/7902611/00/
>
> Testing:
> - `make test` passes with hg 4.9 and 5.3
>
> Thanks,
> Erik
>
> [0]: https://www.mercurial-scm.org/repo/hg/rev/3d35304bd09b
> [1]: https://hg.openjdk.java.net/code-tools/jcheck/rev/4ac08a4210ec


More information about the code-tools-dev mailing list