Skip to content
Snippets Groups Projects
  1. Nov 23, 2015
  2. Nov 16, 2015
  3. Nov 21, 2015
  4. Nov 16, 2015
  5. Nov 23, 2015
  6. Nov 17, 2015
    • Mateusz Kwapich's avatar
      histedit: add an experimental base action · d50ff8f4
      Mateusz Kwapich authored
      This is a first (very simple) version of the histedit base action.
      It works well in common usecases like rebasing the whole stack and
      spliting the stack.
      
      I don't see any obvious edge cases - but probably there is more than one.
      That's why I want to keep it behind experimental.histeditng config knob
      for now. I think on knob for all new histedit behaviors is better because
      we will test all of them together and testers will need to turn it on only
      once to get all new nice things.
      d50ff8f4
  7. Nov 18, 2015
  8. Nov 13, 2015
  9. Nov 18, 2015
    • Mateusz Kwapich's avatar
      histedit: make verification configurable · 4898e442
      Mateusz Kwapich authored
      Before we can add a 'base' action to histedit need to change verification
      so that action can specify which steps of verification should run for it.
      
      Also it's everything we need for the exec and stop actions implementation.
      
      I thought about baking verification into each histedit action (so each
      of them is responsible for verifying its constraints) but it felt wrong
      because:
       - every action would need to know its context (eg. the list of all other
         actions)
       - a lot of duplicated work will be added - each action will iterate through
         all others
       - the steps of the verification would need to be extracted and named anyway
         in order to be reused
      
      The verifyrules function grows too big now. I plan to refator it in one of
      the next series.
      4898e442
  10. Nov 13, 2015
  11. Nov 20, 2015
  12. Nov 21, 2015
  13. Nov 23, 2015
    • Gregory Szorc's avatar
      revlog: improve documentation · 7860366b
      Gregory Szorc authored
      There are a lot of functions and variables doing similar things.
      Document the role and functionality of each to make it easier to
      grok.
      7860366b
  14. Nov 22, 2015
  15. Nov 15, 2015
    • Gregory Szorc's avatar
      ui.write: don't clear progress bar when writing to a buffer · 9eeca021
      Gregory Szorc authored
      ui.write() has 2 modes: buffered and unbuffered. In buffered mode, we
      capture output before writing it. This is how changeset printing works,
      for example.
      
      Previously, we were potentially clearing the progress bar for every
      call to ui.write(). In buffered mode, this clearing was useless because
      the clearing function would be called again before actually writing
      the buffered data.
      
      This patch stops the useless calling of _progclear() unless we are
      actually writing data. During changeset printing with the default
      template, this removes ~6 function calls per changeset, making
      changeset printing slightly faster.
      
      before: 23.76s
      after:  23.35s
      delta:  -0.41s (98.3% of original)
      9eeca021
  16. Nov 23, 2015
  17. Nov 15, 2015
    • Gregory Szorc's avatar
      util.datestr: use divmod() · 6f1f8e88
      Gregory Szorc authored
      We were computing the quotient and remainder of a division operation
      separately. The built-in divmod() function allows us to do this with
      a single function call. Do that.
      6f1f8e88
    • Gregory Szorc's avatar
      cmdutil.changeset_printer: pass context into showpatch() · 93bcc73d
      Gregory Szorc authored
      Before, we passed the node then subsequently performed a lookup on
      repo.changelog. We already has the context available, so just pass it
      in.
      
      This does result in a small performance win. But I doubt it will show
      up anywhere because diff[stat] calculation will dwarf the time spent
      to create a changectx. Still, we should be creating fewer changectx
      out of principle.
      93bcc73d
  18. Nov 22, 2015
    • Gregory Szorc's avatar
      context: avoid extra parents lookups · a29db426
      Gregory Szorc authored
      Resolving parents requires reading from the changelog, which is a few
      attributes and function calls away. Parents lookup occurs surprisingly
      often. Micro optimizing the code to avoid redundant lookups of parents
      appears to make `hg log` on my Firefox repo a little faster:
      
      before: 24.91s
      after:  23.76s
      delta:  -1.15s (95.4% of original)
      a29db426
    • Gregory Szorc's avatar
      context: optimize _parents() · 37e1fdcb
      Gregory Szorc authored
      This patch avoids some extra attribute lookups and list mutations.
      
      This micro-optimization seems to result in a minor speedup for `hg log`
      on my Firefox repo:
      
      before: 25.35s
      after:  24.91s
      delta:  -0.44s (98% of original)
      
      Not the biggest gain. But every little bit helps.
      37e1fdcb
    • Matt Harbison's avatar
      test-histedit: $TESTTMP quoting fixes for Windows · e4f2e4f5
      Matt Harbison authored
      Without this, C:\path\to\test is converted into C:pathtotest.
      
      Since $TESTTMP appears in output, seems to work in some places without quotes,
      and is also used within a larger quote block (see test-rebase-collapse.t, ~line
      160), I'm not sure what a check-code rule would look like (or even if it is
      feasible).
      e4f2e4f5
    • Gregory Szorc's avatar
      lsprof: support PyPy (issue4573) · 9c75daf8
      Gregory Szorc authored
      PyPy's _lsprof module doesn't export a "profiler_entry" symbol. This
      patch treats the symbol as optional and falls back to verifying the
      attribute is present on the first entry in the collected data as
      part of validation.
      
      There is a chance not every entry will contain the requested sort
      attribute. But, this patch does unbust lsprof on PyPy for the hg
      commands I've tested, so I assume it is sufficient. It's certainly
      better than the ImportError we encountered before.
      
      As part of the import refactor, I snuck in the addition of
      absolute_import.
      9c75daf8
  19. Nov 12, 2015
  20. Nov 20, 2015
  21. Nov 16, 2015
  22. Nov 09, 2015
    • Matt Harbison's avatar
      test-context: conditionalize the workingfilectx date printing for Windows · 01489fa0
      Matt Harbison authored
      Starting with 13272104bb07, the output changed on Windows:
      
        --- e:/Projects/hg/tests/test-context.py.out
        +++ e:/Projects/hg/tests/test-context.py.err
        @@ -1,4 +1,4 @@
        -workingfilectx.date = (1000, 0)
        +workingfilectx.date = (1000L, 0)
         ASCII   : Gr?ezi!
         Latin-1 : Grⁿezi!
         UTF-8   : Gr├╝ezi!
      
      Since int and long are both 32 bit on Windows, this seems harmless in practice
      other than the previous test failure.
      01489fa0
  23. Nov 16, 2015
Loading