Wed, 10 Jan 2018 22:23:34 -0500 fileset: add a lightweight file filtering language
Matt Harbison <matt_harbison@yahoo.com> [Wed, 10 Jan 2018 22:23:34 -0500] rev 35616
fileset: add a lightweight file filtering language This patch was inspired by one that Jun Wu authored for the fb-experimental repo, to avoid using matcher for efficiency[1]. We want a way to specify what files will be converted to LFS at commit time. And per discussion, we also want to specify what files to skip, text diff, or merge in another config option. The current `lfs.threshold` config option could not satisfy complex needs. I'm putting it in a core package because Augie floated the idea of also using it for narrow and sparse. Yuya suggested farming out to fileset.parse(), which added support for more symbols. The only fileset element not supported here is 'negate'. (List isn't supported by filesets either.) I also changed the 'always' token to the 'all()' predicate for consistency, and introduced 'none()' to improve readability in a future tracked file based config. The extension operator was changed from '.' to '**', to match how recursive path globs are specified. Finally, I changed the path matcher from '/' to 'path:' at Yuya's suggestion, for consistency with matcher. Unfortunately, ':' is currently reserved in filesets, so this has to be quoted to be processed as a string instead of a symbol[2]. We should probably revisit that, because it's seriously ugly. But it's only used by an experimental extension, and I think using a file based config for LFS may drive some more tweaks, so I'm settling for this for now. I reserved all of the glob characters in fileset except '.' and '_' for the extension test because those are likely valid extension characters. Sample filter settings: all() # everything size(">20MB") # larger than 20MB !**.txt # except for .txt files **.zip | **.tar.gz | **.7z # some types of compressed files "path:bin" # files under "bin" in the project root [1] https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-December/109387.html [2] https://www.mercurial-scm.org/pipermail/mercurial-devel/2018-January/109729.html
Wed, 10 Jan 2018 22:35:08 -0500 fileset: split the logic for matching a size expression to a separate method
Matt Harbison <matt_harbison@yahoo.com> [Wed, 10 Jan 2018 22:35:08 -0500] rev 35615
fileset: split the logic for matching a size expression to a separate method This will be used in the next patch to build a simple filtering language, but where we won't have an mctx.
Fri, 12 Jan 2018 23:13:38 -0500 lfs: drop deprecated remote store config options
Matt Harbison <matt_harbison@yahoo.com> [Fri, 12 Jan 2018 23:13:38 -0500] rev 35614
lfs: drop deprecated remote store config options The last of these were removed from fb-experimental in 86884a51e9aa, and we might as well clean this up before the freeze.
Fri, 12 Jan 2018 18:11:05 +0530 py3: use bytes instead of pycompat.bytestr
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 12 Jan 2018 18:11:05 +0530] rev 35613
py3: use bytes instead of pycompat.bytestr Follow up for 35fb3367f72d. Differential Revision: https://phab.mercurial-scm.org/D1854
Fri, 12 Jan 2018 17:10:55 +0100 test-pull-r: explicitly kill server processes
Joerg Sonnenberger <joerg@bec.de> [Fri, 12 Jan 2018 17:10:55 +0100] rev 35612
test-pull-r: explicitly kill server processes Differential Revision: https://phab.mercurial-scm.org/D1855
Fri, 05 Jan 2018 22:28:06 +0530 bookmarks: add bookmarks to hidden revs if directaccess config is set
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 05 Jan 2018 22:28:06 +0530] rev 35611
bookmarks: add bookmarks to hidden revs if directaccess config is set This patch adds support to add bookmarks to hidden revs if `experimental.directaccessi=True` config is set. A warning is also printed saying "accessing hidden changeset <revhash>". Differential Revision: https://phab.mercurial-scm.org/D1813
Fri, 12 Jan 2018 11:15:41 +0000 visibility: pass a normal repo to _getfilteredreason
Boris Feld <boris.feld@octobus.net> [Fri, 12 Jan 2018 11:15:41 +0000] rev 35610
visibility: pass a normal repo to _getfilteredreason There is no reason to pass an unfiltered-repo to _getfilteredreason and successorssets, so use a normal repo instead. Differential Revision: https://phab.mercurial-scm.org/D1853
Fri, 12 Jan 2018 11:10:18 +0000 visibility: make the filtered message translatable
Boris Feld <boris.feld@octobus.net> [Fri, 12 Jan 2018 11:10:18 +0000] rev 35609
visibility: make the filtered message translatable Introduce a filtered message table to ease translation of these messages. Differential Revision: https://phab.mercurial-scm.org/D1852
Fri, 12 Jan 2018 11:09:04 +0000 visibility: fix a comment introduced before which is not up-to-date
Boris Feld <boris.feld@octobus.net> [Fri, 12 Jan 2018 11:09:04 +0000] rev 35608
visibility: fix a comment introduced before which is not up-to-date 265cd9e19d26 introduced a comment in _filterederror that was not updated with the latest iterations of the patch, fix the comment. Differential Revision: https://phab.mercurial-scm.org/D1851
Wed, 10 Jan 2018 19:24:58 -0800 rust: avoid redundant 'static lifetime
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 10 Jan 2018 19:24:58 -0800] rev 35607
rust: avoid redundant 'static lifetime 'static is apparently automatic for const variables. Differential Revision: https://phab.mercurial-scm.org/D1846
(0) -30000 -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 +3000 +10000 tip