D1615: transaction: build changes['revs'] as range instead of a set.

2017-12-07 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY Revisions are added consecutively, so a range can easily represent them in the changes list. This saves around 45 Bytes / revision on 64bit platforms

D1606: phases: drop the list with phase of each rev, always comput phase sets

2017-12-07 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 4228. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D1606?vs=4155=4228 REVISION DETAIL https://phab.mercurial-scm.org/D1606 AFFECTED FILES mercurial/cext/parsers.c mercurial/cext/revlog.c

D1606: phases: drop the list with phase of each rev, always comput phase sets

2017-12-08 Thread joerg.sonnenberger (Joerg Sonnenberger)
This revision was automatically updated to reflect the committed changes. Closed by commit rHGd13526333835: phases: drop the list with phase of each rev, always comput phase sets (authored by joerg.sonnenberger, committed by ). CHANGED PRIOR TO COMMIT

D1615: transaction: build changes['revs'] as range instead of a set

2017-12-08 Thread joerg.sonnenberger (Joerg Sonnenberger)
This revision was automatically updated to reflect the committed changes. Closed by commit rHG137a08d82232: transaction: build changes[revs] as range instead of a set (authored by joerg.sonnenberger, committed by ). REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE

D1606: phases: drop the list with phase of each rev, always comput phase sets

2017-12-07 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added inline comments. INLINE COMMENTS > quark wrote in phases.py:226-237 > Sorry - I made a mistake using `repo.revs('public()')` to test the logic > here. Actually that exercises a different code path >

D1621: transaction: split changes['phases'] into sets for src and target phase

2017-12-08 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added a comment. This is a Proof-of-Concept and with a follow-up in https://phab.mercurial-scm.org/D1622 to use a C implementation for the bitset. Original code: 485s / 584MB Set version: 501s / 582MB intbitset: 478s / 563MB REPOSITORY rHG Mercurial REVISION

D1621: transaction: split changes['phases'] into sets for src and target phase

2017-12-08 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY changes['phases'] used to be a dictionary mapping revisions to (old, new) tuples. The encoding is highly redundant and eats ~40MB for the test case

D1622: transaction: Use intbitset for implementing changes['phase']

2017-12-08 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D1622 AFFECTED FILES mercurial/localrepo.py CHANGE DETAILS diff --git

D1621: transaction: encodes tuples in changes['phases'] as 4 bit ints

2017-12-11 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added a comment. The bitset version has shown already that optimizing this is worthwhile and can eliminate up to 10% of the total size of the transaction object. The change as is primarily gets the interfaces in place, so that outside code can be adjusted. REPOSITORY

D1622: transaction: Use intbitset for implementing changes['phase']

2017-12-09 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added a comment. Like I said, this is primarily a proof of concept. I'm still playing with different approaches and I don't think intbitset is a good fit for other reasons, but it worked the best from the various pre-existing implementations. REPOSITORY rHG Mercurial

D1621: transaction: encodes tuples in changes['phases'] as 4 bit ints

2017-12-10 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added a comment. This version should be committable. It introduces the necessary API for isolating further changes and gives a small improvement already. I'll be looking at provider a memory and time efficient sparce vector next, that's where the real benefits will be.

D1621: transaction: encodes tuples in changes['phases'] as 4 bit ints

2017-12-10 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 4341. joerg.sonnenberger edited the summary of this revision. joerg.sonnenberger retitled this revision from "[PoC] transaction: split changes['phases'] into sets for src and target phase" to "transaction: encodes tuples in changes['phases'] as 4

D1606: phases: drop the list with phase of each rev, always comput phase sets

2017-12-06 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY Change the C implementation of phasecache.loadphaserevs to provide only the sets for draft and secret phase as well as the number of revisions seen.

D3439: templatefilters: add commonprefix

2018-05-08 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 8590. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D3439?vs=8549=8590 REVISION DETAIL https://phab.mercurial-scm.org/D3439 AFFECTED FILES mercurial/templatefilters.py tests/test-template-filters.t

D3439: templatefilters: add commonprefix

