Skip to content
Snippets Groups Projects
  1. Feb 04, 2018
  2. Feb 05, 2018
  3. Jan 20, 2018
    • Kyle Lippincott's avatar
      merge: use operation-provided labels (ex: dest/source) in several merge-tools · a9802c9e
      Kyle Lippincott authored
      Tools that did not use labels already, used only one, or used some label other
      than the exact strings of "local" or "other" were unmodified.  Cases that used
      the label "base" were modified as well, if they were otherwise changed in this
      CL; "merged" was *not* changed.
      
      There are other possible changes we might want to make, but I didn't:
      - bcompare (linux and osx) uses the labels "parent1" and "parent2" instead of
        "local" and "other", so it was left alone, even though beyondcompare3
        (windows) *was* changed.
      - araxis used the labels "Other", "Base", and "Local :$local", so it was also
        left alone.
      - UltraCompare didn't provide a label for 'local', just for 'base' and 'other',
        so it was left alone.
      
      Differential Revision: https://phab.mercurial-scm.org/D2012
      a9802c9e
  4. Jan 18, 2018
    • Kyle Lippincott's avatar
      filemerge: support passing labels to external merge tools · 9037c29e
      Kyle Lippincott authored
      This adds $labellocal, $labelother, and $labelbase to the replacement set for
      merge-tools.<tool>.args config variables, and to the environment as HG_MY_LABEL,
      HG_OTHER_LABEL, and HG_BASE_LABEL, respectively.
      
      We also add merge-tools.<tool>.mergemarkers and
      merge-tools.<tool>.mergemarkertemplate config variables as counterparts of
      the variables available in [ui]. We are intentionally *not* respecting
      ui.mergemarkers when calling out to external merge programs; too often the
      default template will be too wide to display comfortably in most GUIs.
      
      Differential Revision: https://phab.mercurial-scm.org/D2011
      9037c29e
  5. Feb 03, 2018
  6. Jan 27, 2018
  7. Feb 03, 2018
  8. Jan 25, 2018
  9. Jan 21, 2018
    • Yuya Nishihara's avatar
      cmdutil: drop aliases for logcmdutil functions (API) · c8e2d6ed
      Yuya Nishihara authored
      .. api::
      
         Log-related utility functions has been renamed as follows:
      
          - cmdutil.loglimit -> logcmdutil.getlimit
          - cmdutil.diffordiffstat -> logcmdutil.diffordiffstat
          - cmdutil._changesetlabels -> logcmdutil.changesetlabels
          - cmdutil.changeset_printer -> logcmdutil.changesetprinter
          - cmdutil.jsonchangeset = logcmdutil.jsonchangeset
          - cmdutil.changeset_templater -> logcmdutil.changesettemplater
          - cmdutil.logtemplatespec -> logcmdutil.templatespec
          - cmdutil.makelogtemplater -> logcmdutil.maketemplater
          - cmdutil.show_changeset -> logcmdutil.changesetdisplayer
          - cmdutil.getlogrevs -> logcmdutil.getrevs
          - cmdutil.getloglinerangerevs -> logcmdutil.getlinerangerevs
          - cmdutil.displaygraph -> logcmdutil.displaygraph
          - cmdutil.graphlog -> logcmdutil.graphlog
          - cmdutil.checkunsupportedgraphflags -> logcmdutil.checkunsupportedgraphflags
          - cmdutil.graphrevs -> logcmdutil.graphrevs
          - cmdutil._makenofollowlogfilematcher -> logcmdutil._makenofollowfilematcher
      c8e2d6ed
    • Yuya Nishihara's avatar
      logcmdutil: drop redundant "log" from function names (API) · 572f36e9
      Yuya Nishihara authored
      A few exceptions:
      
      - s/loglimit/getlimit/ to avoid name conflict
      - s/_logrevs/_initialrevs/ to clarify its functionality
      572f36e9
    • Yuya Nishihara's avatar
      logcmdutil: rename classes and functions to conform to our coding style (API) · b0014780
      Yuya Nishihara authored
      show_changeset is renamed to changesetdisplayer as its return value is called
      a displayer.
      b0014780
    • Yuya Nishihara's avatar
      cmdutil: split functions of log-like commands to new module (API) · 7625b4f7
      Yuya Nishihara authored
      cmdutil.py is painfully big and makes Emacs slow. Let's split log-related
      functions.
      
        % wc -l mercurial/cmdutil.py
        4027 mercurial/cmdutil.py
      
        % wc -l mercurial/cmdutil.py mercurial/logcmdutil.py
        3141 mercurial/cmdutil.py
         933 mercurial/logcmdutil.py
        4074 total
      7625b4f7
  10. Feb 02, 2018
    • Gregory Szorc's avatar
      httppeer: remove support for connecting to <0.9.1 servers (BC) · 197d10e1
      Gregory Szorc authored
      Previously, HTTP wire protocol clients would attempt a
      "capabilities" wire protocol command. If that failed, they would
      fall back to issuing a "between" command.
      
      The "capabilities" command was added in Mercurial 0.9.1 (released
      July 2006). The "between" command has been present for as long as
      the wire protocol has existed. So if the "between" command failed,
      it was safe to assume that the remote could not speak any version
      of the Mercurial wire protocol.
      
      The "between" fallback was added in 395a84f78736 in 2011. Before that
      changeset, Mercurial would *always* issue the "between" command and
      would issue "capabilities" if capabilities were requested. At that time,
      many connections would issue "capabilities" eventually, so it was
      decided to issue "capabilities" by default and fall back to "between"
      if that failed. This saved a round trip when connecting to modern
      servers while still preserving compatibility with legacy servers.
      
      Fast forward ~7 years. Mercurial servers supporting "capabilities"
      have been around for over a decade. If modern clients are
      connecting to <0.9.1 servers, they are getting a bad experience.
      They may even be getting bad data (an old server is vulnerable to
      numerous security issues and could have been p0wned, leading to a
      Mercurial repository serving backdoors or other badness).
      
      In addition, the fallback can harm experience for modern servers.
      If a client experiences an intermittent HTTP request failure (due to
      bad network, etc) and falls back to a "between" that works, it would
      assume an empty capability set and would attempt to communicate with
      the repository using a very ancient wire protocol. Auditing HTTP logs
      for hg.mozilla.org, I did find a handful of requests for the
      null range of the "between" command. However, requests can be days
      apart. And when I do see requests, they come in batches. Those
      batches seem to correlate to spikes of HTTP 500 or other
      server/network events. So I think these requests are fallbacks from
      failed "capabilities" requests and not from old clients.
      
      If you need even more evidence to discontinue support, apparently
      we have no test coverage for communicating with servers not
      supporting "capabilities." I know this because all tests pass
      with the "between" fallback removed.
      
      Finally, server-side support for <0.9.1 pushing (the "addchangegroup"
      wire protocol command along with locking-related commands) was dropped
      from the HTTP client in fda0867cfe03 in 2017 and the SSH client in
      9f6e0e7ef828 in 2015.
      
      I think this all adds up to enough justification for removing client
      support for communicating with servers not supporting "capabilities."
      So this commit removes that fallback.
      
      Differential Revision: https://phab.mercurial-scm.org/D2001
      197d10e1
    • Gregory Szorc's avatar
      internals: document when "hello" and "capabilities" commands were added · 0d8024be
      Gregory Szorc authored
      Both were introduced in 0.9.1.
      
      "hello" made its entrance in b17eebc911ae, 144280f1578f, and
      a1cfe679192c to support SSH.
      
      "capabilities" was added in c660691fb45d to support HTTP.
      
      Differential Revision: https://phab.mercurial-scm.org/D2000
      0d8024be
  11. Jan 27, 2018
  12. Jan 30, 2018
    • Matt Harbison's avatar
      lfs: emit a status message to indicate how many blobs were uploaded · fa993c3c
      Matt Harbison authored
      Previously, there was a progress bar indicating the byte count, but then it
      disappeared once the transfer was done.  Having that value stay on the screen
      seems useful.  Downloads are done one at a time, so hold off on that until they
      can be coalesced, to avoid a series of lines being printed.  (I don't have any
      great ideas on how to do that.  It would be a shame to have to wrap a bunch of
      read commands to be able to do this.)
      
      I'm not sure if the 'lfs:' prefix is the right thing to do here.  The others in
      the test are verbose/debug messages, so in the normal case, this is the only
      line that's prefixed.
      fa993c3c
  13. Jan 31, 2018
  14. Feb 01, 2018
  15. Jan 18, 2018
  16. Feb 01, 2018
  17. Jan 18, 2018
  18. Jan 31, 2018
Loading