Skip to content
Snippets Groups Projects
  1. Mar 02, 2023
  2. Feb 28, 2023
    • Matt Harbison's avatar
      typing: add typehints to mercurial/diffutil.py · b8cac4e3
      Matt Harbison authored
      Lack of typehints here caused the fact that TortoiseHg was passing str instead
      of bytes as the key in `opts` to be missed, resulting in shelf corruption in
      cases where `diff.git` is required.
      b8cac4e3
    • Matt Harbison's avatar
      patchbomb: respect the `--git` option · a6b49787
      Matt Harbison authored
      I *think* this is the only diffopt exposed on the command line.  TortoiseHg had
      a similar issue creating diffopts, and this was caught by type hints in the next
      commit.
      a6b49787
  3. Mar 01, 2023
    • Raphaël Gomès's avatar
      rhg: remember the inode of .hg/dirstate · dbe09fb0
      Raphaël Gomès authored
      This allows us to detect changes of `.hg/dirstate`, which is either the
      full dirstate (in dirstate-v1) or the docket file (v2) without relying on
      data inside the file. It only works on UNIX systems.
      
      This fixes a race condition for dirstate-v1 (as demonstrated by
      the test changes) and adds a confortable layer of sanity for dirstate-v2.
      dbe09fb0
  4. Feb 28, 2023
    • Raphaël Gomès's avatar
      rust-dirstate-v2: don't write dirstate if data file has changed · 07d030b3
      Raphaël Gomès authored
      This fixes the following race:
          - process A reads the dirstate
          - process B reads and writes the dirstate
          - process A writes the dirstate
      
      This either resulted in losing what process B had just written or a crash
      because the `uuid` had changed and we were trying to write to a file that
      doesn't exist. More explanations inside.
      
      This doesn't fix the issue for dirstate-v1, a later patch addresses it.
      07d030b3
  5. Dec 12, 2022
  6. Mar 01, 2023
    • Pierre-Yves David's avatar
      dirstate: set identity whenever we read the dirstate's v2 docket · 379a7800
      Pierre-Yves David authored
      The docket can be loaded outside of a full read (for exemple when
      pre-fetching parents), so the current code would read/set the identity
      after loading the data, opening a race condition:
      
      A0: first process docket is read
      B0: other process appends new data to the dirstate (and changes the docket)
      A1: first process sets the identity (based on pre-B content, but with post-B identity)
      A1: first process loads the dirstatemap from the data file
      A1: first process does not detect the race and overwrites the update from B.
      379a7800
  7. Feb 21, 2023
  8. Feb 28, 2023
  9. Mar 01, 2023
  10. Feb 27, 2023
  11. Dec 13, 2022
  12. Feb 26, 2023
Loading