2018-05-09 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 8593. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D3439?vs=8590=8593 REVISION DETAIL https://phab.mercurial-scm.org/D3439 AFFECTED FILES mercurial/templatefilters.py tests/test-template-filters.t

D3439: templatefilters: add commonprefix

2018-05-09 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added a comment. {str|commonprefix} is not really interesting since it is naturally an iterable of text. The others are covered, the routine tries to optimize a couple of common cases as well now. REPOSITORY rHG Mercurial REVISION DETAIL

D3439: templatefilters: add commonprefix

2018-05-09 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 8595. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D3439?vs=8593=8595 REVISION DETAIL https://phab.mercurial-scm.org/D3439 AFFECTED FILES mercurial/templatefilters.py tests/test-template-filters.t

D3439: templatefilters: add commonprefix

2018-05-10 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 8614. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D3439?vs=8595=8614 REVISION DETAIL https://phab.mercurial-scm.org/D3439 AFFECTED FILES mercurial/templatefilters.py tests/test-template-filters.t

D3553: notify: add option to include function names in the diff output

2018-05-12 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY This is the equivalent of ``hg diff -p``. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D3553 AFFECTED FILES

D3532: wireprotov2: define and implement "rawstorefile" command

2018-05-12 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added a comment. Similar to Martin's question, I would like to allow streaming clones without any locks. For that to work, one party needs to know how to truncate additional undesired data. That can be fully done by the client or the client could send a size or revision

D3557: commit: add new close-branch command

2018-05-13 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY ``hg close-branch`` allows closing arbitrary heads. It is equivalent to checking out the given revisions and commit an empty change with ``hg commit

D3439: templatefilters: add commonprefix

2018-05-08 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 8549. joerg.sonnenberger retitled this revision from "template filters: add commonprefix" to "templatefilters: add commonprefix". REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D3439?vs=8454=8549 REVISION

D3439: template filters: add commonprefix

2018-05-05 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY The commonprefix filter takes a list of files names like files() and returns the longest directory name common to all elements. REPOSITORY rHG

D3553: notify: add option to include function names in the diff output

2018-05-17 Thread joerg.sonnenberger (Joerg Sonnenberger)
This revision was automatically updated to reflect the committed changes. Closed by commit rHGd1134ca5b1a3: notify: add option to include function names in the diff output (authored by joerg.sonnenberger, committed by ). CHANGED PRIOR TO COMMIT

D3553: notify: add option to include function names in the diff output

2018-05-16 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 8715. joerg.sonnenberger edited the summary of this revision. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D3553?vs=8673=8715 REVISION DETAIL https://phab.mercurial-scm.org/D3553 AFFECTED FILES

D3557: commit: add new close-branch command

2018-05-21 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added a comment. It doesn't seem to fit the argument schema for `hg branch` at all. I'm open for better places, but I couldn't think of a consistent place. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D3557 To: joerg.sonnenberger,

D3557: commit: add new close-branch command

2018-05-25 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added a comment. If we want to go with a `--close` flag, I think the most natural place would actually be `hg heads`. This is not really a branch operation after all, but about cutting off heads. At the same time, none of those options would allow specifying a commit

D3439: templatefilters: add commonprefix

2018-06-12 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added a comment. In https://phab.mercurial-scm.org/D3439#58405, @martinvonz wrote: > Do you think we should call it `commonpath()` or `commondir()` instead in case we want `commonprefix()` to work for any string in the future (and not care about path separators)?

D3557: extensions: new closehead module for closing arbitrary heads

2018-06-03 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 8963. joerg.sonnenberger edited the summary of this revision. joerg.sonnenberger retitled this revision from "commit: add new close-branch command" to "extensions: new closehead module for closing arbitrary heads". REPOSITORY rHG Mercurial

D3439: templatefilters: add commonprefix

2018-06-01 Thread joerg.sonnenberger (Joerg Sonnenberger)
This revision was automatically updated to reflect the committed changes. Closed by commit rHG56dd15178190: templatefilters: add commonprefix (authored by joerg.sonnenberger, committed by ). CHANGED PRIOR TO COMMIT https://phab.mercurial-scm.org/D3439?vs=8614=8946#toc REPOSITORY rHG

