Tue, 24 Feb 2015 00:04:55 +0900 templater: allow piping generator-type function output to filters
Yuya Nishihara <yuya@tcha.org> [Tue, 24 Feb 2015 00:04:55 +0900] rev 24280
templater: allow piping generator-type function output to filters Template functions use "yield"s assuming that the result will be combined into a string, which means both "f -> str" and "f -> generator" should behave in the same way. Before this patch, piping generator function resulted in a cryptic error. We had to insert "|stringify" in this case. $ hg log --template '{if(author, author)|user}\n' abort: template filter 'userfilter' is not compatible with keyword '[(<function runsymbol at 0x7f5af2e8d8c0>, 'author'), (<function runsymbol at 0x7f5af2e8d8c0>, 'author')]'
Wed, 11 Mar 2015 15:22:34 -0700 record: add new tests for commit interactive (same tests as record)
Laurent Charignon <lcharignon@fb.com> [Wed, 11 Mar 2015 15:22:34 -0700] rev 24279
record: add new tests for commit interactive (same tests as record)
Wed, 11 Mar 2015 15:22:04 -0700 record: add interactive option to the commit command
Laurent Charignon <lcharignon@fb.com> [Wed, 11 Mar 2015 15:22:04 -0700] rev 24278
record: add interactive option to the commit command
Tue, 10 Mar 2015 16:26:13 -0700 manifest: don't let find() look inside manifestdict
Martin von Zweigbergk <martinvonz@google.com> [Tue, 10 Mar 2015 16:26:13 -0700] rev 24277
manifest: don't let find() look inside manifestdict The find() method is currently implemented by looking inside the _lm field of the manifest dict. Future manifests types (tree manifests) may not have such a field, so add a method for getting to the data instead.
Mon, 09 Mar 2015 17:13:22 -0700 largefiles: replace manifestdict.__contains__, don't extend class
Martin von Zweigbergk <martinvonz@google.com> [Mon, 09 Mar 2015 17:13:22 -0700] rev 24276
largefiles: replace manifestdict.__contains__, don't extend class We're soon going to add an alternative manifest class (treemanifest). Rather than extending both those classes by largesfiles versions, let's replace the method on the manifest instances.
Sun, 08 Mar 2015 16:50:57 -0400 files: split reusable implementation into cmdutil for subrepo support
Matt Harbison <matt_harbison@yahoo.com> [Sun, 08 Mar 2015 16:50:57 -0400] rev 24275
files: split reusable implementation into cmdutil for subrepo support
Sun, 08 Mar 2015 16:45:29 -0400 files: use ctx object to access dirstate
Matt Harbison <matt_harbison@yahoo.com> [Sun, 08 Mar 2015 16:45:29 -0400] rev 24274
files: use ctx object to access dirstate This allows the cmdutil method to not need to be passed the repo as well as the ctx.
Tue, 10 Mar 2015 13:56:05 -0700 copies: added manifests to computenonoverlap
Durham Goode <durham@fb.com> [Tue, 10 Mar 2015 13:56:05 -0700] rev 24273
copies: added manifests to computenonoverlap Commit 30219bd46ed7 changed the computenonoverlap api's to not require the manifests. We actually need the manifests in the remotefilelog extension so we can find the file nodes for the various files that change. Let's add it back to the function signature with a note explaining why. This doesn't affect any behavior.
Tue, 10 Mar 2015 17:14:33 -0700 record: move dorecord from record to cmdutil
Laurent Charignon <lcharignon@fb.com> [Tue, 10 Mar 2015 17:14:33 -0700] rev 24272
record: move dorecord from record to cmdutil Part of a serie of patches to move record from hgext to core
Tue, 10 Mar 2015 17:09:07 -0700 record: remove dependency on hg module in record
Laurent Charignon <lcharignon@fb.com> [Tue, 10 Mar 2015 17:09:07 -0700] rev 24271
record: remove dependency on hg module in record Part of a series of patches to move record from hgext to core
Tue, 10 Mar 2015 17:03:40 -0700 record: remove dependency on extensions module in dorecord
Laurent Charignon <lcharignon@fb.com> [Tue, 10 Mar 2015 17:03:40 -0700] rev 24270
record: remove dependency on extensions module in dorecord Part of a series of patches to move record from hgext to core
Tue, 10 Mar 2015 14:42:07 -0700 record: move filterpatch from record to patch
Laurent Charignon <lcharignon@fb.com> [Tue, 10 Mar 2015 14:42:07 -0700] rev 24269
record: move filterpatch from record to patch Part of a series of patches to move record from hgext to core
Tue, 10 Mar 2015 17:34:42 -0700 patch.internalpatch: add a default value for prefix
Siddharth Agarwal <sid0@fb.com> [Tue, 10 Mar 2015 17:34:42 -0700] rev 24268
patch.internalpatch: add a default value for prefix Rev 60c279ab7bd3 adding a parameter here. This breaks third-party extensions like crecord and also makes the issue fairly hard to fix on the extension's side if it wants to retain compatibility across Mercurial versions -- in old versions, the positional argument will be passed into the next unknown argument, which is 'files'. The patch also undoes a change to the record extension that is no longer necessary.
Wed, 11 Mar 2015 07:19:55 -0700 histedit: remove extra histedit constructor call
Durham Goode <durham@fb.com> [Wed, 11 Mar 2015 07:19:55 -0700] rev 24267
histedit: remove extra histedit constructor call In a previous commit we removed the extra histedit object instance being constructed in --continue and --abort. The new --edit-todo missed this fix though (which means the state object it produces doesn't have the locks on it). It's not breaking anything now, but let's go ahead and clean that up before we forget.
Wed, 11 Mar 2015 09:34:22 -0400 color: consolidate cut-and-paste code
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Wed, 11 Mar 2015 09:34:22 -0400] rev 24266
color: consolidate cut-and-paste code This fixes a mild case of cut-and-paste code regarding failing to set terminal modes. This is evident in the win32 comment that is misplaced for the terminfo mode since cset ad6ad51cc0dd. Instead, we refactor this C&P into a small local function.
Mon, 09 Mar 2015 13:16:25 -0700 record: move parsepatch from record to patch
Laurent Charignon <lcharignon@fb.com> [Mon, 09 Mar 2015 13:16:25 -0700] rev 24265
record: move parsepatch from record to patch Part of a series of patches to move record from hgext to core
Mon, 09 Mar 2015 13:14:31 -0700 record: move scanpatch from record to patch
Laurent Charignon <lcharignon@fb.com> [Mon, 09 Mar 2015 13:14:31 -0700] rev 24264
record: move scanpatch from record to patch Part of a series of patches to move record from hgext to core
Mon, 09 Mar 2015 13:09:15 -0700 record: move hunk class from record to patch
Laurent Charignon <lcharignon@fb.com> [Mon, 09 Mar 2015 13:09:15 -0700] rev 24263
record: move hunk class from record to patch Part of a series of patches to move record from hgext to core
Mon, 09 Mar 2015 13:08:19 -0700 record: move countChanges in the hunk class
Laurent Charignon <lcharignon@fb.com> [Mon, 09 Mar 2015 13:08:19 -0700] rev 24262
record: move countChanges in the hunk class Part of a series of patches to move record from hgext to core
Mon, 09 Mar 2015 13:04:50 -0700 record: move header class from record to patch
Laurent Charignon <lcharignon@fb.com> [Mon, 09 Mar 2015 13:04:50 -0700] rev 24261
record: move header class from record to patch Part of a series of patches to move record from hgext to core
Tue, 10 Mar 2015 13:06:38 -0700 cmdutil.tryimportone: allow importing relative patches with --bypass
Siddharth Agarwal <sid0@fb.com> [Tue, 10 Mar 2015 13:06:38 -0700] rev 24260
cmdutil.tryimportone: allow importing relative patches with --bypass
Mon, 09 Mar 2015 18:22:24 -0700 cmdutil.tryimportone: allow importing relative patches into the working dir
Siddharth Agarwal <sid0@fb.com> [Mon, 09 Mar 2015 18:22:24 -0700] rev 24259
cmdutil.tryimportone: allow importing relative patches into the working dir This makes hg import --prefix dir/ (without bypass) work.
Fri, 06 Mar 2015 22:56:19 -0800 commands.import: accept a prefix option
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Mar 2015 22:56:19 -0800] rev 24258
commands.import: accept a prefix option The --prefix option is meant to be relative to the root rather than the current working directory. This is for consistency with the rest of 'hg import' -- paths in patches are otherwise considered to be relative to the root. In upcoming patches we'll hook this option up to the patch functions. --exact with --prefix is currently disallowed because I can't really come up with sensible semantics for it, especially when only part of the patch is preserved.
Tue, 10 Mar 2015 11:01:10 -0700 test: make version based test-extensions failure more explanatory
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 10 Mar 2015 11:01:10 -0700] rev 24257
test: make version based test-extensions failure more explanatory A buggy __version__ content (usually from setup.py's hg being unable to read the repo) can make this test fails in an obscure manner. We make the root of the failure more explicit.
Mon, 09 Mar 2015 22:14:09 +0100 subrepo: add status support for ignored and clean files in git subrepos
Mathias De Maré <mathias.demare@gmail.com> [Mon, 09 Mar 2015 22:14:09 +0100] rev 24256
subrepo: add status support for ignored and clean files in git subrepos
Wed, 14 Jan 2015 15:16:08 -0500 revlog: addgroup checks if incoming deltas add censored revs, sets flag bit
Mike Edgar <adgar@google.com> [Wed, 14 Jan 2015 15:16:08 -0500] rev 24255
revlog: addgroup checks if incoming deltas add censored revs, sets flag bit A censored revision stored in a revlog should have the censored revlog index flag bit set. This implies we must know if a revision is censored before we add it to the revlog. When adding revisions from exchanged deltas, we would prefer to determine this flag without decoding every single full text. This change introduces a heuristic based on assumptions around the Mercurial delta format and filelog metadata. Since deltas which produce a censored revision must be full-replacement deltas, we can read the delta's first bytes to check the filelog metadata. Since "censored" is the alphabetically first filelog metadata key, censored filelog revisions have a well-known prefix we can look for. For more on the design and background of the censorship feature, see: http://mercurial.selenic.com/wiki/CensorPlan
Fri, 06 Mar 2015 22:43:47 -0800 patch.internalpatch: accept a prefix parameter
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Mar 2015 22:43:47 -0800] rev 24254
patch.internalpatch: accept a prefix parameter
Fri, 06 Mar 2015 22:27:41 -0800 patch.patchbackend: accept a prefix parameter
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Mar 2015 22:27:41 -0800] rev 24253
patch.patchbackend: accept a prefix parameter
Tue, 10 Mar 2015 16:25:10 -0400 repair: define explicit local variable, don't reuse a comprehension variable
Mike Edgar <adgar@google.com> [Tue, 10 Mar 2015 16:25:10 -0400] rev 24252
repair: define explicit local variable, don't reuse a comprehension variable The node ID used in strip bundle names is currently taken as the last iterated value in a list comprehension found much earlier in the function. This change makes the node selection more explicit at the cost of redundancy.
Sat, 07 Feb 2015 12:49:30 -0800 commands.paths: use ui.paths to show paths
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 07 Feb 2015 12:49:30 -0800] rev 24251
commands.paths: use ui.paths to show paths We now have an API for representing a collection of paths. Use it.
Sat, 07 Feb 2015 12:42:10 -0800 ui: represent paths as classes
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 07 Feb 2015 12:42:10 -0800] rev 24250
ui: represent paths as classes Many have long wanted for paths to have expanded functionality and flexibility. In order to make that transition possible, we need to start representing paths as something more than simple strings. This patch introduces two classes: 1) "path" for representing a single path instance 2) "paths" for representing a collection of "paths" Since we don't like patches that introduce new code without any consumers, we convert ui.expandpath() to use the new APIs internally. Upcoming patches will start exposing "path" instances to consumers that currently interface with string paths. The new "paths" attribute of ui is populated from config data the first time it is accessed. Since it isn't updated when the configs are modified, this could lead to some inaccurate caching behavior. It shouldn't be an issue, as paths information is typically not accessed until command dispatch, which occurs after the repository config and extensions have been loaded. Time will tell if we need to refresh paths information when the underlying config changes.
Tue, 10 Mar 2015 13:40:14 -0400 color: omit terminfo/win32 warning if non-interactive (issue4543)
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Tue, 10 Mar 2015 13:40:14 -0400] rev 24249
color: omit terminfo/win32 warning if non-interactive (issue4543) It's pretty annoying to be getting this warning when already the colour extension has no hope of working. If there isn't a human on the other end to to see the colours, there probably isn't a human either who cares about this warning. More likely, some script somewhere is gonna get confused with the warning output. Of course, if we still want to see the warning for some reason, we can always set --config ui.interactive=True.
Thu, 26 Feb 2015 20:54:05 +0900 incoming: hide help about use of --bundle option by default
Yuya Nishihara <yuya@tcha.org> [Thu, 26 Feb 2015 20:54:05 +0900] rev 24248
incoming: hide help about use of --bundle option by default Pulling from incoming bundle can cause trouble such as missing phase movement, bookmarks and largefiles transfer. Average user won't need this option.
Fri, 06 Mar 2015 22:24:49 -0800 patch.applydiff: accept a prefix parameter
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Mar 2015 22:24:49 -0800] rev 24247
patch.applydiff: accept a prefix parameter This is preparation for upcoming patches that will add support for applying a patch within a subdirectory.
Fri, 06 Mar 2015 22:22:14 -0800 patch._applydiff: accept a prefix parameter
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Mar 2015 22:22:14 -0800] rev 24246
patch._applydiff: accept a prefix parameter This is preparation for upcoming patches that will add support for applying a patch within a subdirectory. We normalize the prefix here because this is the main driver -- all code to apply patches is expected to go through here.
Fri, 06 Mar 2015 22:19:26 -0800 patch.makepatchmeta: accept a prefix parameter
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Mar 2015 22:19:26 -0800] rev 24245
patch.makepatchmeta: accept a prefix parameter This is preparation for upcoming patches that will add support for applying a patch within a subdirectory.
Fri, 06 Mar 2015 22:17:24 -0800 patch.pathtransform: add a prefix parameter
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Mar 2015 22:17:24 -0800] rev 24244
patch.pathtransform: add a prefix parameter This is preparation for upcoming patches that will add support for applying a patch within a subdirectory. The prefix is applied after path components are stripped.
Fri, 06 Mar 2015 21:48:40 -0800 patch.pathtransform: add doctests
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Mar 2015 21:48:40 -0800] rev 24243
patch.pathtransform: add doctests In upcoming patches we're going to make this function more complex, so add some unit tests for it.
Fri, 06 Mar 2015 21:12:30 -0800 patch: rename pathstrip to pathtransform
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Mar 2015 21:12:30 -0800] rev 24242
patch: rename pathstrip to pathtransform In upcoming patches we'll not just strip path components but also add new ones.
Wed, 18 Feb 2015 23:17:52 +0900 templatekw: forward _hybrid.get to raw values so that get(extras, key) works
Yuya Nishihara <yuya@tcha.org> [Wed, 18 Feb 2015 23:17:52 +0900] rev 24241
templatekw: forward _hybrid.get to raw values so that get(extras, key) works ef78450c8df6 implies that the primary goal is to allow "{get(extras, key)}", but it didn't work. I'm not sure if _hybrid should forward all unknown attributes to values, so only "get" is forwarded for now.
Wed, 18 Feb 2015 23:01:33 +0900 templater: implement _hybrid.__contains__ so that ifcontains can accept dict
Yuya Nishihara <yuya@tcha.org> [Wed, 18 Feb 2015 23:01:33 +0900] rev 24240
templater: implement _hybrid.__contains__ so that ifcontains can accept dict d8fb835376d1 is fine for "{revset()}", but "i.values()[0]" does not work if each item has more than one values such as "{bookmarks}". This fixes the problem by using list.__contains__ or dict.__contains__ appropriately.
Sun, 08 Mar 2015 14:46:42 +0900 templatekw: keep raw list or dict in _hybrid object
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Mar 2015 14:46:42 +0900] rev 24239
templatekw: keep raw list or dict in _hybrid object This will allow us to handle bookmarks, extras and copies properly in "ifcontains()" and "get()".
Sun, 08 Mar 2015 14:38:50 +0900 templatekw: give name to lambda that constructs variables map of templater
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Mar 2015 14:38:50 +0900] rev 24238
templatekw: give name to lambda that constructs variables map of templater The constructed list is useless for "ifcontains()" and "get()". Instead, makemap() and raw dict will be passed to _hybrid object.
Sun, 08 Mar 2015 14:17:35 +0900 templatekw: convert list of key/value pairs to sortdict
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Mar 2015 14:17:35 +0900] rev 24237
templatekw: convert list of key/value pairs to sortdict These sortdict objects will be passed to _hybrid later, which will allow us to handle them by "ifcontains()" and "get()" as expected.
Wed, 18 Feb 2015 22:53:53 +0900 sortdict: have update() accept either dict or iterable of key/value pairs
Yuya Nishihara <yuya@tcha.org> [Wed, 18 Feb 2015 22:53:53 +0900] rev 24236
sortdict: have update() accept either dict or iterable of key/value pairs Future patches will make the templater store a sorted dict in the _hybrid object. sortdict should be constructed from a sorted list.
Fri, 06 Mar 2015 15:57:43 -0800 record: allow editing new files (issue4304)
Laurent Charignon <lcharignon@fb.com> [Fri, 06 Mar 2015 15:57:43 -0800] rev 24235
record: allow editing new files (issue4304) While using the record extension to select changes, the user couldn't see the content of newly added files and had to select/reject them based on filename. The test is changed accordingly in two places.
Thu, 05 Mar 2015 14:42:25 -0800 localrepo: back out changeset b08af8f0ac01
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 05 Mar 2015 14:42:25 -0800] rev 24234
localrepo: back out changeset b08af8f0ac01 Running the tags function filtered will lead to different results with different filter levels. This seems too dangerous to be done blindly as b08af8f0ac01 did.
Mon, 09 Mar 2015 12:32:29 -0400 test-shelve: be more lenient about whitespace (issue4124)
Tristan Seligmann <mithrandi@debian.org> [Mon, 09 Mar 2015 12:32:29 -0400] rev 24233
test-shelve: be more lenient about whitespace (issue4124) When running on a slower systems (eg. MIPS buildd), the age of the shelf can be 10 seconds or more, resulting in the output alignment changing and thus a test failure. This patch makes the spacing be matched more leniently.
Mon, 09 Mar 2015 14:32:17 +0800 histedit: use better meta-variable names than VALUE in help text
Anton Shestakov <engored@ya.ru> [Mon, 09 Mar 2015 14:32:17 +0800] rev 24232
histedit: use better meta-variable names than VALUE in help text Before this change hg help histedit would use the default variable label: --commands VALUE ... -r --rev VALUE [+] With this change the text will be in the usual help text style and a bit more explanatory: --commands FILE ... -r --rev REV [+]
Mon, 09 Mar 2015 14:10:42 +0800 histedit: tweak --commands help text
Anton Shestakov <engored@ya.ru> [Mon, 09 Mar 2015 14:10:42 +0800] rev 24231
histedit: tweak --commands help text The rest of help messages for command arguments are simple phrases without any ending punctuation, so having this text be a complete sentence didn't really fit.
Sun, 25 Jan 2015 02:45:49 -0500 largefiles: report the source of copied/moved largefiles in status -C
Matt Harbison <matt_harbison@yahoo.com> [Sun, 25 Jan 2015 02:45:49 -0500] rev 24230
largefiles: report the source of copied/moved largefiles in status -C Previously, the source was silently skipped because the largefile was in the list of changed files, but the standin was in the copies dictionary. The source is only displayed if the changed file is a key in the copies dictionary.
Sun, 08 Mar 2015 00:04:03 -0500 test-commit-amend: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com> [Sun, 08 Mar 2015 00:04:03 -0500] rev 24229
test-commit-amend: add globs for Windows
Fri, 30 Jan 2015 21:30:40 -0800 lazymanifest: use a binary search to do an insertion
Augie Fackler <augie@google.com> [Fri, 30 Jan 2015 21:30:40 -0800] rev 24228
lazymanifest: use a binary search to do an insertion This makes insertions log(n) plus some memmove() overhead, rather than doing an append followed by an n*log(n) sort. There's probably a lot of performance to be gained by adding a batch-add method, which could be smarter about the memmove()s performed. Includes a couple of extra tests that should help prevent bugs. Thanks to Martin for some significant pre-mail cleanup of this change.
Mon, 17 Nov 2014 00:00:25 -0500 context: don't sort manifest entries
Augie Fackler <augie@google.com> [Mon, 17 Nov 2014 00:00:25 -0500] rev 24227
context: don't sort manifest entries The manifest iterator is now pre-sorted, so we can skip this check.
Fri, 06 Mar 2015 21:29:47 -0500 manifest: use custom C implementation of lazymanifest
Augie Fackler <augie@google.com> [Fri, 06 Mar 2015 21:29:47 -0500] rev 24226
manifest: use custom C implementation of lazymanifest This version is actually lazy, unlike the pure-python version. The latter could stand to be optimized if anyone actually wants to use it seriously. I put no work into it. Before any of my related changes on mozilla-central: perfmanifest tip ! wall 0.268805 comb 0.260000 user 0.260000 sys 0.000000 (best of 37) perftags ! result: 162 ! wall 0.007099 comb 0.000000 user 0.000000 sys 0.000000 (best of 401) perfstatus ! wall 0.415680 comb 0.420000 user 0.260000 sys 0.160000 (best of 24) hgperf export tip ! wall 0.142118 comb 0.140000 user 0.140000 sys 0.000000 (best of 67) after all of my changes on mozilla-central: ./hg: perfmanifest tip ! wall 0.232640 comb 0.230000 user 0.220000 sys 0.010000 (best of 43) perftags ! result: 162 ! wall 0.007057 comb 0.010000 user 0.000000 sys 0.010000 (best of 395) perfstatus ! wall 0.415503 comb 0.420000 user 0.280000 sys 0.140000 (best of 24) hgperf export tip ! wall 0.025096 comb 0.030000 user 0.030000 sys 0.000000 (best of 102) so it's no real change in performance on perf{manifest,tags,status}, but is a huge win on 'hgperf export tip'. There's a little performance work that could still be done here: fastdelta() could be done significantly more intelligently by using the internal state of the lazymanifest type in C, but that seems like good future work.
Sat, 07 Mar 2015 12:04:39 -0500 manifest: split manifestdict into high-level and low-level logic
Augie Fackler <augie@google.com> [Sat, 07 Mar 2015 12:04:39 -0500] rev 24225
manifest: split manifestdict into high-level and low-level logic The low-level logic type (_lazymanifest) matches the behavior of the C implementation introduced in a5f1bccd. A future patch will use that when available.
Sat, 07 Mar 2015 11:43:12 -0500 manifest: do parsing inside manifestdict contstructor
Augie Fackler <augie@google.com> [Sat, 07 Mar 2015 11:43:12 -0500] rev 24224
manifest: do parsing inside manifestdict contstructor This shape to the code will make using a C implementation of the manifest storage easier.
Sat, 07 Mar 2015 11:42:05 -0500 manifest: move parsing functions up in file
Augie Fackler <augie@google.com> [Sat, 07 Mar 2015 11:42:05 -0500] rev 24223
manifest: move parsing functions up in file These functions are about to change signature and be hidden inside the manifestdict constructor. Doing the code motion now as an isolated change to make things easier to review.
Tue, 10 Feb 2015 15:59:12 -0500 dispatch: offer suggestions of similar-named commands
Augie Fackler <augie@google.com> [Tue, 10 Feb 2015 15:59:12 -0500] rev 24222
dispatch: offer suggestions of similar-named commands When suggestions are available, we show those suggestions instead of showing some help output.
Mon, 26 Jan 2015 15:43:13 -0500 dispatch: offer near-edit-distance suggestions for {file,rev}set functions
Augie Fackler <augie@google.com> [Mon, 26 Jan 2015 15:43:13 -0500] rev 24221
dispatch: offer near-edit-distance suggestions for {file,rev}set functions Before this patch, when I have a brain fart and type `hg log -r 'add(foo)'`, hg exits and just says add isn't a function, leading me to the help page for revset to figure out how to spell the function. With this patch, it suggests 'adds' as a function I might have meant.
Mon, 26 Jan 2015 15:52:46 -0500 test-revset: add tests for missing function output
Augie Fackler <augie@google.com> [Mon, 26 Jan 2015 15:52:46 -0500] rev 24220
test-revset: add tests for missing function output An upcoming change will slightly alter behavior here. Adding the test now so the output change stands out in the later changeset.
Mon, 26 Jan 2015 14:32:30 -0500 revset: use UnknownIdentifier where appropriate
Augie Fackler <augie@google.com> [Mon, 26 Jan 2015 14:32:30 -0500] rev 24219
revset: use UnknownIdentifier where appropriate
Mon, 26 Jan 2015 14:31:48 -0500 fileset: use UnknownIdentifier where appropriate
Augie Fackler <augie@google.com> [Mon, 26 Jan 2015 14:31:48 -0500] rev 24218
fileset: use UnknownIdentifier where appropriate
Mon, 26 Jan 2015 14:31:01 -0500 error: add a new UnknownIdentifier error type
Augie Fackler <augie@google.com> [Mon, 26 Jan 2015 14:31:01 -0500] rev 24217
error: add a new UnknownIdentifier error type This will be used by the revset and fileset code to communicate more specific errors to higher levels so that we might be able to offer suggestions about what function might have been similar.
Mon, 24 Nov 2014 16:42:49 -0500 log: display closing-branch nodes as "_" (BC)
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Mon, 24 Nov 2014 16:42:49 -0500] rev 24216
log: display closing-branch nodes as "_" (BC) In plain `hg log` there is no indication that a commit closes a branch. You can use hg log --debug, but this is too verbose. A simple idea copied from thg and other graphical viewers is to display the node for a closing-branch commit as a horizontal line. I think this technically is a BC if we consider the graphlog to be part of the stdout API, but I really can't imagine who the hell is parsing the graphlog to determine information about commits.
Fri, 06 Mar 2015 17:00:42 -0600 manifest: move pure parsing code out of pure
Matt Mackall <mpm@selenic.com> [Fri, 06 Mar 2015 17:00:42 -0600] rev 24215
manifest: move pure parsing code out of pure This lets us transition more smoothly.
Tue, 13 Jan 2015 14:31:38 -0800 manifest.c: new extension code to lazily parse manifests
Augie Fackler <augie@google.com> [Tue, 13 Jan 2015 14:31:38 -0800] rev 24214
manifest.c: new extension code to lazily parse manifests This lets us iterate manifests in order, but do a _lot_ less work in the common case when we only care about a few manifest entries. Many thanks to Mike Edgar for reviewing this in advance of it going out to the list, which caught many things I missed. This version of the patch includes C89 fixes from Sean Farley and many correctness/efficiency cleanups from Martin von Zweigbergk. Thanks to both!
Thu, 05 Mar 2015 22:16:28 -0800 workingctx: use normal dirs() instead of dirstate.dirs()
Durham Goode <durham@fb.com> [Thu, 05 Mar 2015 22:16:28 -0800] rev 24213
workingctx: use normal dirs() instead of dirstate.dirs() The workingctx class was using dirstate.dirs() as it's implementation. The sparse extension maintains a pruned down version of the dirstate, so this resulted in the workingctx reporting an incorrect listing of directories during merge calculations (it was detecting directory renames when it shouldn't have). The fix is to use the default implementation, which uses workingctx._manifest, which unions the manifest with the dirstate to produce the correct overall picture. This also produces more accurate output since it will no longer return directories that have been entirely deleted in the dirstate. Tests will be added to the sparse extension to detect regressions for this.
Thu, 05 Mar 2015 15:52:07 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 05 Mar 2015 15:52:07 -0600] rev 24212
merge with stable
Tue, 03 Mar 2015 21:31:16 -0500 subrepo: only fetch unknown files from git when explicitly requested
Matt Harbison <matt_harbison@yahoo.com> [Tue, 03 Mar 2015 21:31:16 -0500] rev 24211
subrepo: only fetch unknown files from git when explicitly requested
Tue, 03 Mar 2015 21:24:16 -0500 subrepo: always return scmutil.status() from gitsubrepo.status()
Matt Harbison <matt_harbison@yahoo.com> [Tue, 03 Mar 2015 21:24:16 -0500] rev 24210
subrepo: always return scmutil.status() from gitsubrepo.status() This was accidentally left out of c95db3208a33.
Tue, 03 Mar 2015 21:17:29 -0500 subrepo: explicitly request clean and unknown files in status for git's add
Matt Harbison <matt_harbison@yahoo.com> [Tue, 03 Mar 2015 21:17:29 -0500] rev 24209
subrepo: explicitly request clean and unknown files in status for git's add No behavior changes here since gitsubrepo.status() doesn't currently populate clean, and ignores whether unknown files were actually requested. But this is in line with other calls to status, and should avoid future surprises.
Sun, 01 Mar 2015 18:35:29 -0500 largefiles: handle logging from outside the repo
Matt Harbison <matt_harbison@yahoo.com> [Sun, 01 Mar 2015 18:35:29 -0500] rev 24208
largefiles: handle logging from outside the repo It's probably possible to refactor so that the 'if m._cwd' check isn't necessary, but the False case is the typical case (i.e. run from the root of the repo), and simpler to read. An exact path to a largefile from outside the repo was previously ignored. match.rel('.hglf') will handle figuring out both the correct '../' length to the standin directory if inside the repo, or path/to/repo from outside, at the cost of a pconvert() to keep the patterns using '/' on Windows.
Sun, 01 Mar 2015 14:21:54 -0500 largefiles: don't prefix standin patterns with '.hglf' when logging
Matt Harbison <matt_harbison@yahoo.com> [Sun, 01 Mar 2015 14:21:54 -0500] rev 24207
largefiles: don't prefix standin patterns with '.hglf' when logging When logging '.hglf/foo', the pattern list was being transformed from ['.hglf/foo'] into ['.hglf/foo', '.hglf/.hglf/foo']. Aside from the pathological case of somebody getting a directory named '.hglf' created inside the standing directory, the old code shouldn't have had any bad effects. (amended by mpm to sort patterns for test stability and not upset check-code)
Sat, 28 Feb 2015 23:42:38 -0500 largefiles: teach log to handle patterns
Matt Harbison <matt_harbison@yahoo.com> [Sat, 28 Feb 2015 23:42:38 -0500] rev 24206
largefiles: teach log to handle patterns Adding the standin to the patterns list was (possibly) harmless before, but was wrong, because the pattern list was already updated above that code. Now that patterns are handled, it was actually harmful. For example, in this test: $ hg log -G glob:**another* the adjusted pattern list would have been: ['glob:**another*', '.hglf/.', 'glob:.hglf/**another*'] which causes every largefile in the root to be matched. I'm not sure why 'glob:a*' picks up the rename of a -> b commit in test-log.t, but a simple 'a' doesn't. But it doesn't appear to be caused by the largefiles extension.
Thu, 05 Mar 2015 13:21:57 -0600 check-code: allow disabling msys path check
Matt Mackall <mpm@selenic.com> [Thu, 05 Mar 2015 13:21:57 -0600] rev 24205
check-code: allow disabling msys path check
Thu, 08 Jan 2015 23:05:45 +0900 revset: extend fullreposet to make "null" revision magically appears in set
Yuya Nishihara <yuya@tcha.org> [Thu, 08 Jan 2015 23:05:45 +0900] rev 24204
revset: extend fullreposet to make "null" revision magically appears in set As per fullreposet.__and__, it can omit the range check of rev. Therefore, "null" revision is accepted automagically. It seems this can fix many query results involving null symbol. Originally, the simplest "(null)" query did fail if there were hidden revisions. Tests are randomly chosen. fullreposet mimics the behavior of localrepo, where "null" revision is not listed but contained.
Sat, 10 Jan 2015 18:09:25 +0900 revset: duplicate spanset.__contains__ to fullreposet for modification
Yuya Nishihara <yuya@tcha.org> [Sat, 10 Jan 2015 18:09:25 +0900] rev 24203
revset: duplicate spanset.__contains__ to fullreposet for modification 1d7a2771aa36 says we should avoid function calls in __contains__, so super(fullreposet, self).__contains__(rev) is not an option. Actually the super call doubled the benchmark result of trivial query: revisions: 0) 678f53865c68 (tip when I wrote this patch) 1) rev == node.nullrev or super(fullreposet, self).__contains__(rev) revset #0: tip:0 0) wall 0.008441 comb 0.010000 user 0.010000 sys 0.000000 (best of 282) 1) wall 0.016152 comb 0.010000 user 0.010000 sys 0.000000 (best of 146)
Sat, 10 Jan 2015 14:49:50 +0900 revset: have all() filter out null revision
Yuya Nishihara <yuya@tcha.org> [Sat, 10 Jan 2015 14:49:50 +0900] rev 24202
revset: have all() filter out null revision I'm not sure if "all()" should filter out "null", but "all()" is stated as 'the same as "0:tip"' (except that it doesn't reorder the subset, I think.) This patch is intended to avoid exposing a fullreposet to graphmod.dagwalker(), which would result in strange drawing in future version: | o changeset: 0:f8035bb17114 | user: test | date: Thu Jan 01 00:00:00 1970 +0000 | summary: add a caused by: parents = sorted(set([p.rev() for p in ctx.parents() if p.rev() in revs])) We cannot add "and p.rev() != nullrev" here because revs may actually include "null" revision.
Sat, 10 Jan 2015 16:41:36 +0900 revset: drop unnecessary calls of getall() with empty argument
Yuya Nishihara <yuya@tcha.org> [Sat, 10 Jan 2015 16:41:36 +0900] rev 24201
revset: drop unnecessary calls of getall() with empty argument If x is None, getall(repo, subset, x) == subset.
Wed, 04 Mar 2015 21:47:07 +0900 graphlog: do not bypass commands.log so that -fr works
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Mar 2015 21:47:07 +0900] rev 24200
graphlog: do not bypass commands.log so that -fr works Since 8b4b9ee6001a, opts dict can be modified in commands.log() before calling cmdutil.graphlog().
Wed, 21 Jan 2015 14:45:24 -0800 histedit: add a config allowing changing histedit rule line length limit
Mateusz Kwapich <mitrandir@fb.com> [Wed, 21 Jan 2015 14:45:24 -0800] rev 24199
histedit: add a config allowing changing histedit rule line length limit Since many users are using terminals wider than 80 chars there should be an option to have longer lines in histedit editor. Even if the summary line is shorter than 80 chars after adding action line prefixes (like "pick 7c2fd3b9020c") it doesn't fit there anymore. Setting it to for example 110 would be a nice option to have.
Fri, 06 Mar 2015 00:14:22 +0900 dirstate: make sure rootdir ends with directory separator (issue4557) stable
Yuya Nishihara <yuya@tcha.org> [Fri, 06 Mar 2015 00:14:22 +0900] rev 24198
dirstate: make sure rootdir ends with directory separator (issue4557) ntpath.join() of Python 2.7.9 does not work as expected if root is a UNC path to top of share. This patch doesn't take care of os.altsep, '/' on Windows, because root should be normalized by realpath().
Wed, 04 Mar 2015 17:24:12 +0100 i18n-de: fix a typo in the german translation stable
Alexander Becher <Alexander.Becher@RuD-Steuerungstechnik.De> [Wed, 04 Mar 2015 17:24:12 +0100] rev 24197
i18n-de: fix a typo in the german translation
Tue, 03 Mar 2015 17:28:05 -0600 histedit: fix style of new error message
Matt Mackall <mpm@selenic.com> [Tue, 03 Mar 2015 17:28:05 -0600] rev 24196
histedit: fix style of new error message - lowercase - no punctuation - brief - short node
Wed, 04 Feb 2015 15:17:13 -0500 Makefile: allow setting HGTESTFLAGS in shell environment for TESTFLAGS
Augie Fackler <augie@google.com> [Wed, 04 Feb 2015 15:17:13 -0500] rev 24195
Makefile: allow setting HGTESTFLAGS in shell environment for TESTFLAGS I keep wanting to run 'make tests', but I forget to set TESTFLAGS='-j 16' or whatever is reasonable for my machine. This lets me just set it once in my shell settings and forget it.
Wed, 04 Feb 2015 12:26:16 -0500 Makefile: introduce testpy-% target for testing with a specifc Python
Augie Fackler <augie@google.com> [Wed, 04 Feb 2015 12:26:16 -0500] rev 24194
Makefile: introduce testpy-% target for testing with a specifc Python This makes it easy to do 'make testpy-2.4.6 TESTFLAGS="-j 16"' and the Makefile will build Python if needed and then run tests (with -j 16) with the resulting Python. You can set the environment variable HGPYTHONS to a nice location on your machine to cache the Python builds globally. If that's not set, it builds them inside build/pythons.
Fri, 27 Feb 2015 17:35:07 -0500 extdiff: expand tildes and variables in paths to user-supplied diff programs
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Fri, 27 Feb 2015 17:35:07 -0500] rev 24193
extdiff: expand tildes and variables in paths to user-supplied diff programs
Sun, 22 Feb 2015 15:40:36 +0100 setup.py: do not install c extensions on pypy
Joan Massich <mailsik@gmail.com> [Sun, 22 Feb 2015 15:40:36 +0100] rev 24192
setup.py: do not install c extensions on pypy These extensions are slower on pypy because pypy has a JIT compiler. And also, they often do not compile (it depends on the pypy configuration).
Mon, 02 Mar 2015 14:52:04 +0100 copyright: update to 2015
Jesus Cea <jcea@jcea.es> [Mon, 02 Mar 2015 14:52:04 +0100] rev 24191
copyright: update to 2015 Many files and translations have an outdated copyright date. Change that to the correct "2005-2015" dates.
Wed, 21 Jan 2015 22:09:32 -0500 changegroup: emit full-replacement deltas if either revision is censored
Mike Edgar <adgar@google.com> [Wed, 21 Jan 2015 22:09:32 -0500] rev 24190
changegroup: emit full-replacement deltas if either revision is censored To ensure that exchanged deltas in the presence of censored revisions can always be applied to the recipient repository, the deltas must replace the entire base text. To make this restriction reasonably enforceable, the delta must do so with a single patch operation. For background and broader design of the censorship feature, see: http://mercurial.selenic.com/wiki/CensorPlan
Fri, 06 Feb 2015 11:04:55 -0800 log: make -fr show complete history from the given revs
Durham Goode <durham@fb.com> [Fri, 06 Feb 2015 11:04:55 -0800] rev 24189
log: make -fr show complete history from the given revs Right now it's very obtuse to show the history of a particular rev (hg log -r 'reverse(::foo)'). This changes the -f option to make it follow history for the revs specified by -r. The current -f -r behavior is to limit the result of -r to only the commits that are ancestors of the current working copy. Changing this is a bit of a BC break, but the old behavior is A) rare, B) easy to emulate (& ::.), and C) currently undefined. The new behavior is frequently requested enough that I think the change is worth it.
Tue, 24 Feb 2015 14:12:13 +0100 util: accept "now, today, yesterday" for dates even the locale is not english
André Klitzing <aklitzing@gmail.com> [Tue, 24 Feb 2015 14:12:13 +0100] rev 24188
util: accept "now, today, yesterday" for dates even the locale is not english Hi there! Fixed date names are helpful for automated systems. So it is possible to use english date parameter even if the underlying system uses another locale. We have here a jenkins with build jobs on different slaves that will do some operations with "dates" parameter. Some systems uses English locale and some systems uses German locale. So we needed to configure the job to uses other date names. As this is really annoying to keep the systems locale in mind for some operations I looked into util.py. It would be helpful for automated systems if the "default English" date names would even usable on other locales. I attached a simple patch for this. Best regards André Klitzing
Fri, 27 Feb 2015 14:26:22 -0800 copies: only calculate 'addedinm[12]' sets once
Martin von Zweigbergk <martinvonz@google.com> [Fri, 27 Feb 2015 14:26:22 -0800] rev 24187
copies: only calculate 'addedinm[12]' sets once Pass the addedinm1 and addedinm2 instead of m1, m2, ma into _computenonoverlap() instead of calculating the sets twice.
Fri, 27 Feb 2015 14:03:01 -0800 copies: calculate 'bothnew' from manifestdict.filesnotin()
Martin von Zweigbergk <martinvonz@google.com> [Fri, 27 Feb 2015 14:03:01 -0800] rev 24186
copies: calculate 'bothnew' from manifestdict.filesnotin() In the same spirit as the previous change, let's now calculate the 'bothnew' variable using manifestdict.filesnotin().5D
Fri, 27 Feb 2015 14:02:30 -0800 copies: replace _nonoverlap() by calls to manifestdict.filesnotin()
Martin von Zweigbergk <martinvonz@google.com> [Fri, 27 Feb 2015 14:02:30 -0800] rev 24185
copies: replace _nonoverlap() by calls to manifestdict.filesnotin() Now that we have manifestdict.filesnotin(), we can write _nonoverlap() in terms of that method instead, enabling future speedups when filesnotin() gets optimized, and perhaps making the code a little clearer at the same time.
Fri, 27 Feb 2015 13:57:37 -0800 copies: move code into new manifestdict.filesnotin() method
Martin von Zweigbergk <martinvonz@google.com> [Fri, 27 Feb 2015 13:57:37 -0800] rev 24184
copies: move code into new manifestdict.filesnotin() method copies._computeforwardmissing() finds files in one context that is not in the other. Let's move this code into a new method on manifestdict, so m1.filesnotin(m2) can be optimized for various types of manifests (we expect more types of manifests soon).
Fri, 27 Feb 2015 23:30:42 -0500 subrepo: warn when adding already tracked files in gitsubrepo
Matt Harbison <matt_harbison@yahoo.com> [Fri, 27 Feb 2015 23:30:42 -0500] rev 24183
subrepo: warn when adding already tracked files in gitsubrepo This follows normal Mercurial rules, and the message is lifted from workingctx.add(). The file is printed with abs() to be consistent with how it is printed in workingctx, even though that is inconsistent with how added files are printed in verbose mode. Further, the 'already tracked' notifications come after all of the files that are added are printed, like in Mercurial. As a side effect, we now have the reject list to return to the caller, so that 'hg add' exits with the proper code. It looks like an abort occurs if git fails to add the file. Prior to touching 'snake.python' in the test, this was the result of attempting to add the file after a 'git rm': fatal: pathspec 'snake.python' did not match any files abort: git add error 128 in s (in subrepo s) I'm not sure what happens when git is a deep subrepo, but the 'in s' and 'in subrepo s' from @annotatesubrepoerror are redundant here. Maybe we should stat the files before invoking git to catch this case and print out the prettier hg message? The other thing missing from workingctx.add() is the call to scmutil.checkportable(), but that would need to borrow the parent's ui object.
Thu, 26 Feb 2015 15:53:54 -0500 subrepo: don't exclude files in .hgignore when adding to git
Matt Harbison <matt_harbison@yahoo.com> [Thu, 26 Feb 2015 15:53:54 -0500] rev 24182
subrepo: don't exclude files in .hgignore when adding to git The previous test gave a false success because only an hg-ignored pattern was specified. Therefore match.files() was empty, and it fell back to the files unknown to git. The simplest fix is to always consider what is unknown to git, as well as anything specified explicitly. Files that are ignored by git can only be introduced by an explicit mention in match.files().
Wed, 14 Jan 2015 01:15:26 +0100 dirstate: clarify comment about leaving normal files undef if changed 'now'
Mads Kiilerich <madski@unity3d.com> [Wed, 14 Jan 2015 01:15:26 +0100] rev 24181
dirstate: clarify comment about leaving normal files undef if changed 'now' Clarify that they only are saved as undef if they were marked as normal and changed in the same second.
Sun, 18 Jan 2015 02:38:57 +0100 spelling: fixes from proofreading of spell checker issues
Mads Kiilerich <madski@unity3d.com> [Sun, 18 Jan 2015 02:38:57 +0100] rev 24180
spelling: fixes from proofreading of spell checker issues
Fri, 27 Feb 2015 21:42:58 +0100 merge-tools: configuration for Beyond Compare on OS X
Mads Kiilerich <madski@unity3d.com> [Fri, 27 Feb 2015 21:42:58 +0100] rev 24179
merge-tools: configuration for Beyond Compare on OS X Based on the Linux configuration entry.
Wed, 21 Jan 2015 00:02:17 +0100 convert: when converting from monotone, use the number 1 for close in extras
Mads Kiilerich <madski@unity3d.com> [Wed, 21 Jan 2015 00:02:17 +0100] rev 24178
convert: when converting from monotone, use the number 1 for close in extras Monotone used '1' for close while core Mercurial use 1. Now, for consistency, use the same value everywhere. It will be stored as a string anyway and the change will not make any real difference. (The actual value of 'close' doesn't matter as long as extras has such a key.)
Mon, 02 Mar 2015 15:07:18 -0800 hgweb: extract changeset template mapping generation to own function
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 02 Mar 2015 15:07:18 -0800] rev 24177
hgweb: extract changeset template mapping generation to own function Similar in spirit to 513d47905114, I want to write an extension to make available extra template keywords so hgweb templates can include extra data. To do this today requires monkeypatching the templater, which I think is the wrong place to perform this modification. This patch extracts the creation of the templater arguments to a standalone function - one that can be monkeypatched by extensions. I would very much like for extensions to be able to inject extra templater parameters into *any* template. However, I'm not sure the best way to facilitate this, as hgweb commands invoke the templater before returning and we want the extensions to have access to rich data structures like the context instances. We need cooperation inside hgweb command functions. The use case screams for something like internal-only "hooks." This is exactly what my (rejected) "events" patch series provided. Perhaps that feature should be reconsidered...
Mon, 02 Mar 2015 17:32:37 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 02 Mar 2015 17:32:37 -0600] rev 24176
merge with stable
Wed, 25 Feb 2015 18:12:01 -0500 revrange: don't parse revset aliases as hash prefixes (issue4553)
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Wed, 25 Feb 2015 18:12:01 -0500] rev 24175
revrange: don't parse revset aliases as hash prefixes (issue4553) If a user has a revsetalias defined, it is their explicit wish for this alias to be parsed as a revset and nothing else. Although the case of the alias being short enough and only contain the letters a-f is probably kind of rare, it may still happen.
Tue, 24 Feb 2015 08:49:22 +0100 subrepos: support adding files in git subrepos
Mathias De Maré <mathias.demare@gmail.com> [Tue, 24 Feb 2015 08:49:22 +0100] rev 24174
subrepos: support adding files in git subrepos This support includes correct matching, so includes, excludes and patterns are all supported.
Sun, 15 Feb 2015 17:29:10 -0500 subrepo: return only the manifest keys from hgsubrepo.files()
Matt Harbison <matt_harbison@yahoo.com> [Sun, 15 Feb 2015 17:29:10 -0500] rev 24173
subrepo: return only the manifest keys from hgsubrepo.files() This is in line with the other subrepo classes (i.e. only the filenames are returned). Archive iterates over the manifest keys, and since subrepo archive() uses this method, it does too now. This will allow largefiles to override its manifest keys to present the largefiles instead of the standins. Once in place, we shouldn't need the copy/paste overrides of archive and subrepo archive in largefiles, that don't quite behave like the core methods they are overriding.
Sun, 15 Feb 2015 17:21:48 -0500 archive: change the default prefix to '' from None
Matt Harbison <matt_harbison@yahoo.com> [Sun, 15 Feb 2015 17:21:48 -0500] rev 24172
archive: change the default prefix to '' from None All current callers supply some sort of prefix, so the issue was hidden. But if no parameter was specified, a crash occurred in the write() closure when concatenating 'prefix' and 'name'.
Wed, 25 Feb 2015 11:39:14 -0800 debugsetparent: document one common caveat specifically
Martin von Zweigbergk <martinvonz@google.com> [Wed, 25 Feb 2015 11:39:14 -0800] rev 24171
debugsetparent: document one common caveat specifically After calling debugsetparent, it's quite common that status is incorrect. The command's help text already says that it should be used with care, but let's describe this caveat explicitly since it's probably the most common one.
Fri, 20 Feb 2015 13:55:01 -0800 repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com> [Fri, 20 Feb 2015 13:55:01 -0800] rev 24170
repair: setup hookargs when processing bundle2s addchangegroup() modifies its behavior based on the transaction source. This is incorrect for bundle2 repair files, causing rebases to abort when this option is enabled. This diff specifies the source type in the way recommended by comments in bundle2.py and adds a test to ensure that rebases with the experimental option work successfully.
Mon, 02 Mar 2015 19:01:00 +0000 amend: check for directory renames for both merge parents (issue4516) stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Mar 2015 19:01:00 +0000] rev 24169
amend: check for directory renames for both merge parents (issue4516) Before this change, amending a merge would lose the rename information for file adding in the second parents and implicitly renamed into a new directory. In case of the merge, we also look for directory rename data from the second parent. This seems to fix the bug and does not show other issues from the test suite.
Mon, 02 Mar 2015 10:55:19 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 02 Mar 2015 10:55:19 -0600] rev 24168
merge with stable
Mon, 02 Mar 2015 23:37:55 +0900 largefiles: avoid infinite recursive call of openlfdirstate in overriderevert
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 02 Mar 2015 23:37:55 +0900] rev 24167
largefiles: avoid infinite recursive call of openlfdirstate in overriderevert When there isn't lfdirstate file in cases below, "openlfdirstate()" call "scmutil.match()" indirectly to build lfdirstate up. - subrepos disabling largefiles locally - lfdirstate file is missed accidentally This causes infinite recursive call of "openlfdirstate()" in "overriderevert()" (introduced by 79c2c29c71ae), because "openlfdirstate()" is invoked from the function overriding "scmutil.match()" itself. To avoid infinite recursive call of "openlfdirstate()" in "overriderevert()" in such cases, this patch passes "create=False" argument to "openlfdirstate()". "create=False" forcibly makes "openlfdirstate()" avoid code path to build lfdirstate up.
Mon, 02 Mar 2015 10:29:45 -0600 Added signature for changeset 07a92bbd02e5 stable
Matt Mackall <mpm@selenic.com> [Mon, 02 Mar 2015 10:29:45 -0600] rev 24166
Added signature for changeset 07a92bbd02e5
Mon, 02 Mar 2015 10:29:41 -0600 Added tag 3.3.2 for changeset 07a92bbd02e5 stable
Matt Mackall <mpm@selenic.com> [Mon, 02 Mar 2015 10:29:41 -0600] rev 24165
Added tag 3.3.2 for changeset 07a92bbd02e5
Mon, 02 Mar 2015 10:31:22 -0500 transaction: really disable hardlink backups (issue4546) stable 3.3.2
Matt Harbison <matt_harbison@yahoo.com> [Mon, 02 Mar 2015 10:31:22 -0500] rev 24164
transaction: really disable hardlink backups (issue4546)
Mon, 02 Mar 2015 01:20:14 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 02 Mar 2015 01:20:14 -0600] rev 24163
merge with stable
Sat, 28 Feb 2015 01:12:54 -0500 test-obsolete: use 'log -T {node}' instead of 'id --debug -i' to lookup hash
Matt Harbison <matt_harbison@yahoo.com> [Sat, 28 Feb 2015 01:12:54 -0500] rev 24162
test-obsolete: use 'log -T {node}' instead of 'id --debug -i' to lookup hash I ran into a case when adding a test where there were cryptic hg command line errors. I eventually traced it back to 'hg id' printing debug messages before the hash: invalid branchheads cache (served): tip differs <hash> This method should eliminate any other output except the node.
Mon, 02 Mar 2015 01:06:31 -0600 Added signature for changeset 5b4ed033390b stable
Matt Mackall <mpm@selenic.com> [Mon, 02 Mar 2015 01:06:31 -0600] rev 24161
Added signature for changeset 5b4ed033390b
(0) -10000 -3000 -1000 -120 +120 +1000 +3000 +10000 tip