Skip to content
Snippets Groups Projects

streamclone: getting revlog data from the revlog themselves

Merged Pierre-Yves David requested to merge topic/default/stream-clone.get-stream into branch/default
  1. May 29, 2023
    • Pierre-Yves David's avatar
      stream-clone: smoothly detect and handle a case were a revlog is split · 5460424092e2
      Pierre-Yves David authored
      This detect and handle the most common case for a race condition around stream
      and revlog splitting. The one were the revlog is split between the initial
      collection of data and the time were we start considering stream that data.
      
      In such case, we repatch an inlined version of that revlog together when this
      happens. This is necessary as stream-v2 promised a specific number of bytes and
      a specific number of files to the client. In stream-v3, we will have the
      opportunity to just send a split revlog instead.
      
      Getting a better version of the protocol for stream-v3 is still useful, but it
      is no longer a blocket to fix that race condition.
      
      Note that another, rarer race condition exist, were the revlog is split while
      we creating the revlog and extracing content from it. This can be dealt with
      later.
      5460424092e2
    • Pierre-Yves David's avatar
      stream-clone: implement decidated `get_streams` method for revlog · 9caa860dcbec
      Pierre-Yves David authored
      For revlog, we can do better using the maximum linkrev expected. This approach
      open the way to dealing with a much larger set of non-trivial changes, like
      splitting of inline revlogs.
      
      We will actually tackle this issue in the next changesets (thanks to this one).
      9caa860dcbec
  2. May 28, 2023
  3. May 29, 2023
  4. May 28, 2023
    • Pierre-Yves David's avatar
      revlog: add a `get_revlog` method · 32837c7e2e4b
      Pierre-Yves David authored
      This might seen weird, but I actually thing we have been needing this for a
      long time. There is multiple object that kind of pretend being revlogs while
      actually wrapping the actual revlog. Since multiple code needs to access the
      actuel revlog. See documentation for more details.
      
      Expect cleanup of various places one the current series is done.
      32837c7e2e4b
  5. May 29, 2023
  6. May 28, 2023
  7. May 29, 2023
  8. May 28, 2023
  9. May 27, 2023
  10. May 29, 2023
  11. May 27, 2023
  12. May 29, 2023
  13. May 28, 2023
  14. May 29, 2023
Loading