Skip to content
Snippets Groups Projects
  1. Feb 28, 2024
  2. Feb 27, 2024
  3. Feb 26, 2024
  4. Feb 14, 2024
  5. Feb 13, 2024
  6. Feb 12, 2024
  7. Feb 06, 2024
    • Georges Racinet's avatar
      DiffService.GetPatchId: initial implementation · 972fd9a8b2cc
      Georges Racinet authored
      Since `git patch-id` does not involve the repository at all (it
      ingests a patch and outputs a hash), we are actually spawning it,
      with a Mercurial generated patch.
      
      For general consistency (and hoping it does not matter so much),
      we are computing the index lines as for the `RawDiff` method, but
      Git seems to actually ignore it.
      
      We are avoiding to extract the full content of binary files, as it
      would be expensive and essentially useless. This is also what Gitaly
      does, and we probably should generalize it to some other `DiffService`
      methods (to be checked)
      
      As the Comparison Tests display, the patch id computed by HGitaly
      turns out to be identical to the done by Gitaly for simple text-only
      diffs. That will obviously not be true of binary diffs.
      972fd9a8b2cc
  8. Feb 11, 2024
  9. Feb 10, 2024
  10. Feb 09, 2024
  11. Jan 29, 2024
  12. Jan 28, 2024
    • Georges Racinet's avatar
      MercurialOperations: define and implement MergeBranch · dca77baea98a
      Georges Racinet authored
      This is the counterpart of Gitaly's `OperationService.UserMergeBranch`.
      
      We had to make a dedicated method because
      
      - the two-phase system of Gitaly does not make sense for Mercurial:
        merging does move branches right away, as branch information is
        enclosed in the changeset. We started development by mimicking it,
        but it soon became overly complicated
      - we have the `semi_linear` field, nothing alike on the Gitaly side,
        since the method always performs a merge, and ours would fast-forward
        by default.
      - we have error cases that do not exist in Git (obsolescence and
        instability checks). Actually, we reuse some of Gitaly errors
        to ease the burden of treatment on the client side. The case
        of `reference_check` being a borderline, but it shouldn't matter
        much.
      
      (bumping minimal py-heptapod version for `GitRepo.git()` helper method)
      dca77baea98a
Loading