Skip to content
Snippets Groups Projects
  1. Apr 14, 2015
    • Ryan McElroy's avatar
      bookmarks: rename unsetcurrent to deactivate (API) · 08ec11e3
      Ryan McElroy authored
      Today, the terms 'active' and 'current' are interchangeably used throughout the
      codebase in reference to the active bookmark (the bookmark that will be updated
      with the next commit). This leads to confusion among developers and users.
      This patch is part of a series to standardize the usage to 'active' throughout
      the mercurial codebase and user interface.
      08ec11e3
  2. May 06, 2015
  3. Apr 12, 2015
  4. Mar 26, 2014
    • Pierre-Yves David's avatar
      revset: avoid returning duplicates when returning ancestors · 6b54f749
      Pierre-Yves David authored
      Before this patch, _revancestors were giving false result when a revision was
      duplicated in the input. Duplicated entry are rare but may happen when using the
      `%lx` notation internally.
      
      This series has no visible impact on the performance of the function according
      to benchmark.
      6b54f749
    • Pierre-Yves David's avatar
      revset: use an iterator instead of a dequeue in ancestors() · 85544a52
      Pierre-Yves David authored
      The dequeue was actually just used to be able to pop value one at a time.
      Building the dequeue means we are reading all the input value at once at the
      beginning of the evaluation. This defeat the lazyness of revset.
      
      We replace the deque with iterator usage for the sake of simplicity and
      lazyness.
      
      This provide massive speedup to get the first result if the input set is big
      
      max(::all())
      before) wall 0.001917 comb 0.000000 user 0.000000 sys 0.000000 (best of 1115)
      after)  wall 0.000107 comb 0.000000 user 0.000000 sys 0.000000 (best of 22222)
      85544a52
  5. May 06, 2015
  6. Mar 26, 2014
  7. May 04, 2015
    • Pierre-Yves David's avatar
      revset: make generatorset.__nonzero__ lazy · 2aa94b6f
      Pierre-Yves David authored
      The 'for r in self:' call could trigger full consumption of the generator while
      we only need a single value. We also fast path if a single value got already
      computed. See inline comment for more details.
      
      This provide massive speedup for lazy operation using boolean testing.
      
      max(::tip)
      e5b507efb36e) wall 0.055609 comb 0.060000 user 0.060000 sys 0.000000 (best of 100)
      after change) wall 0.000109 comb 0.000000 user 0.000000 sys 0.000000 (best of 19146)
      2aa94b6f
  8. May 05, 2015
  9. Apr 13, 2015
  10. May 05, 2015
    • Durham Goode's avatar
      histedit: fix test-histedit-edit on vfat · 5bc506ee
      Durham Goode authored
      test-histedit-edit was broken because it relied on the HGEDITOR script being
      executable. Instead, lets just execute 'sh' and pass it the script to run. This
      seems to be the pattern followed in other tests.
      5bc506ee
  11. May 03, 2015
    • Jordi Gutiérrez Hermoso's avatar
      revset: don't error out if tokens parse as existing symbols · 02228215
      Jordi Gutiérrez Hermoso authored
      It makes perfect sense for tokens to parse as existing revset symbols
      (revset functions), and doesn't break anything, since parsing symbols
      as functions works correctly in the presence of parens. For example,
      if "only" is a bookmark, this used to error out,
      
         hg log -r "only(only, @)"
      
      which shouldn't, as the inner "only" is unambiguously not a function.
      
      So we just remove the symbolset function and replace its calling site
      with the stringset function.
      
      For the tests, we confirm that "date" and "only" are both parsed as
      revision names both inside revset expressions (e.g. an expression
      containing ::) and inside old-style revision expressions (e.g. those
      containing the name of the revision alone).
      02228215
  12. May 05, 2015
  13. Apr 26, 2015
  14. Apr 28, 2015
  15. Apr 24, 2015
    • Laurent Charignon's avatar
      obsolete: speed up computation of bumped revset · cd006823
      Laurent Charignon authored
      Speed up the computation of the bumped revset by using the not public() revset.
      In another patch series, we optimized the not public() revset. Together,
      this cuts the cost of the computation of bumped() from 17% of the total time of
      smartlog on our big repo to under 0.1% of the total time.
      cd006823
  16. Mar 19, 2015
  17. Apr 28, 2015
  18. May 05, 2015
    • Matt Harbison's avatar
      archive: always use portable path component separators with subrepos · 41cd8171
      Matt Harbison authored
      The previous behavior when archiving a subrepo 's' on Windows was to internally
      name the file under it 's\file', due to the use of vfs.reljoin().  When printing
      the file list from the archive on Windows or Linux, the file was named
      's\\file'.  The archive extracted OK on Windows, but if the archive was brought
      to a Linux system, it created a file named 's\file' instead of a directory 's'
      containing 'file'.
      
      *.zip format achives seemed not to have the problem, but this was definitely an
      issue with *.tgz archives.
      
      Largefiles actually got this right, but a test is added to keep this from
      regressing.  The subrepo-deep-nested-change.t test was repurposed to archive to
      a file, since there are several subsequent tests that archive to a directory.
      The output change is losing the filesystem prefix '../archive_lf' and not
      listing the directories 'sub1' and 'sub1/sub2'.
      41cd8171
  19. Oct 11, 2014
    • Pierre-Yves David's avatar
      revset: narrow the subset using smartset operation in roots() · e5f16696
      Pierre-Yves David authored
      We were manually creating a base with explicit subset testing. We should let
      smartset magic happen and optimise that logic if needed.
      
      benchmark show some massive speedup when "parents set" is huge and "subset" is
      small.
      
      revset: 42:68 and roots(42:tip)
      0) wall 0.011322 comb 0.010000 user 0.010000 sys 0.000000 (best of 161)
      1) wall 0.002282 comb 0.010000 user 0.010000 sys 0.000000 (best of 1082)
      
      Minor speedup in simple case (were fullreposet helps)
      
      revset: roots(0::tip)
      0) wall 0.095688 comb 0.100000 user 0.100000 sys 0.000000 (best of 85)
      1) wall 0.084448 comb 0.080000 user 0.080000 sys 0.000000 (best of 95)
      
      revset: roots((0:tip)::)
      0) wall 0.146752 comb 0.140000 user 0.140000 sys 0.000000 (best of 58)
      1) wall 0.143538 comb 0.140000 user 0.140000 sys 0.000000 (best of 59)
      
      And small overhead then the "parents set" is fairly complicated (transforming it
      into a revset once and for all appears to be faster).
      
      revset: roots((tip~100::) - (tip~100::tip))
      0) wall 0.004652 comb 0.010000 user 0.010000 sys 0.000000 (best of 544)
      1) wall 0.004878 comb 0.010000 user 0.010000 sys 0.000000 (best of 479)
      
      revset: roots((0::) - (0::tip))
      0) wall 0.146587 comb 0.150000 user 0.150000 sys 0.000000 (best of 53)
      1) wall 0.157192 comb 0.160000 user 0.160000 sys 0.000000 (best of 53)
      
      revset: first(roots((0::) - (0::tip)))
      0) wall 0.152924 comb 0.150000 user 0.150000 sys 0.000000 (best of 57)
      1) wall 0.153192 comb 0.160000 user 0.160000 sys 0.000000 (best of 55)
      e5f16696
  20. May 04, 2015
    • Laurent Charignon's avatar
      context: make warning message for hidden revision extensible · d9fb88c0
      Laurent Charignon authored
      Extensions might want to create new filternames and change what revisions
      are considered hidden or shown. This is the case for inhibit that enables
      direct access to hidden hashes with the visible-directaccess-nowarn filtername.
      By using startswith instead of a direct comparison with 'visible' we
      allow extensions to do that and not work directly on the 'visible' filtername
      used by core.
      d9fb88c0
  21. May 03, 2015
    • Martin von Zweigbergk's avatar
      bundlerepo: remove unused 'repo' parameter · 86c0b5c0
      Martin von Zweigbergk authored
      Revision 7c231754a621 (filelog: add file function to open other
      filelogs, 2011-05-10) added a _file() method to revlog, which also
      required a 'repo' parameter to be added to bundlefilelog's
      constructor. The _file() method was then removed in b95a5bb58653
      (filelog: remove unused _file method, 2015-01-22), which made the
      constructor parameter unused, so let's remove that too.
      86c0b5c0
  22. Apr 22, 2015
    • Durham Goode's avatar
      histedit: fix --edit-plan · b5eb0150
      Durham Goode authored
      --edit-plan was completely broken from the command line because it used an old
      api that was not updated (it would crash with a stack trace). Let's update it
      and add tests to catch this.
      b5eb0150
  23. May 04, 2015
  24. Apr 22, 2015
  25. Apr 21, 2015
    • Drew Gottlieb's avatar
      localrepo: eliminate requirements class variable (API) · e3a928bd
      Drew Gottlieb authored
      Localrepo's requirements class variable was introduced in b090601a80d1 to make
      requirements modifiable by extensions. A main access point, _baserequirements,
      still exists, but this change undoes making the class variable to begin with.
      
      Without this simplification, there is a class variable with a default value
      that is only copied, but never directly used. This behavior is moved directly
      into the _baserequirements function.
      e3a928bd
  26. Apr 29, 2015
    • Martin von Zweigbergk's avatar
      changegroup.group: drop 'reorder' parameter · e285b98c
      Martin von Zweigbergk authored
      Since we always pass self._reorder to self.group(), let's drop the
      parameter and let group() read from self._reorder itself. There are no
      other in-tree callers to group().
      e285b98c
    • Martin von Zweigbergk's avatar
      cg2packer: set reorder=False in __init__ instead of in group() · 5447b852
      Martin von Zweigbergk authored
      The difference between reorder=None (bundle.reorder=auto) and
      reorder=False is that the generaldelta revlogs get reordered with the
      former. In cg2packer, group() we check if the revlog uses generaldelta
      and if reorder=None and then convert that to reorder=False. We are
      effectively saying that whether or not generaldelta is used, we want
      reorder=None to mean reorder=False for changegroup 2. To make this
      clearer, check if reorder=None in the constructor and change it to
      False there and drop the overriding of group(). Also document the
      reason for turning reordering off.
      5447b852
  27. Apr 23, 2015
  28. Apr 10, 2015
  29. May 02, 2015
  30. Apr 25, 2015
  31. Apr 30, 2015
  32. Apr 18, 2015
Loading