Skip to content
Snippets Groups Projects
  1. Apr 03, 2017
  2. Apr 02, 2017
  3. Apr 01, 2017
  4. Apr 22, 2016
  5. Apr 02, 2017
  6. Apr 03, 2017
    • Jun Wu's avatar
      revlog: avoid applying delta chain on cache hit · 726f2412
      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.
      726f2412
    • Jun Wu's avatar
      revlog: indent block to make review easier · 2be73f97
      Jun Wu authored
      2be73f97
    • Jun Wu's avatar
      revlog: avoid calculating "flags" twice in revision() · ac9a5e89
      Jun Wu authored
      This is more consistent with other code in "revision()" - prefer performance
      to code length.
      ac9a5e89
    • Jun Wu's avatar
      revlog: use raw revision for rawsize · d22f29ab
      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.
      d22f29ab
  7. May 14, 2016
  8. Apr 01, 2017
    • Gregory Szorc's avatar
      zstd: vendor python-zstandard 0.8.0 · e0dc4053
      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
      e0dc4053
    • Gregory Szorc's avatar
      commands: update help for "unbundle" · 2b130e26
      Gregory Szorc authored
      Similar to the recent change to "bundle," this command no longer
      just deals with "changegroup" data.
      2b130e26
    • Gregory Szorc's avatar
      commands: update help for "bundle" · 54b1af73
      Gregory Szorc authored
      We now have a dedicated help topic to describe bundle specification
      strings. Let's update `hg bundle`'s documentation to reflect its
      existence.
      
      While I was hear, I also tweaked some wording which I felt was out
      of date and needed tweaking. Specifically, `hg bundle` no longer
      just deals with "changegroup" data: it can also generate files
      that have non-changegroup data.
      54b1af73
    • Gregory Szorc's avatar
      help: document bundle specifications · 69d8fcf2
      Gregory Szorc authored
      I softly formalized the concept of a "bundle specification" a while
      ago when I was working on clone bundles and stream clone bundles and
      wanted a more robust way to define what exactly is in a bundle file.
      
      The concept has existed for a while. Since it is part of the clone
      bundles feature and exposed to the user via the "-t" argument to
      `hg bundle`, it is something we need to support for the long haul.
      
      After the 4.1 release, I heard a few people comment that they didn't
      realize you could generate zstd bundles with `hg bundle`. I'm
      partially to blame for not documenting it in bundle's docstring.
      
      Additionally, I added a hacky, experimental feature for controlling
      the compression level of bundles in 76104a4899ad. As the commit
      message says, I went with a quick and dirty solution out of time
      constraints. Furthermore, I wanted to eventually store this
      configuration in the "bundlespec" so it could be made more flexible.
      
      Given:
      
      a) bundlespecs are here to stay
      b) we don't have great documentation over what they are, despite being
         a user-facing feature
      c) the list of available compression engines and their behavior isn't
         exposed
      d) we need an extensible place to modify behavior of compression
         engines
      
      I want to move forward with formalizing bundlespecs as a user-facing
      feature. This commit does that by introducing a "bundlespec" help
      page. Leaning on the just-added compression engine documentation
      and API, the topic also conveniently lists available compression
      engines and details about them. This makes features like zstd
      bundle compression more discoverable. e.g. you can now
      `hg help -k zstd` and it lists the "bundlespec" topic.
      69d8fcf2
    • Gregory Szorc's avatar
      util: document bundle compression · 55c0c91f
      Gregory Szorc authored
      An upcoming patch will add support for documenting bundle
      specifications in more detail. As part of this, we'd like to
      enumerate available bundle compression formats. In order to do
      this, we need to provide the help mechanism a dict of names
      and objects with docstrings.
      
      This patch adds docstrings to compengine.bundletype and adds
      a function for retrieving a dict of them. The code is not yet
      used.
      55c0c91f
    • Gregory Szorc's avatar
      tests: store ETag when using --headeronly · 39f6333e
      Gregory Szorc authored
      Previously, --headeronly would prevent --twice from working
      because the ETag wasn't stored when --headeronly was used.
      This feels like a bug. That feeling is reaffirmed by the fact
      that this change doesn't regress any tests.
      39f6333e
    • Gregory Szorc's avatar
      hgweb: extract path traversal checking into standalone function · 62f9679d
      Gregory Szorc authored
      A common exploit in web applications that access paths is to insert
      path separator strings like ".." to try to get the server to serve up
      files it shouldn't.
      
      We have code for detecting this in staticfile(). A subsequent commit
      will need to perform this test as well. Since this is security code,
      let's factor the check so we don't have to reinvent the wheel.
      62f9679d
    • Gregory Szorc's avatar
      hgweb: use context manager for file I/O · 161a87ed
      Gregory Szorc authored
      161a87ed
  9. Apr 03, 2017
  10. Apr 02, 2017
  11. Mar 29, 2017
  12. Apr 02, 2017
Loading