Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/revlog.py @ 51025:509f0f7fc89e
delta-computer: stop explicitly taking file handle
The revlog has all the logic for opening and caching such handles, so no need to
duplicate it here. In addition, this let the revlog handle that logic by itself
which is better.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 25 Sep 2023 22:51:57 +0200 |
parents | 720e5a5f2b95 |
children | 33d2f0164d0d |
comparison
equal
deleted
inserted
replaced
51024:66c139d33cfe | 51025:509f0f7fc89e |
---|---|
2578 ) | 2578 ) |
2579 if self._writinghandles is None: | 2579 if self._writinghandles is None: |
2580 msg = b'adding revision outside `revlog._writing` context' | 2580 msg = b'adding revision outside `revlog._writing` context' |
2581 raise error.ProgrammingError(msg) | 2581 raise error.ProgrammingError(msg) |
2582 | 2582 |
2583 if self._inline: | |
2584 fh = self._writinghandles[0] | |
2585 else: | |
2586 fh = self._writinghandles[1] | |
2587 | |
2588 btext = [rawtext] | 2583 btext = [rawtext] |
2589 | 2584 |
2590 curr = len(self) | 2585 curr = len(self) |
2591 prev = curr - 1 | 2586 prev = curr - 1 |
2592 | 2587 |
2648 textlen, | 2643 textlen, |
2649 cachedelta, | 2644 cachedelta, |
2650 flags, | 2645 flags, |
2651 ) | 2646 ) |
2652 | 2647 |
2653 deltainfo = deltacomputer.finddeltainfo(revinfo, fh) | 2648 deltainfo = deltacomputer.finddeltainfo(revinfo) |
2654 | 2649 |
2655 compression_mode = COMP_MODE_INLINE | 2650 compression_mode = COMP_MODE_INLINE |
2656 if self._docket is not None: | 2651 if self._docket is not None: |
2657 default_comp = self._docket.default_compression_header | 2652 default_comp = self._docket.default_compression_header |
2658 r = deltautil.delta_compression(default_comp, deltainfo) | 2653 r = deltautil.delta_compression(default_comp, deltainfo) |
2736 ) | 2731 ) |
2737 | 2732 |
2738 rawtext = btext[0] | 2733 rawtext = btext[0] |
2739 | 2734 |
2740 if alwayscache and rawtext is None: | 2735 if alwayscache and rawtext is None: |
2741 rawtext = deltacomputer.buildtext(revinfo, fh) | 2736 rawtext = deltacomputer.buildtext(revinfo) |
2742 | 2737 |
2743 if type(rawtext) == bytes: # only accept immutable objects | 2738 if type(rawtext) == bytes: # only accept immutable objects |
2744 self._revisioncache = (node, curr, rawtext) | 2739 self._revisioncache = (node, curr, rawtext) |
2745 self._chainbasecache[curr] = deltainfo.chainbase | 2740 self._chainbasecache[curr] = deltainfo.chainbase |
2746 return curr | 2741 return curr |