Fri, 24 Mar 2017 14:59:19 -0700 statfs: change Linux feature detection
Jun Wu <quark@fb.com> [Fri, 24 Mar 2017 14:59:19 -0700] rev 31627
statfs: change Linux feature detection Previously we check three things: "statfs" function, "linux/magic.h" and "sys/vfs.h" headers. But we didn't check "struct statfs" or the "f_type" field. That means if a system has "statfs" but "struct statfs" is not defined in the two header files we check, or defined without the "f_type" field, the compilation will fail. This patch combines the checks (2 headers + 1 function + 1 field) together and sets "HAVE_LINUX_STATFS". It makes setup.py faster (less checks), and more reliable (immutable to the issue above).
Fri, 24 Mar 2017 16:20:10 -0700 rebase: don't require destination if commands.rebase.requiredest=False
Martin von Zweigbergk <martinvonz@google.com> [Fri, 24 Mar 2017 16:20:10 -0700] rev 31626
rebase: don't require destination if commands.rebase.requiredest=False
Fri, 24 Mar 2017 16:20:04 -0700 tests: add tests with commands.{update,rebase}.requiredest=False
Martin von Zweigbergk <martinvonz@google.com> [Fri, 24 Mar 2017 16:20:04 -0700] rev 31625
tests: add tests with commands.{update,rebase}.requiredest=False This shows how rebase is currently broken with commands.rebase.requiredest=False.
Sun, 12 Mar 2017 12:33:35 -0700 rebase: move state serialization to use unfiltered repo
Durham Goode <durham@fb.com> [Sun, 12 Mar 2017 12:33:35 -0700] rev 31624
rebase: move state serialization to use unfiltered repo Now that rebasestate is serialized as part of the transaction, the repo state it sees is the version at the end of the transaction, which may have hidden nodes. Therefore, it's possible parts of the rebase commit set are no longer visible by the time the transaction is closing, which causes a filtered revision error in this code. I don't think state serialization should be blocked from accessing commits it knows exist, especially if all it's trying to do is get the hex of them, so let's use an unfiltered repo here. Unfortunately, the only known repro is with the fbamend Facebook extension, so I'm not sure how to repro it in core Mercurial for a test.
Fri, 24 Mar 2017 22:29:22 +0900 largefiles: avoid redundant standin() invocations
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 24 Mar 2017 22:29:22 +0900] rev 31623
largefiles: avoid redundant standin() invocations There are some code paths, which apply standin() on same value multilpe times instead of using already standin()-ed value. "fstandin" is common name for "path to standin file" in lfutil.py, to avoid shadowing "standin()".
Fri, 24 Mar 2017 22:29:22 +0900 largefiles: replace hashrepofile by hashfile (API)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 24 Mar 2017 22:29:22 +0900] rev 31622
largefiles: replace hashrepofile by hashfile (API) There is only one user for the former, and repo.wjoin()-ed value is alread known by that user.
Fri, 24 Mar 2017 22:26:34 +0900 largefiles: call readstandin() with changectx itself instead of rev or node
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 24 Mar 2017 22:26:34 +0900] rev 31621
largefiles: call readstandin() with changectx itself instead of rev or node readstandin() takes "node" argument to get changectx by "repo[node]". There are some readstandin() invocations, which use ctx.node(), ctx.rev(), or '.' as "node" argument above, even though corresponded changectx object is already looked up on caller side. This patch calls readstandin() with already known changectx itself, to avoid meaningless re-construction of changectx (indirect case via copytostore() is also included). BTW, copytostore() uses "rev" argument only for readstandin() invocation. Therefore, this patch also renames it to "revorctx" to indicate that it can take not only revision ID or so but also changectx, for readability.
Fri, 24 Mar 2017 22:24:59 +0900 largefiles: omit redundant splitstandin() invocations
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 24 Mar 2017 22:24:59 +0900] rev 31620
largefiles: omit redundant splitstandin() invocations There are 3 splitstandin() invocations in updatestandin() for same "standin" value.
Fri, 24 Mar 2017 22:24:59 +0900 largefiles: replace splitstandin() by isstandin() to omit str creation
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 24 Mar 2017 22:24:59 +0900] rev 31619
largefiles: replace splitstandin() by isstandin() to omit str creation If splitstandin()-ed str itself isn't used, isstandin() should be used instead of it, to omit meaningless str creation.
Fri, 24 Mar 2017 22:24:58 +0900 largefiles: omit redundant isstandin() before splitstandin()
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 24 Mar 2017 22:24:58 +0900] rev 31618
largefiles: omit redundant isstandin() before splitstandin() There are many isstandin() invocations before splitstandin(). The former examines whether specified path starts with ".hglf/". The latter returns after ".hglf/" of specified path if it starts with that prefix, or returns None otherwise. Therefore, value returned by splitstandin() can be used for replacement of preceding isstandin(), and this replacement can omit redundant string comparison after isstandin().
Fri, 24 Mar 2017 22:13:23 +0900 misc: update descriptions about removed file for filectxfn
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 24 Mar 2017 22:13:23 +0900] rev 31617
misc: update descriptions about removed file for filectxfn Since 650b5b6e75ed, filectxfn for memctx should return None for removed file instead of raising IOError.
Mon, 20 Mar 2017 17:58:44 -0400 osx: always purge build/mercurial before starting build
Augie Fackler <augie@google.com> [Mon, 20 Mar 2017 17:58:44 -0400] rev 31616
osx: always purge build/mercurial before starting build This prevents stray files from previous builds from polluting newer builds.
Mon, 20 Mar 2017 17:49:47 -0400 osx: use more paranoid quoting in test
Augie Fackler <augie@google.com> [Mon, 20 Mar 2017 17:49:47 -0400] rev 31615
osx: use more paranoid quoting in test
Mon, 20 Mar 2017 17:50:05 -0400 osx: install completion scripts using install(1) to avoid umask badness
Augie Fackler <augie@google.com> [Mon, 20 Mar 2017 17:50:05 -0400] rev 31614
osx: install completion scripts using install(1) to avoid umask badness This actually fixes some tests that were showing us umask badness that had been overlooked.
Fri, 24 Mar 2017 08:37:26 -0700 merge with stable
Martin von Zweigbergk <martinvonz@google.com> [Fri, 24 Mar 2017 08:37:26 -0700] rev 31613
merge with stable
Sun, 19 Mar 2017 01:47:56 -0400 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com> [Sun, 19 Mar 2017 01:47:56 -0400] rev 31612
py3: prove `hg {add,addremove,commit} all work We can't do a second commit in a repo yet, because pure-Python bdiff is broken on Python 3. That is probably a good next step.
Thu, 23 Mar 2017 10:46:50 -0400 revsetlang: perform quoting using ui.escapestr instead of repr()
Augie Fackler <augie@google.com> [Thu, 23 Mar 2017 10:46:50 -0400] rev 31611
revsetlang: perform quoting using ui.escapestr instead of repr() This changes one of the doctest results, but I'm pretty sure on inspection that it's an equivalent result.
Thu, 23 Mar 2017 10:41:34 -0400 revsetlang: add docstring with some tests to _quote
Augie Fackler <augie@google.com> [Thu, 23 Mar 2017 10:41:34 -0400] rev 31610
revsetlang: add docstring with some tests to _quote
Sun, 19 Mar 2017 01:14:19 -0400 revsetlang: move quoting function to not be a closure
Augie Fackler <augie@google.com> [Sun, 19 Mar 2017 01:14:19 -0400] rev 31609
revsetlang: move quoting function to not be a closure I'm about to change the implementation here and I'd like to add some doctests, which means this needs to not be hidden inside another function.
Thu, 23 Mar 2017 10:33:20 -0400 revsetlang: portably bytestring-ify another pair of int() calls
Augie Fackler <augie@google.com> [Thu, 23 Mar 2017 10:33:20 -0400] rev 31608
revsetlang: portably bytestring-ify another pair of int() calls
Thu, 23 Mar 2017 21:23:21 -0700 checkcode: enforce lowercase for extension docstring title
Jun Wu <quark@fb.com> [Thu, 23 Mar 2017 21:23:21 -0700] rev 31607
checkcode: enforce lowercase for extension docstring title This will ensure new extensions are consistent and `hg help -e` has a consistent output. I have to add a new group since the normal "pypats" will be filtered by "pyfilters", which will remove comments and docstrings.
Thu, 23 Mar 2017 21:16:55 -0700 logtoprocess: use lowercase for docstring title
Jun Wu <quark@fb.com> [Thu, 23 Mar 2017 21:16:55 -0700] rev 31606
logtoprocess: use lowercase for docstring title
Thu, 23 Mar 2017 21:16:29 -0700 journal: use lowercase for docstring title
Jun Wu <quark@fb.com> [Thu, 23 Mar 2017 21:16:29 -0700] rev 31605
journal: use lowercase for docstring title See the previous patch for why.
Thu, 23 Mar 2017 21:15:39 -0700 automv: use lowercase for docstring title
Jun Wu <quark@fb.com> [Thu, 23 Mar 2017 21:15:39 -0700] rev 31604
automv: use lowercase for docstring title The first line of docstring is used in `hg help -e`. Use lowercase to be consistent with most extensions.
Thu, 23 Mar 2017 22:31:50 -0700 util: enable hardlink for some BSD-family filesystems
Jun Wu <quark@fb.com> [Thu, 23 Mar 2017 22:31:50 -0700] rev 31603
util: enable hardlink for some BSD-family filesystems Since we can now detect filesystems on FreeBSD and OSX. Add their major filesystems (ufs, zfs for FreeBSD; hfs for OSX) to the hardlink whitelist.
Thu, 23 Mar 2017 22:13:02 -0700 osutil: report fstype for BSD and OSX
Jun Wu <quark@fb.com> [Thu, 23 Mar 2017 22:13:02 -0700] rev 31602
osutil: report fstype for BSD and OSX
Thu, 23 Mar 2017 22:15:36 -0700 setup: use a more strict way to test BSD or OSX's statfs
Jun Wu <quark@fb.com> [Thu, 23 Mar 2017 22:15:36 -0700] rev 31601
setup: use a more strict way to test BSD or OSX's statfs We want to use the `f_fstypename` field to get the filesystem type. Test it directly. The new macro HAVE_BSD_STATFS implys the old HAVE_SYS_MOUNT_H and HAVE_SYS_PARAM_H. So the latter ones are removed.
Thu, 23 Mar 2017 12:03:19 -0700 debugfsinfo: use util.getfstype
Jun Wu <quark@fb.com> [Thu, 23 Mar 2017 12:03:19 -0700] rev 31600
debugfsinfo: use util.getfstype This changes the behavior slightly. It now always prints fstype, regardless of whether osutil.getfstype exists.
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -28 +28 +50 +100 +300 +1000 +3000 +10000 tip