D3557: extensions: new closehead module for closing arbitrary heads

2018-07-01 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 9399. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D3557?vs=8963=9399 REVISION DETAIL https://phab.mercurial-scm.org/D3557 AFFECTED FILES hgext/closehead.py tests/test-close-head.t

D3557: extensions: new closehead module for closing arbitrary heads

2018-07-01 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 9400. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D3557?vs=9399=9400 REVISION DETAIL https://phab.mercurial-scm.org/D3557 AFFECTED FILES hgext/closehead.py tests/test-close-head.t

D1856: wireproto: support for pullbundles

2018-01-17 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger marked an inline comment as done. joerg.sonnenberger added a comment. In https://phab.mercurial-scm.org/D1856#31624, @indygreg wrote: > This is looking **much** better! > > There are some places where the code doesn't abide by our (IMO lousy) mergeallthewords

D1856: wireproto: support for pullbundles

2018-01-17 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 4853. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D1856?vs=4846=4853 REVISION DETAIL https://phab.mercurial-scm.org/D1856 AFFECTED FILES hgext/clonebundles.py mercurial/bundle2.py

D1856: wireproto: support for pullbundles

2018-01-16 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 4846. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D1856?vs=4844=4846 REVISION DETAIL https://phab.mercurial-scm.org/D1856 AFFECTED FILES hgext/clonebundles.py mercurial/bundle2.py

D1856: wireproto: support for pullbundles

2018-01-16 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 4844. joerg.sonnenberger edited the summary of this revision. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D1856?vs=4835=4846 REVISION DETAIL https://phab.mercurial-scm.org/D1856 AFFECTED FILES

D1880: blackbox: if --debug is used, also trace ui.debug() calls

2018-01-18 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 4902. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D1880?vs=4865=4902 REVISION DETAIL https://phab.mercurial-scm.org/D1880 AFFECTED FILES hgext/blackbox.py tests/blackbox-readonly-dispatch.py

D1880: blackbox: if --debug is used, also trace ui.debug() calls

2018-01-18 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger marked an inline comment as done. joerg.sonnenberger added inline comments. INLINE COMMENTS > yuja wrote in blackbox.py:136 > These arguments can't be passed directly to `.log()`. > `.log()` takes a format string and its parameters, whereas `.debug()` > takes a list of

D1880: blackbox: if --debug is used, also trace ui.debug() calls

2018-01-18 Thread joerg.sonnenberger (Joerg Sonnenberger)
This revision was automatically updated to reflect the committed changes. joerg.sonnenberger marked an inline comment as done. Closed by commit rHG853bf7d90804: blackbox: if --debug is used, also trace ui.debug() calls (authored by joerg.sonnenberger, committed by ). REPOSITORY rHG Mercurial

D1862: wireproto: split streamres into legacy and modern case

2018-01-18 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 4931. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D1862?vs=4837=4931 REVISION DETAIL https://phab.mercurial-scm.org/D1862 AFFECTED FILES hgext/largefiles/proto.py mercurial/hgweb/protocol.py

D1880: blackbox: if --debug is used, also trace ui.debug() calls

2018-01-18 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 4903. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D1880?vs=4902=4903 REVISION DETAIL https://phab.mercurial-scm.org/D1880 AFFECTED FILES hgext/blackbox.py tests/blackbox-readonly-dispatch.py

D1856: wireproto: support for pullbundles

2018-01-15 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 4833. joerg.sonnenberger edited the summary of this revision. joerg.sonnenberger retitled this revision from "wireproto: server-side support for pullbundles" to "wireproto: support for pullbundles". REPOSITORY rHG Mercurial CHANGES SINCE LAST

D1857: pull: re-run discovery and pullbundle2 if server didn't send all heads

2018-01-15 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger abandoned this revision. joerg.sonnenberger added a comment. Merging into the parent review. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D1857 To: joerg.sonnenberger, #hg-reviewers, indygreg Cc: indygreg, mercurial-devel

