Skip to content
Snippets Groups Projects
  1. Apr 03, 2017
    • Jun Wu's avatar
      bundlerepo: use raw revision in revdiff() · 37e793918c07
      Jun Wu authored
      This is similar to "revlog: use raw revisions in revdiff". revdiff()
      generates raw text used in revlog directly.
      
      This makes test-flagprocessor.t happy.
      37e793918c07
  2. Apr 07, 2017
    • Jun Wu's avatar
      bundlerepo: fix raw handling in revision() · 4598e8f43e20
      Jun Wu authored
      Similar to fixes in revlog.py, this patch uses "rawtext" to explicitly label
      contents expected to be raw, and makes sure content stored in _cache is raw
      text.
      
      Now test-flagprocessor.t points us to another issue.
      4598e8f43e20
    • Jun Wu's avatar
      bundlerepo: build revlog index with flags · 4bafc80f827e
      Jun Wu authored
      This fixes bundlerevlog.flags(rev) for any revisions provided by the bundle.
      
      Now test-flagprocessor.t points us to another issue.
      4bafc80f827e
    • Jun Wu's avatar
      bundlerepo: make baserevision return raw text · 433ab46f6bb4
      Jun Wu authored
      "baserevision" returns the text that will be used to apply deltas. Since
      deltas are against raw texts, "baserevision" should return raw text.
      
      Now test-flagprocessor.t points us to a new error.
      433ab46f6bb4
    • Jun Wu's avatar
      test-flagprocessor: add tests about bundlerepo · 723c1ab2f77e
      Jun Wu authored
      This shows flag processor is broken with a bundle repo.
      
      The test creates non-liner history to exercise code path where the
      deltaparent cannot be reused.
      723c1ab2f77e
    • Jun Wu's avatar
      test-flagprocessor: use changegroup3 in bundle2 · 77f746e5383a
      Jun Wu authored
      This will force "hg bundle" to use changegroup3 in the test. It is
      important since only changegroup3 preserves revlog flags.
      77f746e5383a
    • Jun Wu's avatar
      bundle: allow bundle command to use changegroup3 in tests · 1da9b2a4cbb8
      Jun Wu authored
      Since bundle2 writes changegroup version, we can just reuse the bundle2
      format for changegroup3.
      
      This won't enable the bundle command to write changegroup3 in the wild,
      since exchange.parsebundlespec only returns changegroup2. It unlocks tests
      to override exchange.parsebundlespec and get "hg bundle" write changegroup3.
      1da9b2a4cbb8
  3. Apr 06, 2017
    • Matt Harbison's avatar
      d34316ae5c58
    • Matt Harbison's avatar
      run-tests: support per-line conditional output in tests · 4eec2f04a672
      Matt Harbison authored
      Duplicating entire tests just because the output is different is both error
      prone and can make the tests harder to read.  This harnesses the existing '(?)'
      infrastructure, both to improve readability, and because it seemed like the path
      of least resistance.
      
      The form is:
      
        $ test_cmd
        output (hghave-feature !) # required if hghave.has_feature(), else optional
        out2 (no-hghave-feature2 !) # req if not hghave.has_feature2(), else optional
      
      I originally extended the '(?)' syntax.  For example, this:
      
        2 r4/.hg/cache/checkisexec (execbit ?)
      
      pretty naturally reads as "checkisexec, if execbit".  In some ways though, this
      inverts the meaning of '?'.  For '(?)', the line is purely optional.  In the
      example, it is mandatory iff execbit.  Otherwise, it is carried forward as
      optional, to preserve the test output.  I tried it the other way, (listing
      'no-exec' in the example), but that is too confusing to read.  Kostia suggested
      using '!', and that seems fine.
      4eec2f04a672
    • Matt Harbison's avatar
      test-run-tests: pad the failure test to preserve the run order · ff60498211f3
      Matt Harbison authored
      Test size seems to dictate the order in which the tests are run, and the next
      patch will add to test-success.t.  Similar to c0cecc153d25.
      ff60498211f3
    • Matt Harbison's avatar
      run-tests: prevent a (glob) declaration from reordering (?) lines · 220d4bffd23e
      Matt Harbison authored
      Previously, if a series of optional output lines marked with '(?)' had a (glob)
      in one of the first lines, the output would be reordered such that it came last
      if none of the lines were output.  The (re) declaration wasn't affected, which
      was helpful in figuring this out.  There were no tests for '(re) (?)' so add
      that to make sure everything plays nice.
      220d4bffd23e
  4. Apr 07, 2017
  5. Apr 06, 2017
  6. Apr 05, 2017
  7. Apr 04, 2017
  8. Apr 03, 2017
  9. Apr 02, 2017
  10. Apr 01, 2017
  11. Apr 22, 2016
  12. Apr 02, 2017
  13. Apr 03, 2017
    • Jun Wu's avatar
      revlog: avoid applying delta chain on cache hit · 726f24123f02
      Jun Wu authored
      Previously, revlog.revision(raw=False) may try to apply the delta chain
      on _cache hit. That happens if flags are non-empty. This patch makes rawtext
      reused so delta chain application is avoided.
      
      "_cache" and "rev" are moved a bit to avoid unnecessary assignments.
      726f24123f02
    • Jun Wu's avatar
      revlog: indent block to make review easier · 2be73f9720a8
      Jun Wu authored
      2be73f9720a8
    • Jun Wu's avatar
      revlog: avoid calculating "flags" twice in revision() · ac9a5e89113a
      Jun Wu authored
      This is more consistent with other code in "revision()" - prefer performance
      to code length.
      ac9a5e89113a
    • Jun Wu's avatar
      revlog: use raw revision for rawsize · d22f29abeb42
      Jun Wu authored
      When writing the revlog-ng index, the third field is len(rawtext). See
      revlog._addrevision:
      
          textlen = len(rawtext)
          ....
          e = (offset_type(offset, flags), l, textlen,
               base, link, p1r, p2r, node)
          self.index.insert(-1, e)
      
      Therefore, revlog.index[rev][2] returned by revlog.rawsize should be
      len(rawtext), where "rawtext" is revlog.revision(raw=True).
      
      Unfortunately it's hard to add a test for this code path because "if l >= 0"
      catches most cases.
      d22f29abeb42
  14. May 14, 2016
  15. Apr 01, 2017
    • Gregory Szorc's avatar
      zstd: vendor python-zstandard 0.8.0 · e0dc40530c5a
      Gregory Szorc authored
      Commit 81e1f5bbf1fc54808649562d3ed829730765c540 from
      https://github.com/indygreg/python-zstandard is imported without
      modifications (other than removing unwanted files).
      
      Updates relevant to Mercurial include:
      
      * Support for multi-threaded compression (we can use this for
        bundle and wire protocol compression).
      * APIs for batch compression and decompression operations using
        multiple threads and optimal memory allocation mechanism. (Can
        be useful for revlog perf improvements.)
      * A ``BufferWithSegments`` type that models a single memory buffer
        containing N discrete items of known lengths. This type can be
        used for very efficient 0-copy data operations.
      
      # no-check-commit
      e0dc40530c5a
    • Gregory Szorc's avatar
      commands: update help for "unbundle" · 2b130e26c3a4
      Gregory Szorc authored
      Similar to the recent change to "bundle," this command no longer
      just deals with "changegroup" data.
      2b130e26c3a4
Loading