Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Jun 2018 11:07:40 -0700] rev 38429
scmutil: make cleanupnodes optionally also fix the phase
We have had multiple bugs where the phase wasn't correctly carried
forward to a rewritten changeset (for example: phabricator, split,
evolve, fix). Handling the phase update in cleanupnodes() makes it
less likely to happen again, especially once we have made it fix the
phase by default (perhaps in the next release cycle).
This patch also updates all applicable callers so we get some testing
of it.
Note that rebase and histedit can't be fixed yet because they call
cleanupnodes() only at the end and the phase may have been changed by
the user when the rebase/histedit was interrupted (due to merge
conflicts). I think we should make them write one commit at a time (as
it already does), along with associated obsmarkers, bookmark moves,
etc. When that's done, we can switch them over to cleanupnodes().
Differential Revision: https://phab.mercurial-scm.org/D3818
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Jun 2018 11:07:23 -0700] rev 38428
tests: add test of uncommit with default phase as secret
We didn't seem to have any test checking that uncommitting a draft
commit with phase.new-phase=secret preserved the draft phase.
Differential Revision: https://phab.mercurial-scm.org/D3817
Sangeet Kumar Mishra <mail2sangeetmishra@gmail.com> [Sun, 17 Jun 2018 15:52:08 +0530] rev 38427
grep: add --diff flag
Adds a diff flag, which works exactly same as all, in fact since
--all searches diffs, there diff is a better name for it.
The all flag is still here for backward compatibility reasons.
Some major tests for all has been picked and added for diff.
Differential Revision: https://phab.mercurial-scm.org/D3763
Martin von Zweigbergk <martinvonz@google.com> [Wed, 20 Jun 2018 09:27:30 -0700] rev 38426
fix: include cleanupnodes() in transaction
As pointed out by Yuya, we need a transaction to make sure the state
before the call to cleanupnodes() is not observable.
Differential Revision: https://phab.mercurial-scm.org/D3823
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Jun 2018 22:19:37 -0700] rev 38425
progress: enforce use of complete() on the helper class
complete() is preferred over update(None), so let's enforce that.
Differential Revision: https://phab.mercurial-scm.org/D3822
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Jun 2018 22:11:34 -0700] rev 38424
progress: extract function for closing topic
progress(None) had a completely different implementation from the
progress(<not None>) implementation. It very much feels like it should
be a separate method, so this patch makes it so. That also makes it
clear that only the topic parameter matters when closing a topic
(e.g. "total" does not matter).
Differential Revision: https://phab.mercurial-scm.org/D3821
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Jun 2018 22:06:28 -0700] rev 38423
progress: use context manager for lock
Differential Revision: https://phab.mercurial-scm.org/D3820
Boris Feld <boris.feld@octobus.net> [Tue, 19 Jun 2018 18:21:37 +0200] rev 38422
configitem: reorder items in the 'server' section
Keeping things alphabetically sorted.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 21 Jun 2018 00:48:59 -0400] rev 38421
test-lfs: add coverage for the binary() fileset
This ensures that the blobs don't need to be present to be filtered properly.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 21 Jun 2018 00:05:26 -0400] rev 38420
fileset: use filectx.isbinary() to filter out binaries in eol()
Since LFS stores the binary attribute in the pointer file, this means that the
file doesn't need to be downloaded in order to be skipped. This function also
catches an IOError if the data can't be loaded in the non-LFS case.
I wonder if it's worth storing the unix/dos attributes in the pointer file as
well, though I'd expect LFS files to be binary most of the time.
Matti Hamalainen <ccr@tnsp.org> [Tue, 19 Jun 2018 13:07:18 +0300] rev 38419
crecord: re-center display in interactive curses commit on pageup/down
A long-standing issue in the crecord (interactive curses commit interface)
is that using PageUp/Down to move along longer-than current screen size
chunks would "lose" the cursor and not properly re-center.
There has been self.recenterdisplayedarea() to do that, but it has not been
in use for some reason. Add calls to the appropriate uparrowshiftevent()
and downarrowshiftevent() methods to fix this.
Kyle Lippincott <spectral@google.com> [Fri, 02 Feb 2018 14:21:04 -0800] rev 38418
tests: in test-split.t, save a "clean" copy of pre-split repo for later use
Differential Revision: https://phab.mercurial-scm.org/D2015
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 16:01:06 -0700] rev 38417
tests: use progress helper
With this commit, the only in-tree caller of ui.progress() is
scmutil.progress(). That means that we could deprecate it. It also
means that we can considering inlining it in scmutil.progress.
Differential Revision: https://phab.mercurial-scm.org/D3812
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 15:55:38 -0700] rev 38416
changegroup: use progress helper
Although it looks like this code was micro-optimized, I could not
measure any slow-down.
Differential Revision: https://phab.mercurial-scm.org/D3811
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 15:17:27 -0700] rev 38415
synthrepo: close progress topics
Differential Revision: https://phab.mercurial-scm.org/D3810
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 15:17:10 -0700] rev 38414
synthrepo: use progress helper
Differential Revision: https://phab.mercurial-scm.org/D3809
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 15:14:39 -0700] rev 38413
largefiles: use progress helper
Differential Revision: https://phab.mercurial-scm.org/D3808
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 15:05:52 -0700] rev 38412
convert: use progress helper
Differential Revision: https://phab.mercurial-scm.org/D3807
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 14:59:53 -0700] rev 38411
lfs: use progess helper
Differential Revision: https://phab.mercurial-scm.org/D3806
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 14:52:41 -0700] rev 38410
relink: use progress helper
This doesn't use progress.increment() because progress output is
skipped for some positions (so we may end up calling "update(0),
update(2), update(7)", or similar).
Differential Revision: https://phab.mercurial-scm.org/D3805
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 14:34:07 -0700] rev 38409
patchbomb: use progress helper
Differential Revision: https://phab.mercurial-scm.org/D3804
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 14:32:12 -0700] rev 38408
patchbomb: don't close unused progress topic
The "writing" topic has not been used since 1830d0cc4bc1 (patchbomb:
minor refactoring of mbox functionality, preparing for move,
2011-11-23).
Differential Revision: https://phab.mercurial-scm.org/D3803
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 14:29:08 -0700] rev 38407
churn: use progess helper
Differential Revision: https://phab.mercurial-scm.org/D3802
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 23:54:58 -0700] rev 38406
treediscovery: use progress helper
Differential Revision: https://phab.mercurial-scm.org/D3801
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 23:48:23 -0700] rev 38405
upgrade: use progress helper
A minor side-effect is that we no longer print the progress at 0 (and
that we don't re-print it at its current value when starting the next
manifest/file).
Differential Revision: https://phab.mercurial-scm.org/D3800
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 23:49:27 -0700] rev 38404
upgrade: close progress after each revlog
IIUC, one is supposed to close each progress topic before strarting a
new one. Otherwise the topics are considered nested, which we don't
want here.
Differential Revision: https://phab.mercurial-scm.org/D3799
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 23:28:00 -0700] rev 38403
verify: use progress helper
Differential Revision: https://phab.mercurial-scm.org/D3798
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 23:35:49 -0700] rev 38402
verify: use progress helper for subdirectory progress
I also reworded a variable to make it clearer that it's only used for
subdirectories.
Differential Revision: https://phab.mercurial-scm.org/D3797
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 23:17:03 -0700] rev 38401
similar: use progress helper
A side-effect is that progress is now reported as 1 *before* we start
checking the first file. That seems to be how we do it in most places.
Also, the right topic is now closed.
Differential Revision: https://phab.mercurial-scm.org/D3796
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 23:13:03 -0700] rev 38400
repair: use progress helper
Differential Revision: https://phab.mercurial-scm.org/D3795
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 23:11:06 -0700] rev 38399
httpconnection: use progress helper
Differential Revision: https://phab.mercurial-scm.org/D3794
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Jun 2018 18:18:36 +0900] rev 38398
py3: byte-stringify literals in contrib/phabricator.py as example
Transformed by contrib/byteify-strings.py and adjusted exceeded lines
manually. Some of b''s would be wrong as the phabriactor extension has to
work with JSON data.
# skip-blame just many b prefixes
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Jun 2018 18:19:54 +0900] rev 38397
byteify-strings: remove superfluous "if True" block
Yuya Nishihara <yuya@tcha.org> [Fri, 01 Jun 2018 00:13:55 +0900] rev 38396
byteify-strings: try to preserve column alignment
Yuya Nishihara <yuya@tcha.org> [Thu, 31 May 2018 23:44:35 +0900] rev 38395
byteify-strings: do not rewrite system string literals to u''
It would make things worse on Python 2 because unicode processing is generally
slower than byte string. We should just leave system strings unmodified.
Yuya Nishihara <yuya@tcha.org> [Thu, 31 May 2018 22:34:23 +0900] rev 38394
byteify-strings: do not rewrite iteritems() and itervalues() by default
We can't do that automatically due to performance concerns.
Yuya Nishihara <yuya@tcha.org> [Thu, 31 May 2018 22:31:37 +0900] rev 38393
byteify-strings: drop import-line hack
This is ugly, and valid only for Python 3. We'll need to find a different
way if we want to get rid of the code transformer at all.
Yuya Nishihara <yuya@tcha.org> [Thu, 31 May 2018 22:28:29 +0900] rev 38392
byteify-strings: add --inplace option to write back result
Yuya Nishihara <yuya@tcha.org> [Thu, 31 May 2018 22:23:30 +0900] rev 38391
byteify-strings: add basic command interface
Yuya Nishihara <yuya@tcha.org> [Thu, 31 May 2018 22:07:04 +0900] rev 38390
byteify-strings: fork py3 code transformer to make it a standalone command
I'm thinking of making a one-off s/''/b''/g change for overall codebase to
make linter happy. We could do that without maintaining the script, but I
think it will be somewhat useful for extension authors. So it is in contrib.
Yuya Nishihara <yuya@tcha.org> [Mon, 18 Jun 2018 21:54:52 +0900] rev 38389
highlight: get around tmpl.load() which now returns a parsed tree
Broken at e637dc0b3b1f, "templater: parse template string to tree by
templater class."
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 23:06:20 -0700] rev 38388
changegroup: use progress helper
Differential Revision: https://phab.mercurial-scm.org/D3783
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 23:00:59 -0700] rev 38387
archival: use progress helper
Differential Revision: https://phab.mercurial-scm.org/D3782
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 22:57:34 -0700] rev 38386
copystore: use progress helper
Differential Revision: https://phab.mercurial-scm.org/D3781
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 22:09:15 -0700] rev 38385
subrepo: use progress helper
Differential Revision: https://phab.mercurial-scm.org/D3780
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 22:05:54 -0700] rev 38384
histedit: use progress helper
Differential Revision: https://phab.mercurial-scm.org/D3779
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 22:01:59 -0700] rev 38383
rebase: use progress helper
Differential Revision: https://phab.mercurial-scm.org/D3778
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 21:47:34 -0700] rev 38382
debugbuilddag: use context manager for progress, locks, transaction
I minor side-effect is that .hg/localtags is now written before the
transaction commits.
Differential Revision: https://phab.mercurial-scm.org/D3777
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 21:44:57 -0700] rev 38381
debugbuilddag: use progress helper
Differential Revision: https://phab.mercurial-scm.org/D3776
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 13:48:58 -0700] rev 38380
progress: make the progress helper a context manager
This lets us simplify the use site in streamclone.
Differential Revision: https://phab.mercurial-scm.org/D3775
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 22:13:41 -0700] rev 38379
progress: hide update(None) in a new complete() method
update(None) seemed a bit cryptic.
Differential Revision: https://phab.mercurial-scm.org/D3774
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 16 Jun 2018 08:22:10 +0530] rev 38378
rebase: add dry-run functionality
For now, it gives stats about rebase would be successful or hit a
conflict. Remaining work is to improve the output and adding verbose mode
where will show the diff of conflicting files if we hit any.
Differential Revision: https://phab.mercurial-scm.org/D3757
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 18 Jun 2018 16:07:46 +0530] rev 38377
py3: add `and None` to suppress return values of .write() calls
.write() calls don't return anything on Python2, so we need to make sure we
suppress that on py3 too.
This makes the test pass on Python 3.
Differential Revision: https://phab.mercurial-scm.org/D3793
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 18 Jun 2018 16:06:28 +0530] rev 38376
py3: slice over bytes to prevent getting ascii values
Differential Revision: https://phab.mercurial-scm.org/D3792
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 18 Jun 2018 16:06:01 +0530] rev 38375
py3: use pycompat.maplist() instead of map() in hgext/transplant.py
map() returns a map-object on Python3 instead of a list.
Differential Revision: https://phab.mercurial-scm.org/D3791
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 18 Jun 2018 15:50:15 +0530] rev 38374
py3: add 4 new passing tests to whitelist
Differential Revision: https://phab.mercurial-scm.org/D3790
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 18 Jun 2018 15:31:13 +0530] rev 38373
py3: make tests/test-impexp-branch.t compatible with Python 3
This patch adds some missig b'' prefixes and add suppress the output of write()
calls.
Differential Revision: https://phab.mercurial-scm.org/D3789
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 18 Jun 2018 15:28:18 +0530] rev 38372
py3: convert error instances to bytes using pycompat.bytestr()
Differential Revision: https://phab.mercurial-scm.org/D3788
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 18 Jun 2018 15:27:34 +0530] rev 38371
py3: encode sys.argv to bytes using .encode()
Differential Revision: https://phab.mercurial-scm.org/D3787
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 18 Jun 2018 15:25:57 +0530] rev 38370
py3: use '%d' for os.stat_result.st_nlink instead of '%s'
Differential Revision: https://phab.mercurial-scm.org/D3786
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 18 Jun 2018 15:24:17 +0530] rev 38369
py3: suppress the output of .write() calls in tests/test-revlog-v2.t
This makes the test pass on Python 3.
Differential Revision: https://phab.mercurial-scm.org/D3785
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 18 Jun 2018 15:23:25 +0530] rev 38368
py3: add couple of missing b'' prefixes in tests/test-pager-legacy.t
# skip-blame because just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D3784
Martin von Zweigbergk <martinvonz@google.com> [Thu, 14 Jun 2018 15:17:47 -0700] rev 38367
import: use context manager for lock, dirstateguard, transaction
A tiny side-effect is that the transaction is now closed after saving
the commit message.
Differential Revision: https://phab.mercurial-scm.org/D3748
Augie Fackler <raf@durin42.com> [Sun, 17 Jun 2018 23:03:23 -0400] rev 38366
streamclone: update progress later to avoid passing None to util.bytecount
Differential Revision: https://phab.mercurial-scm.org/D3773