D1856: wireproto: support for pullbundles

2018-01-15 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 4835. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D1856?vs=4833=4835 REVISION DETAIL https://phab.mercurial-scm.org/D1856 AFFECTED FILES mercurial/bundle2.py mercurial/configitems.py

D1862: wireproto: split streamres into legacy and modern case

2018-01-15 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY A couple of commands currently require transmission of uncompressed frames with the old MIME type. Split this case from streamres into a new

D1856: wireproto: server-side support for pullbundles

2018-01-14 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 4816. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D1856?vs=4811=4816 REVISION DETAIL https://phab.mercurial-scm.org/D1856 AFFECTED FILES mercurial/configitems.py mercurial/help/config.txt

D1856: wireproto: server-side support for pullbundles

2018-01-14 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added a comment. For my test case, which is a bundle of all changes in the NetBSD repo before 2014 and a yearly bundle afterwards until 2018/1/1 and normal pull for the rest, find_pullbundle needs less than 0.5s of CPU time in this iteration when it matches. After the

D1857: pull: re-run discovery and pullbundle2 if server didn't send all heads

2018-01-14 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 4824. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D1857?vs=4813=4824 REVISION DETAIL https://phab.mercurial-scm.org/D1857 AFFECTED FILES mercurial/exchange.py mercurial/wireproto.py

D1856: wireproto: server-side support for pullbundles

2018-01-14 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added a comment. > I wish we could find a way to send multiple, inline, pre-generated bundles in one response. However, the existing design of compression within the bundle2 format doesn't easily facilitate this. We should think long and hard about whether to implement

D1862: wireproto: split streamres into legacy and modern case

2018-01-19 Thread joerg.sonnenberger (Joerg Sonnenberger)
This revision was automatically updated to reflect the committed changes. Closed by commit rHGa39a9df7ecca: wireproto: split streamres into legacy and modern case (authored by joerg.sonnenberger, committed by ). REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE

D1941: mdiff: explicitly compute places for the newline marker

2018-01-26 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added a comment. No, the change to yield a bool first is not strictly necessary for the rest of the logic. But it cheaply kills the need for the `rewindhunk` generator, i.e. it cuts a layer of indirection cheaply. REPOSITORY rHG Mercurial REVISION DETAIL

D1941: mdiff: explicitly compute places for the newline marker

2018-01-25 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D1941 AFFECTED FILES mercurial/mdiff.py CHANGE DETAILS diff --git a/mercurial/mdiff.py

D1941: mdiff: explicitly compute places for the newline marker

2018-01-25 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added a comment. I don't completely trust my numbers here, but it seems to give at least 3-4% for diffing netbsd-7 and netbsd-8. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D1941 To: joerg.sonnenberger, #hg-reviewers Cc: mercurial-devel

D1940: patch: avoid repeated binary checks if all files in a patch are text

2018-01-26 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added a comment. I haven't seen a performance difference for regular runs, but it does show up in profiles, so eliminating it avoids wasting mental power by developers down the line. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D1940 To:

D1942: mdiff: remove rewindhunk by yielding a bool first to indicate data

2018-01-26 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D1942 AFFECTED FILES mercurial/mdiff.py CHANGE DETAILS diff --git a/mercurial/mdiff.py

D1941: mdiff: explicitly compute places for the newline marker

2018-01-26 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 5008. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D1941?vs=5007=5008 REVISION DETAIL https://phab.mercurial-scm.org/D1941 AFFECTED FILES mercurial/mdiff.py CHANGE DETAILS diff --git

D1855: explicitly kill server processes

2018-01-17 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added a comment. It was preparation for more tests here. Since I am moving them to a separate file now, I'm not really attached to it at all. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D1855 To: joerg.sonnenberger, #hg-reviewers, indygreg

D1856: wireproto: server-side support for pullbundles

2018-01-14 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 4826. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D1856?vs=4816=4826 REVISION DETAIL https://phab.mercurial-scm.org/D1856 AFFECTED FILES mercurial/configitems.py mercurial/help/config.txt

