Skip to content
Snippets Groups Projects
  1. Feb 26, 2024
  2. Feb 13, 2024
  3. Feb 12, 2024
  4. 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
  5. Feb 11, 2024
  6. Feb 10, 2024
  7. Feb 09, 2024
  8. Jan 29, 2024
  9. 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
  10. Jan 29, 2024
  11. Jan 28, 2024
  12. Jan 23, 2024
    • Georges Racinet's avatar
      Comparison tests: separated method to compare exceptions · 794bbdd4c2fb
      Georges Racinet authored
      As explained in the docstring, this will allow comparing exceptions
      obtained with different gRPC methods. First use-case will be Mercurial
      version of `UserMergeBranch` that will have to differ yet will return
      same exceptions and structured errors.
      
      Also introducing a way normalize structured errors: some of them, such
      as `MergeConflictError` can indeed contain commit ids.
      794bbdd4c2fb
    • Georges Racinet's avatar
      Servicer: adopted changeset publication method · d4c14b0b88f6
      Georges Racinet authored
      Because of the duality bewteen `OperationService` and
      `MercurialOperationService`, it will be useful to have it upstairs in the
      class hierarchy (attributes are really used, to that moving to an
      utility module will not be appropriate)
      d4c14b0b88f6
  13. Jan 18, 2024
Loading