patch: generalize the use of patchmeta in applydiff()
- Add patchmeta.copy() and emit copies from iterhunks. Modifying patchmeta
instances in applydiff() makes things simpler.
- Rename selectfile() into makepatchmeta(). It is responsible for creating
patchmeta for regular patches.
- Pass patchmeta objects to patchfile() directly
patchmeta instances were associated with git patches, for regular patches we
had to pass additional variables to tell the patch intent to patchfile().
Instead, we generate patchmeta for regular patches and pass them. This will
also help with patch filtering by matcher objects.
[ original upstream message ]
536c1797202d57efb77bea098e10968ff01602ce universal_scheme
ba000e29ecf3b8df09e0fd363a78cabbe3c2a78f cvs_scheme
1fe48bf82d056f1ece05baccab888357c10c5ab8 r0.1
2e930f84224222ad6514a3c5dc6e00350e199e92 very_cvs
99dc49c5bcfba9d5b412c5fa6d0bf3ba20d68df1 hgkw_standalone_setup
15e8cd7f5295728b089fc8ba236c0f079572fb1d nohook
0c8b7e5c25a6b9a0d2782eaa3748eb546f5a254f archive
0000000000000000000000000000000000000000 universal_scheme
0000000000000000000000000000000000000000 cvs_scheme
0000000000000000000000000000000000000000 r0.1
0000000000000000000000000000000000000000 very_cvs
0000000000000000000000000000000000000000 hgkw_standalone_setup
0000000000000000000000000000000000000000 nohook
0000000000000000000000000000000000000000 archive