Wed, 03 Feb 2016 17:05:04 +0000 blackbox: store the blackbox ui object instead of the log file
timeless <timeless@mozdev.org> [Wed, 03 Feb 2016 17:05:04 +0000] rev 28247
blackbox: store the blackbox ui object instead of the log file Without this, the last logged entry didn't have access to the repository, and thus couldn't report its version (and especially that an add or similar dirtied it). A side-effect is that one repo leaks until process exit...
Tue, 09 Feb 2016 15:44:13 +0000 blackbox: log dirty state
timeless <timeless@mozdev.org> [Tue, 09 Feb 2016 15:44:13 +0000] rev 28246
blackbox: log dirty state If blackbox.dirty = True, use `+` to indicate dirty repositories.
Tue, 09 Feb 2016 19:16:06 +0000 blackbox: log working directory version
timeless <timeless@mozdev.org> [Tue, 09 Feb 2016 19:16:06 +0000] rev 28245
blackbox: log working directory version Without this, while you could see the list of commands run, it wasn't possible to identify what they were doing, because commads could rely on revsets (including remote input which varies over time).
Mon, 08 Feb 2016 03:37:26 +0000 blackbox: rename fp variable
timeless <timeless@mozdev.org> [Mon, 08 Feb 2016 03:37:26 +0000] rev 28244
blackbox: rename fp variable
Wed, 03 Feb 2016 15:41:31 +0000 blackbox: avoid creating multiple file handles for a single log
timeless <timeless@mozdev.org> [Wed, 03 Feb 2016 15:41:31 +0000] rev 28243
blackbox: avoid creating multiple file handles for a single log There are multiple ui objects in Mercurial that can relate to a repository, before this change, each one would have its own file pointer, which results in unfortunate logging behavior. Also, any log rotation results would be bad because only the active blackboxui object's file pointer would be refreshed. Note that this does not prevent two long running hg commands for the same repository from causing problems.
Wed, 24 Feb 2016 20:04:32 +0000 tests: mock getpid to reduce glob usage
timeless <timeless@mozdev.org> [Wed, 24 Feb 2016 20:04:32 +0000] rev 28242
tests: mock getpid to reduce glob usage Updating tests based on ac49ecb2a897.
Mon, 22 Feb 2016 14:43:14 -0800 changegroup: drop special-casing of flat manifests
Martin von Zweigbergk <martinvonz@google.com> [Mon, 22 Feb 2016 14:43:14 -0800] rev 28241
changegroup: drop special-casing of flat manifests Since c08814b48ae5 (changegroup: avoid iterating the whole manifest, 2015-12-04), the manifest linkrev callback iterates over only the files that were touched according the the changeset. Before that change, we iterated over all files returned in manifest.readfast(). That method returns the files in the delta, if the delta parent is a parent, otherwise it returns the full manifest. Most manifest revisions end up using one of the parents as its delta parent, so most of the time, the method returns a short manifest. It seems that that happens often enough that it doesn't really matter; I could not reproduce the timings reported in that change. Since the treemanifest code now works quite differently, and since that code also works correctly for flat manifests, let's drop the special-casing of flat manifests.
Fri, 12 Feb 2016 23:09:09 -0800 changegroup: fix treemanifests on merges
Martin von Zweigbergk <martinvonz@google.com> [Fri, 12 Feb 2016 23:09:09 -0800] rev 28240
changegroup: fix treemanifests on merges The current code for generating treemanifest revisions takes the list of files in the changeset and finds the directories from them. This does not work for merges, since a merge may pick file A from one side and file B from another and neither of them would appear in the changeset's "files" list, but the manifest would still change. Fix this by instead walking the root manifest log for all needed revisions, storing all needed file and subdirectory revisions, then recursively visiting the subdirectories. This also turns out to be faster: cloning a version of hg core converted to treemanifests went from ~28s to ~19s (timing somewhat unfair: before this patch, timed until crash; after this patch, timed until manifests complete). The new algorithm is used only on treemanifest repos. Although it works equally well on flat manifests, we leave the iteration over files in the changeset for flat manifests for now.
Sun, 27 Dec 2015 20:21:37 +0900 templatekw: workaround for utf-8 round-trip of {desc}
Yuya Nishihara <yuya@tcha.org> [Sun, 27 Dec 2015 20:21:37 +0900] rev 28239
templatekw: workaround for utf-8 round-trip of {desc} Though our encoding strategy is best effort, {desc} is a primitive keyword that should be worth enough to try hard to preserve UTF-8 bytes.
Thu, 25 Feb 2016 10:34:31 +0100 test: update test-bundle2-format.t comment
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 25 Feb 2016 10:34:31 +0100] rev 28238
test: update test-bundle2-format.t comment Now that bundle2 is used by default for all exchanges, this comment is obviously out of date. Having deep testing of the API and expected behavior of the format and its processing is still valuable, so the comment is updated.
Wed, 24 Feb 2016 14:24:00 +0000 chg: extract gethgcmd logic to a function
Jun Wu <quark@fb.com> [Wed, 24 Feb 2016 14:24:00 +0000] rev 28237
chg: extract gethgcmd logic to a function gethgcmd is to get original hg (not chg) binary name. This patch extracts the logic from execcmdserver to make it available for the following patch.
Wed, 24 Feb 2016 23:00:33 +0900 destutil: use cached branch information instead of query for efficiency
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 24 Feb 2016 23:00:33 +0900] rev 28236
destutil: use cached branch information instead of query for efficiency Before this patch, calculation of "the tipmost branch head on current branch" uses revset query "max(.::(head() and branch(BRANCH)))", but this isn't efficiency, because: - head() predicate lists up heads on all branches, but - branch() predicate eliminates heads on other branches In addition to it, without "literal:" prefix for branch name, branch(BRANCH) tries to (1) look up BRANCH in "repo.branchmap()" and (2) look up BRANCH as symbol name again, if there is no branch matching against BRANCH. The latter looking up is obviously redundant. This patch uses repo.branchheads(closed=True) to get all branch heads on specified branch instead of "head() and branch(BRANCH)" revset query part. This patch also makes catching RepoLookupError meaningless, because it is only raised by revset predicate "branch()". But "currentbranch in repo.branchmap()" can detect whether currentbranch actually exists or not. Therefore, this patch replaces try/except for RepoLookupError by if/else for "currentbranch in repo.branchmap()".
(0) -10000 -3000 -1000 -300 -100 -12 +12 +100 +300 +1000 +3000 +10000 tip