Mon, 25 Mar 2013 14:12:39 -0700 dirstate.walk: remove subrepo and .hg from results before step 3
Siddharth Agarwal <sid0@fb.com> [Mon, 25 Mar 2013 14:12:39 -0700] rev 18812
dirstate.walk: remove subrepo and .hg from results before step 3 An upcoming patch will speed dirstate.walk up by not querying the results dict when it is empty. This ensures it is in some common cases. This should be safe because subrepos and .hg aren't part of the dirstate.
Mon, 25 Mar 2013 12:12:41 -0500 merge with stable
Kevin Bullock <kbullock@ringworld.org> [Mon, 25 Mar 2013 12:12:41 -0500] rev 18811
merge with stable
Fri, 22 Mar 2013 10:56:55 -0700 blackbox: account for another source of errors
Bryan O'Sullivan <bryano@fb.com> [Fri, 22 Mar 2013 10:56:55 -0700] rev 18810
blackbox: account for another source of errors
Tue, 16 Oct 2012 22:44:14 +0200 hgk: remove regsub, split on \r instead
Andrew Shadura <bugzilla@tut.by> [Tue, 16 Oct 2012 22:44:14 +0200] rev 18809
hgk: remove regsub, split on \r instead No need to regsub all \r\n's to \n's, we can just split on \r as well; this may produce extra empty elements in the list, but they won't match anyway.
Tue, 16 Oct 2012 22:41:44 +0200 hgk: simplify tags parser
Andrew Shadura <bugzilla@tut.by> [Tue, 16 Oct 2012 22:41:44 +0200] rev 18808
hgk: simplify tags parser As when hg tags is being called without -v option, it returns lines with two elements in each, we can just interate them as if it were a usual Tcl list using foreach and two variables. Line endings and whitespace don't matter when doing so, so we may keep them as is. When we're processing the lines, tag variable is assigned a tag name, and rev is a string in form of revision:hash which we can split on colon. As Tcl8.4 lacks lassign command, and using lindex makes code a bit less readable, we use foreach to iterate over two-element list.
Fri, 22 Mar 2013 09:19:41 -0700 hgk: add support for phases
Andrew Shadura <bugzilla@tut.by> [Fri, 22 Mar 2013 09:19:41 -0700] rev 18807
hgk: add support for phases Add support for phases. Update tests.
Sun, 10 Mar 2013 16:42:23 +0100 hgk: in popups, replace labels with window titles
Andrew Shadura <bugzilla@tut.by> [Sun, 10 Mar 2013 16:42:23 +0100] rev 18806
hgk: in popups, replace labels with window titles Replace labels with window titles. That also requires to change grid placement manager settings to compensate padding which used to be applied to now non-existent labels.
Sun, 10 Mar 2013 16:42:16 +0100 hgk: update backgroud colour when Ttk is available
Andrew Shadura <bugzilla@tut.by> [Sun, 10 Mar 2013 16:42:16 +0100] rev 18805
hgk: update backgroud colour when Ttk is available Ttk doesn't automatically set up Tk colour palette. Because of that, Ttk controls look differently when used together with old Tk controls. When we use Ttk controls, we first query if we have any setting for the client background, and if we do, we update Tk palette as well.
Tue, 16 Oct 2012 15:31:56 +0200 hgk: fix pop-up windows
Andrew Shadura <bugzilla@tut.by> [Tue, 16 Oct 2012 15:31:56 +0200] rev 18804
hgk: fix pop-up windows Create pop-up windows properly so they go to the floating layer in tiling window managers.
Sun, 10 Mar 2013 16:12:26 +0100 hgk: don't use fixed format for dates
Andrew Shadura <bugzilla@tut.by> [Sun, 10 Mar 2013 16:12:26 +0100] rev 18803
hgk: don't use fixed format for dates Don't pass -format with a date format string, use default instead so users can use their own preferences.
Sun, 10 Mar 2013 16:07:57 +0100 hgk: reformat changsets fields
Andrew Shadura <bugzilla@tut.by> [Sun, 10 Mar 2013 16:07:57 +0100] rev 18802
hgk: reformat changsets fields Rename Author to User. Rename Revision to Changeset. Put Date on its own line.
Tue, 16 Oct 2012 15:07:41 +0200 hgk: drop committer field from the UI
Andrew Shadura <bugzilla@tut.by> [Tue, 16 Oct 2012 15:07:41 +0200] rev 18801
hgk: drop committer field from the UI Remove Committer field, it doesn't make sense in Hg.
Thu, 21 Mar 2013 22:42:51 -0700 test-completion: test completion of tags
Bryan O'Sullivan <bryano@fb.com> [Thu, 21 Mar 2013 22:42:51 -0700] rev 18800
test-completion: test completion of tags
Thu, 21 Mar 2013 22:29:31 -0700 debugpathcomplete: satisfy the code checker
Bryan O'Sullivan <bryano@fb.com> [Thu, 21 Mar 2013 22:29:31 -0700] rev 18799
debugpathcomplete: satisfy the code checker
Thu, 21 Mar 2013 22:26:01 -0700 tests: test debugpathcomplete and debuglabelcomplete
Bryan O'Sullivan <bryano@fb.com> [Thu, 21 Mar 2013 22:26:01 -0700] rev 18798
tests: test debugpathcomplete and debuglabelcomplete
Thu, 21 Mar 2013 22:22:21 -0700 tests: rename test-debugcomplete.t to test-completion.t
Bryan O'Sullivan <bryano@fb.com> [Thu, 21 Mar 2013 22:22:21 -0700] rev 18797
tests: rename test-debugcomplete.t to test-completion.t
Thu, 21 Mar 2013 22:10:54 -0700 pathcomplete: complete directories more conservatively
Bryan O'Sullivan <bryano@fb.com> [Thu, 21 Mar 2013 22:10:54 -0700] rev 18796
pathcomplete: complete directories more conservatively Suppose we want to perform a single-level completion (i.e. without --full) of "fi" in a repo containing "fee", "fie/dead", "fie/live", and "foe". If we give back "fie/" as the only answer, the shell will consider the completion to be unambiguous, and will append a space after the completion. We can't complete "fie/live" or "fie/dead" without first backspacing over that space. We used to thus create two fake names, "fie/a" and "fie/b", to force the shell to consider the completion to be ambiguous. It would then stop at "fie/" without appending a space, allowing us to hit tab again to complete "fie/live" or "fie/dead". The change here arises from realising that we only need to force the shell to consider a completion as ambiguous if we have exactly one directory and zero files as possible completions. This prevents spurious names from showing up as possible completions when they don't need to be invented in the first place.
Thu, 21 Mar 2013 21:20:40 -0700 sadclown: another test failure eluded me
Bryan O'Sullivan <bryano@fb.com> [Thu, 21 Mar 2013 21:20:40 -0700] rev 18795
sadclown: another test failure eluded me
Thu, 21 Mar 2013 21:07:22 -0700 bash_completion: recognize normal command abbreviations
Bryan O'Sullivan <bryano@fb.com> [Thu, 21 Mar 2013 21:07:22 -0700] rev 18794
bash_completion: recognize normal command abbreviations In many common cases, this eliminates a call to "hg help" to get a complete command name, thus improving responsiveness.
Thu, 21 Mar 2013 16:31:29 -0700 completion: selectively use debugpathcomplete in bash_completion
Bryan O'Sullivan <bryano@fb.com> [Thu, 21 Mar 2013 16:31:29 -0700] rev 18793
completion: selectively use debugpathcomplete in bash_completion The current bash_completion code can be very slow in a large working directory. It always uses "hg status" to generate possibly matching files, which checks the status of every file. We often don't care about status when completing, so that cost is very high. As the new debugpathcomplete command does not check the status of files, it offers much better performance for commands that only care about completing names.
Thu, 21 Mar 2013 16:31:28 -0700 completion: add a debugpathcomplete command
Bryan O'Sullivan <bryano@fb.com> [Thu, 21 Mar 2013 16:31:28 -0700] rev 18792
completion: add a debugpathcomplete command The bash_completion code uses "hg status" to generate a list of possible completions for commands that operate on files in the working directory. In a large working directory, this can result in a single tab-completion being very slow (several seconds) as a result of checking the status of every file, even when there is no need to check status or no possible matches. The new debugpathcomplete command gains performance in a few simple ways: * Allow completion to operate on just a single directory. When used to complete the right commands, this considerably reduces the number of completions returned, at no loss in functionality. * Never check the status of files. For completions that really must know if a file is modified, it is faster to use status: hg status -nm 'glob:myprefix**' Performance: Here are the commands used by bash_completion to complete, run in the root of the mozilla-central working dir (~77,000 files) and another repo (~165,000 files): All "normal state" files (used by e.g. remove, revert): mozilla other status -nmcd 'glob:**' 1.77 4.10 sec debugpathcomplete -f -n 0.53 1.26 debugpathcomplete -n 0.17 0.41 ("-f" means "complete full paths", rather than the current directory) Tracked files matching "a": mozilla other status -nmcd 'glob:a**' 0.26 0.47 debugpathcomplete -f -n a 0.10 0.24 debugpathcomplete -n a 0.10 0.22 We should be able to further improve completion performance once the critbit work lands. Right now, our performance is limited by the need to iterate over all keys in the dirstate.
Thu, 21 Mar 2013 11:35:34 -0700 tests: add new command to test-debugcomplete
Bryan O'Sullivan <bryano@fb.com> [Thu, 21 Mar 2013 11:35:34 -0700] rev 18791
tests: add new command to test-debugcomplete
Thu, 21 Mar 2013 10:51:18 -0700 completion: add a debuglabelcomplete command
Bryan O'Sullivan <bryano@fb.com> [Thu, 21 Mar 2013 10:51:18 -0700] rev 18790
completion: add a debuglabelcomplete command When completing a "label" (a symbolic name for a commit), the bash_completion script currently has to invoke hg three times. For a large repository, the cost of starting up and loading all the necessary context over and over is very high. For instance, in mozilla-central: time (export HGPLAIN=1; hg tags -q; hg bookmarks -q; hg branches) >/dev/null 0.446 sec Compare with the debuglabelcomplete command that this commit adds: time hg debuglabelcomplete >/dev/null 0.148 sec This greatly helps responsiveness.
Thu, 21 Mar 2013 09:13:16 -0700 bash_completion: nuke a duplicated function
Bryan O'Sullivan <bryano@fb.com> [Thu, 21 Mar 2013 09:13:16 -0700] rev 18789
bash_completion: nuke a duplicated function
Thu, 21 Mar 2013 08:56:21 +0100 run-tests: only sort files when not given as argument
Simon Heimberg <simohe@besonet.ch> [Thu, 21 Mar 2013 08:56:21 +0100] rev 18788
run-tests: only sort files when not given as argument os.listdir returns the files in any order. This has to be sorted. But when given as argument, the user should be allowed to set any order. This restores the behaviour before 9848a94e2a.
Wed, 20 Mar 2013 13:40:06 -0700 blackbox: use util.getuser for portability
Bryan O'Sullivan <bryano@fb.com> [Wed, 20 Mar 2013 13:40:06 -0700] rev 18787
blackbox: use util.getuser for portability On Windows, our implementation is more robust than Python's version.
Wed, 20 Mar 2013 13:40:05 -0700 blackbox: prevent failed I/O from causing hg to abort
Bryan O'Sullivan <bryano@fb.com> [Wed, 20 Mar 2013 13:40:05 -0700] rev 18786
blackbox: prevent failed I/O from causing hg to abort Instead, we simply print a warning message if opening the blackbox log file fails, or if writing to it fails.
Tue, 19 Mar 2013 16:19:45 -0700 merge with crew-stable
Bryan O'Sullivan <bryano@fb.com> [Tue, 19 Mar 2013 16:19:45 -0700] rev 18785
merge with crew-stable
Tue, 19 Mar 2013 13:49:34 -0700 largefiles: don't query the dirstate for key None
Siddharth Agarwal <sid0@fb.com> [Tue, 19 Mar 2013 13:49:34 -0700] rev 18784
largefiles: don't query the dirstate for key None lfutil.splitstandin(f) can be None, and we query the dirstate for that without checking if it is. This will cause problems with the upcoming move to critbit- based dicts, since they only support strings as keys.
Mon, 18 Mar 2013 19:59:05 -0500 merge
Kevin Bullock <kbullock@ringworld.org> [Mon, 18 Mar 2013 19:59:05 -0500] rev 18783
merge
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 +30000 tip