Skip to content
Snippets Groups Projects
  1. Apr 01, 2013
  2. Mar 30, 2013
  3. Mar 29, 2013
  4. Mar 01, 2013
  5. Feb 28, 2013
  6. Mar 29, 2013
  7. Mar 27, 2013
  8. Feb 28, 2013
  9. Mar 26, 2013
    • Bryan O'Sullivan's avatar
      blackbox: defer opening a log file until needed (issue3869) · 17f6644a
      Bryan O'Sullivan authored
      Previously, we opened the log file when creating a repo object. This
      was inefficient (not all repo creation is going to result in a need to
      log something), but more importantly it broke subrepo updates when used
      on NFS.
      
      * perform an update in the master repo that triggers a subrepo clone
      
      * empty subrepo already exists, and has an open, empty blackbox.log file
        due to it being opened eagerly/prematurely
      
      * hg decides to blow away the skeletal subrepo (see use of shutil.rmtree
        in subrepo._get)
      
      * we crash, due to NFS treating a delete of an open file as really a
        rename to a hidden ".nfs" file
      
      Now that we open the blackbox log file on demand, no file exists at the
      time the empty subrepo is deleted, so the above problem does not occur.
      17f6644a
  10. Mar 22, 2013
  11. Mar 21, 2013
  12. Oct 10, 2012
  13. Mar 04, 2013
  14. Mar 24, 2013
  15. Mar 26, 2013
    • Siddharth Agarwal's avatar
      manifestmerge: use dicthelpers.diff and join · 381c0ef7
      Siddharth Agarwal authored
      This patch improves manifestmerge performance significantly.
      
      In a repository with 170,000 files, the following results were observed on a
      clean working directory. Revision '.' adds one file.
      
      hg perfmergecalculate -r .
      - before: 0.41 seconds
      - after: 0.13 seconds
      
      hg perfmergecalculate -r .^
      - before: 0.53 seconds
      - after: 0.24 seconds
      
      Comparing against '.' is much faster than comparing against '.^' because with
      '.', the wctx and p2 manifest strings have the same identity, so comparisons
      are simply pointer equality. With '.^', the strings have different identities
      so we need to perform memcmps.
      
      Any operation that uses manifestmerge benefits.
      - hg update . goes from 2.04 seconds to 1.75
      - hg update .^ goes from 2.52 seconds to 2.25
      - hg rebase -r . -d .~6 (involves 4 merges) goes from 11.8 seconds to 10.8
      381c0ef7
  16. Mar 25, 2013
  17. Mar 26, 2013
    • Siddharth Agarwal's avatar
      mercurial: implement diff and join for dicts · a45e44d7
      Siddharth Agarwal authored
      Given two dicts, diff returns a dict containing all the keys that are present
      in one dict but not the other, or whose values are different between the
      dicts. The values are pairs of the values from the dicts, with missing values
      being represented as an optional argument, defaulting to None.
      
      Given two dicts, join performs what is known as an outer join in relational
      database land: it returns a dict containing all the keys across both dicts.
      The values are pairs as above, except they aren't compared to see if they're
      the same.
      a45e44d7
  18. Mar 23, 2013
    • Constantine Linnick's avatar
      convert: add closesort algorithm to mercurial sources · 05acdf8e
      Constantine Linnick authored
      If you actively work with branches, sometimes you need to close old branches
      which last commited hundreds revisions ago. After close you will see long
      lines in graph visually spoiling history. This sort only moves closed
      revisions as close as possible to parents and does not increase storage size
      as datesort do.
      05acdf8e
  19. Mar 24, 2013
  20. Mar 25, 2013
  21. Mar 23, 2013
  22. Mar 25, 2013
  23. Mar 22, 2013
  24. Oct 16, 2012
    • Andrej Shadura's avatar
      hgk: remove regsub, split on \r instead · 3131c9da
      Andrej Shadura authored
      No need to regsub all \r\n's to \n's,
      we can just split on \r as well; this may
      produce extra empty elements in the list,
      but they won't match anyway.
      3131c9da
    • Andrej Shadura's avatar
      hgk: simplify tags parser · 962844e8
      Andrej Shadura authored
      As when hg tags is being called without -v option, it returns
      lines with two elements in each, we can just interate them as
      if it were a usual Tcl list using foreach and two variables.
      Line endings and whitespace don't matter when doing so, so we
      may keep them as is.
      
      When we're processing the lines, tag variable is assigned a tag
      name, and rev is a string in form of revision:hash which we can
      split on colon. As Tcl8.4 lacks lassign command, and using lindex
      makes code a bit less readable, we use foreach to iterate over
      two-element list.
      962844e8
  25. Mar 22, 2013
  26. Mar 10, 2013
    • Andrej Shadura's avatar
      hgk: in popups, replace labels with window titles · 932f5d35
      Andrej Shadura authored
      Replace labels with window titles.
      That also requires to change grid placement manager settings
      to compensate padding which used to be applied to now non-existent
      labels.
      932f5d35
    • Andrej Shadura's avatar
      hgk: update backgroud colour when Ttk is available · 6a0578d0
      Andrej Shadura authored
      Ttk doesn't automatically set up Tk colour palette.
      Because of that, Ttk controls look differently when used
      together with old Tk controls. When we use Ttk controls,
      we first query if we have any setting for the client
      background, and if we do, we update Tk palette as well.
      6a0578d0
Loading