D1938: [ui] Improve ui.write performance when not coloring on Windows

2018-01-25 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY For ``hg diff``, ui.write appears as super hot in the profile with up to 60% time spend in it for larger diffs. Introduce two predicates to decide if

D1938: ui: Improve ui.write performance when not coloring on Windows

2018-01-25 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 5003. joerg.sonnenberger retitled this revision from "[ui] Improve ui.write performance when not coloring on Windows" to "ui: Improve ui.write performance when not coloring on Windows". REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE

D1939: ui: Improve performance for multi-component writes

2018-01-25 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY It is more efficient to pass down one large string to the output streams than many small ones. For a ``hg diff`` test case, it improves time from

D1938: ui: Improve ui.write performance when not coloring on Windows

2018-01-25 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 5005. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D1938?vs=5003=5005 REVISION DETAIL https://phab.mercurial-scm.org/D1938 AFFECTED FILES mercurial/cmdutil.py mercurial/ui.py CHANGE DETAILS diff

D1938: ui: Improve ui.write performance when not coloring on Windows

2018-01-25 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added inline comments. INLINE COMMENTS > cmdutil.py:1627 > +args = [iter(iterable)] * n > +return izip_longest(*args, fillvalue=('', '')) > + The grouping is necessary to avoid computing the full diff in memory with the associated memory use. Turns out

D1940: patch: avoid repeated binary checks if all files in a patch are text

2018-01-25 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D1940 AFFECTED FILES mercurial/mdiff.py mercurial/patch.py CHANGE DETAILS diff --git

D1855: explicitly kill server processes

2018-01-12 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D1855 AFFECTED FILES tests/test-pull-r.t CHANGE DETAILS diff --git a/tests/test-pull-r.t

D1856: wireproto: server-side support for pullbundles

2018-01-12 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY Pullbundles are similar to clonebundles, but served as normal inline bundle streams. They are almost transparent to the client -- the only visible

D1855: explicitly kill server processes

2018-01-12 Thread joerg.sonnenberger (Joerg Sonnenberger)
This revision was automatically updated to reflect the committed changes. Closed by commit rHG5bda7bd29688: explicitly kill server processes (authored by joerg.sonnenberger, committed by ). REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D1855?vs=4809=4814

D1857: pull: re-run discovery and pullbundle2 if server didn't send all heads

2018-01-12 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added a comment. This is a proof-of-concept. There is an interaction with obsoletion that I am still trying to understand (and fix). REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D1857 To: joerg.sonnenberger, #hg-reviewers Cc:

D1857: pull: re-run discovery and pullbundle2 if server didn't send all heads

2018-01-12 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 4813. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D1857?vs=4812=4813 REVISION DETAIL https://phab.mercurial-scm.org/D1857 AFFECTED FILES mercurial/exchange.py tests/test-pull-r.t CHANGE DETAILS

D1856: wireproto: server-side support for pullbundles

2018-01-12 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 4811. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D1856?vs=4810=4811 REVISION DETAIL https://phab.mercurial-scm.org/D1856 AFFECTED FILES mercurial/configitems.py mercurial/help/config.txt

D1857: pull: re-run discovery and pullbundle2 if server didn't send all heads

2018-01-12 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D1857 AFFECTED FILES mercurial/exchange.py tests/test-pull-r.t CHANGE DETAILS diff --git

D1850: hgweb: when no agreement on compression can be found, fail for v2

2018-01-12 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY When the client supports v2 responses, the fallback to the legacy response is undesirable. If the zlib is acceptable for the client, it should have

D1939: ui: Improve performance for multi-component writes

2018-02-03 Thread joerg.sonnenberger (Joerg Sonnenberger)
This revision was automatically updated to reflect the committed changes. Closed by commit rHGe49c39ffeac2: ui: improve performance for multi-component writes (authored by joerg.sonnenberger, committed by ). REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE

D1944: wireproto: provide accessors for client capabilities

2018-01-27 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY For HTTP, this refactors the existing logic, including the parsing of the compression engine capability. For SSH, this adds a ssh-only capability

