Skip to content
Snippets Groups Projects
  1. Jun 19, 2017
    • Matt Harbison's avatar
      run-tests: explicitly flush test runner output for Windows stability · bd77ac2bd23a
      Matt Harbison authored
      When hghave testing goes awry, the output order was changing on Windows.
      
        diff --git a/tests/test-run-tests.t b/tests/test-run-tests.t
        --- a/tests/test-run-tests.t
        +++ b/tests/test-run-tests.t
        @@ -920,10 +920,10 @@
            > EOF
            > done
            $ rt -j 2
        -  ....
        +  ....skipped: unknown feature: notarealhghavefeature\r (esc)
        +
        +
            # Ran 5 tests, 0 skipped, 0 warned, 0 failed.
        -  skipped: unknown feature: notarealhghavefeature
        -
            $ cd ..
            $ rm -rf broken
      
      Since 'skipped: unknown feature: notarealhghavefeature\n\n' is printed to stdout
      and the rest to stderr, it seems like maybe stdio isn't line buffered on
      Windows.  When a program exits, stdout is flushed before stderr[1].
      
      [1] https://blogs.msdn.microsoft.com/oldnewthing/20060519-09/?p=31133
      bd77ac2bd23a
    • Matt Harbison's avatar
      tinyproxy: explicitly flush logged messages · 23b07333a8b2
      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
      23b07333a8b2
  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 · 27932a76a88d
      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
      27932a76a88d
  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' · a7851519ea02
      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.
      a7851519ea02
  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 · 1858fc2327ef
      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.
      1858fc2327ef
  15. Apr 22, 2017
  16. May 06, 2017
  17. Apr 22, 2017
    • Yuya Nishihara's avatar
      formatter: load templates section like a map file · c8f2cf18b82e
      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.
      c8f2cf18b82e
  18. May 06, 2017
  19. Apr 22, 2017
  20. Jun 15, 2017
Loading