Skip to content
Snippets Groups Projects
  1. Jun 19, 2017
    • Matt Harbison's avatar
      tinyproxy: explicitly flush logged messages · 23b07333
      Matt Harbison authored
      On Windows, output streams are buffered when redirected to a file, and
      TerminateProcess() apparently doesn't trigger a flush.  This left
      test-http-proxy.t missing part of the last line when it cat'd proxy.log[1].
      
      Flushing stderr is all that is needed (on py27 anyway).  I originally flushed
      stdout too, but that added additional output to the log:
      
           $ cat proxy.log
        +  Accept: $LOCALIP (localhost)\r (esc)
        +  Serving HTTP on 0.0.0.0 port 20810 ...\r (esc)
        +       connect to localhost:$HGPORT\r (esc)
           * - - [*] "GET http://localhost:$HGPORT/?cmd=capabilities HTTP/1.1" - - (glob)
        +       bye\r (esc)
        +       connect to localhost:$HGPORT\r (esc)
           * - - [*] "GET http://localhost:$HGPORT/?cmd=branchmap HTTP/1.1" - - x-hgproto-1:0.1 0.2 comp=*zlib,none,bzip2 (glob)
        +       bye\r (esc)
        +       connect to localhost:$HGPORT\r (esc)
           * - - [*] "GET http://localhost:$HGPORT/?cmd=stream_out HTTP/1.1" - - x-hgproto-1:0.1 0.2 comp=*zlib,none,bzip2 (glob)
        +       bye\r (esc)
        +       connect to localhost:$HGPORT\r (esc)
       ...
      
      [1] https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-April/096987.html
      23b07333
  2. Jun 18, 2017
  3. Feb 19, 2017
  4. Oct 16, 2016
    • Yuya Nishihara's avatar
      dagop: split module hosting DAG-related algorithms from revset · 27932a76
      Yuya Nishihara authored
      This module hosts the following functions. They are somewhat similar (e.g.
      scanning revisions using heap queue or stack) and seem non-trivial in
      algorithmic point of view.
      
       - _revancestors()
       - _revdescendants()
       - reachableroots()
       - _toposort()
      
      I was thinking of adding revset._fileancestors() generator for better follow()
      implementation, but it would be called from context.py as well. So I decided
      to create new module.
      
      Naming is hard. I couldn't come up with any better module name, so it's called
      "dag operation" now. I rejected the following candidates:
      
       - ancestor.py - existing, revlog-level DAG algorithm
       - ancestorset.py - doesn't always return a set
       - dagalgorithm.py - hard to type
       - dagutil.py - existing
       - revancestor.py - I want to add fileancestors()
      
        % wc -l mercurial/dagop.py mercurial/revset.py
          339 mercurial/dagop.py
         2020 mercurial/revset.py
         2359 total
      27932a76
  5. Jun 16, 2017
  6. Jun 18, 2017
  7. Jun 17, 2017
  8. May 27, 2017
    • Pierre-Yves David's avatar
      check-concurrency: expose the feature as 'concurrent-push-mode' · a7851519
      Pierre-Yves David authored
      We move the feature to a proper configuration and document it. The config goes
      in the 'server' section because it feels like something the server owner would
      want to decide. We pick and open field because it seems likely that other
      checking levels will emerge in the future. (eg: server like the mozilla-try
      server will likely wants a "none" value)
      
      The option name contains 'push' since this affects 'push' only. The option value
      'check-related' is preferred over one explicitly containing 'allow' or 'deny'
      because the client still have a strong decision power here. Here, the server is
      just advising the client on the check mode to use.
      a7851519
  9. Jun 17, 2017
  10. Jun 16, 2017
  11. Jun 18, 2017
  12. May 01, 2017
  13. Jun 16, 2017
  14. Jun 15, 2017
    • Boris Feld's avatar
      template: add predecessors template · 1858fc23
      Boris Feld authored
      Add a 'predecessors' template that returns the list of all closest known
      predecessors for a changectx. The elements of the list are row changectx node id
      formatted by default as short nodes.
      
      The "closest predecessors" are the first locally known revisions encountered
      while, walking predecessors markers. For example:
      
        1) If a (A, (B)) markers exists and both A and B are locally known A is a
        closest predecessors of B.
      
        2) If a (A, (B)) and (B, (C)) markers exists and only A and C are known
        locally, A will be the closest precursors of C.
      
      This logic respect repository filtering. So hidden revision will be skipped by
      this logic unless --hidden is specified. Since we only display the visible
      predecessors, this template will not display anything in most case. It makes a
      good candidate for inclusion in the default log output.
      
      I added a new test-file for testing the precursors in various scenarios. This
      test file will also be used for the successors template.
      
      A new "obsutil" module has been added to start gathering utility function
      outside of the large obsolete.py module.
      1858fc23
  15. Apr 22, 2017
  16. May 06, 2017
  17. Apr 22, 2017
    • Yuya Nishihara's avatar
      formatter: load templates section like a map file · c8f2cf18
      Yuya Nishihara authored
      Since a map file has another level to select a template (spec -> mapfile
      -> topic), this isn't exactly the same as how a map file works. But I believe
      most users would expect the new behavior.
      
      A literal template is stored as an unnamed template so that it will never
      conflict with the templates defined in [templates] section.
      c8f2cf18
  18. May 06, 2017
  19. Apr 22, 2017
  20. Jun 15, 2017
Loading