D1944: wireproto: provide accessors for client capabilities

2018-01-27 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added inline comments. INLINE COMMENTS > sshserver.py:74 > + > +def do_protocaps(self): > +"""ssh-specific command for sending the client capabilities So this function triggers the underscore function name check, even if the support for this kind of naming is

D1944: wireproto: provide accessors for client capabilities

2018-01-28 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added inline comments. INLINE COMMENTS > mharbison72 wrote in sshserver.py:74 > See > https://phab.mercurial-scm.org/rHGbf2db35a6fe7a02b69eaa0e35708cf0044d73510 > for an example of # no-check-commit. Thanks, that answers half of the question. This is an internal interface

D1945: tests: refactor common bundle2 capabilities

2018-01-28 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D1945 AFFECTED FILES tests/common-pattern.py tests/test-http-bad-server.t CHANGE DETAILS

D1941: mdiff: explicitly compute places for the newline marker

2018-02-01 Thread joerg.sonnenberger (Joerg Sonnenberger)
This revision was automatically updated to reflect the committed changes. Closed by commit rHGa9d07bd8f758: mdiff: explicitly compute places for the newline marker (authored by joerg.sonnenberger, committed by ). REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE

D1942: mdiff: remove rewindhunk by yielding a bool first to indicate data

2018-02-01 Thread joerg.sonnenberger (Joerg Sonnenberger)
This revision was automatically updated to reflect the committed changes. Closed by commit rHG6a33e81e4c5e: mdiff: remove rewindhunk by yielding a bool first to indicate data (authored by joerg.sonnenberger, committed by ). REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE

D1940: patch: avoid repeated binary checks if all files in a patch are text

2018-02-01 Thread joerg.sonnenberger (Joerg Sonnenberger)
This revision was automatically updated to reflect the committed changes. Closed by commit rHG079b27b5a869: patch: avoid repeated binary checks if all files in a patch are text (authored by joerg.sonnenberger, committed by ). REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE

D2022: ui: improve ui.write performance when not coloring on Windows

2018-02-04 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 5181. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D2022?vs=5177=5181 REVISION DETAIL https://phab.mercurial-scm.org/D2022 AFFECTED FILES mercurial/logcmdutil.py mercurial/ui.py CHANGE DETAILS

D2022: ui: improve ui.write performance when not coloring on Windows

2018-02-03 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D2022 AFFECTED FILES mercurial/logcmdutil.py mercurial/ui.py CHANGE DETAILS diff --git

D2095: clone: updates the help text for hg clone -r (issue5654) [bugzilla] and hg clone -b

2018-02-11 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added a comment. There was a longish discussion on IRC about this. The problem is that the flags by themselves do not document the interaction of -r and -b or multiple instances of either at all. The change was a compromise trying to address that. REPOSITORY rHG

D2022: ui: improve ui.write performance when not coloring on Windows

2018-02-07 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 5293. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D2022?vs=5181=5293 REVISION DETAIL https://phab.mercurial-scm.org/D2022 AFFECTED FILES mercurial/logcmdutil.py mercurial/ui.py CHANGE DETAILS

D2022: ui: improve ui.write performance when not coloring on Windows

2018-02-07 Thread joerg.sonnenberger (Joerg Sonnenberger)
This revision was automatically updated to reflect the committed changes. Closed by commit rHG0ff41ced4c12: diff: improve ui.write performance when not coloring on Windows (authored by joerg.sonnenberger, committed by ). CHANGED PRIOR TO COMMIT

D2061: sshpeer: initial definition and implementation of new SSH protocol

2018-02-07 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added inline comments. INLINE COMMENTS > test-ssh-proto.t:396 > + > upgrade 2e82ab3f-9ce3-4b4e-8f8c-6fd1c0e9e23a > proto=irrelevant1%2Cirrelevant2 > + > hello > + > between I'm a bit concerned about the order here. I would prefer to stay with the spirit of the original

D4297: util: improve handling of truncated compressed streams

2018-08-16 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY If the compressed stream is over as marked by the reader providing nothing new and the compression engine is not providing data, bail out. This can

D4313: pycompat: wrap xrange for py2 to provide efficient __contains__

2018-08-16 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY The C implementation of xrange in Python 2 provides a O(n) membership test, which is noticable on pull-based clones of large repositories. Avoid this

D4297: util: improve handling of truncated compressed streams

2018-08-20 Thread joerg.sonnenberger (Joerg Sonnenberger)
This revision was automatically updated to reflect the committed changes. Closed by commit rHG1af95139e5ec: util: improve handling of truncated compressed streams (authored by joerg.sonnenberger, committed by ). REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE

D4313: pycompat: wrap xrange for py2 to provide efficient __contains__

2018-08-20 Thread joerg.sonnenberger (Joerg Sonnenberger)
This revision was automatically updated to reflect the committed changes. Closed by commit rHG45e05d39d9ce: pycompat: wrap xrange for py2 to provide efficient __contains__ (authored by joerg.sonnenberger, committed by ). REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE

D4313: pycompat: wrap xrange for py2 to provide efficient __contains__

2018-08-17 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger added a comment. It's used in reportphasechanges and that accidently turned O(n) into O(n^2). I noticed it when trying a clone --narrow of the NetBSD repo, since it hung for quite a while in that loop. REPOSITORY rHG Mercurial REVISION DETAIL

D1945: tests: refactor common bundle2 capabilities

2018-07-16 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 9606. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D1945?vs=5012=9606 REVISION DETAIL https://phab.mercurial-scm.org/D1945 AFFECTED FILES tests/common-pattern.py tests/test-http-bad-server.t CHANGE

D3937: ssh: avoid reading beyond the end of stream when using compression

2018-07-16 Thread joerg.sonnenberger (Joerg Sonnenberger)
This revision was automatically updated to reflect the committed changes. Closed by commit rHG27391d74aaa2: ssh: avoid reading beyond the end of stream when using compression (authored by joerg.sonnenberger, committed by ). REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE

D3933: pullbundle: fix handling of gzip bundlespecs

2018-07-13 Thread joerg.sonnenberger (Joerg Sonnenberger)
This revision was automatically updated to reflect the committed changes. Closed by commit rHG7e4a856a4f05: pullbundle: fix handling of gzip bundlespecs (authored by joerg.sonnenberger, committed by ). REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE

D1945: tests: refactor common bundle2 capabilities

2018-07-18 Thread joerg.sonnenberger (Joerg Sonnenberger)
This revision was automatically updated to reflect the committed changes. Closed by commit rHG88be288e8ac1: tests: refactor common bundle2 capabilities (authored by joerg.sonnenberger, committed by ). REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE

D3893: ui: make the large file warning limit fully configurable

2018-07-06 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY While add --large can be used to override it selectively, often enough the user simply doesn't care about machines with less than 100MB RAM or so, so

D3893: ui: make the large file warning limit fully configurable

2018-07-07 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 9469. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D3893?vs=9464=9469 REVISION DETAIL https://phab.mercurial-scm.org/D3893 AFFECTED FILES mercurial/configitems.py mercurial/context.py

D3937: ssh: avoid reading beyond the end of stream when using compression

2018-07-12 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger updated this revision to Diff 9576. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D3937?vs=9573=9576 REVISION DETAIL https://phab.mercurial-scm.org/D3937 AFFECTED FILES mercurial/sshpeer.py mercurial/util.py CHANGE DETAILS diff

D3933: pullbundle: fix handling of gzip bundlespecs

2018-07-12 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D3933 AFFECTED FILES mercurial/wireprotov1server.py tests/test-pull-bundle.t CHANGE

D3937: ssh: avoid reading beyond the end of stream when using compression

2018-07-12 Thread joerg.sonnenberger (Joerg Sonnenberger)
joerg.sonnenberger created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY Compressed streams can be used as part of getbundle. The normal read() operation of bufferedinputpipe will try to fulfill the request exactly and can

  1   2   3   4   >