narrow: factor out logic to create cg while widening into separate fn
This patch takes out the logic which generates a changegroup for widening a
narrow clone when ellipses are disabled. This is done because future patches
will introduce a narrow_widen() wireprotocol command which will send a
bundle2 with changegroup and will use this function.
The new function for now returns just the changegroup for compatibility with
existing code, but in future patches, when we establish a wireprotocol command
and call this function from there, this will return the required bundle2.
Differential Revision: https://phab.mercurial-scm.org/D4786
#require execbit
$ hg init
$ echo a > a
$ hg ci -Am'not executable'
adding a
$ chmod +x a
$ hg ci -m'executable'
$ hg id
79abf14474dc tip
Make sure we notice the change of mode if the cached size == -1:
$ hg rm a
$ hg revert -r 0 a
$ hg debugstate
n 0 -1 unset a
$ hg status
M a
$ hg up 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg id
d69afc33ff8a
$ test -x a && echo executable -- bad || echo not executable -- good
not executable -- good