Fri, 30 Mar 2012 22:08:46 +0100 record: allow splitting of hunks by manually editing patches
A. S. Budden <abudden@gmail.com> [Fri, 30 Mar 2012 22:08:46 +0100] rev 16324
record: allow splitting of hunks by manually editing patches It is possible that unrelated changes in a file are on sequential lines. The current record extension does not allow these to be committed independently. An example use case for this is in software development for deeply embedded real-time systems. In these environments, it is not always possible to use a debugger (due to time-constraints) and hence inline UART-based printing is often used. When fixing a bug in a module, it is often convenient to add a large number of 'printf's (linked to the UART via a custom fputc) to the module in order to work out what is going wrong. printf is a very slow function (and also variadic so somewhat frowned upon by the MISRA standard) and hence it is highly undesirable to commit these lines to the repository. If only a partial fix is implemented, however, it is desirable to commit the fix without deleting all of the printf lines. This is also simplifies removal of the printf lines as once the final fix is committed, 'hg revert' does the rest. It is likely that the printf lines will be very near the actual fix, so being able to split the hunk is very useful in this case. There were two alternatives I considered for the user interface. One was to manually edit the patch, the other to allow a hunk to be split into individual lines for consideration. The latter option would require a significant refactor of the record module and is less flexible. While the former is potentially more complicated to use, this is a feature that is likely to only be used in certain exceptional cases (such as the use case proposed above) and hence I felt that the complexity would not be a considerable issue. I've also written a follow-up patch that refactors the 'prompt' code to base everything on the choices variable. This tidies up and clarifies the code a bit (removes constructs like 'if ret == 7' and removes the 'e' option from the file scope options as it's not relevant there. It's not really a necessity, so I've excluded it from this submission for now, but I can send it separately if there's a desire and it's on bitbucket (see below) in the meantime. Possible future improvements include: * Tidying up the 'prompt' code to base everything on the choices variable. This would allow entries to be removed from the prompt as currently 'e' is offered even for entire file patches, which is currently unsupported. * Allowing the entire file (or even multi-file) patch to be edited manually: this would require quite a large refactor without much benefit, so I decided to exclude it from the initial submission. * Allow the option to retry if a patch fails to apply (this is what Git does). This would require quite a bit of refactoring given the current 'hg record' implementation, so it's debatable whether it's worth it. Output is similar to existing record user interface except that an additional option ('e') exists to allow manual editing of the patch. This opens the user's configured editor with the patch. A comment is added to the bottom of the patch explaining what to do (based on Git's one). A large proportion of the changeset is test-case changes to update the options reported by record (Ynesfdaq? instead of Ynsfdaq?). Functional changes are in record.py and there are some new test cases in test-record.t.
Sat, 31 Mar 2012 15:55:03 +0900 dirstate: fix some problems for recursive case normalization (issue3342) stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 31 Mar 2012 15:55:03 +0900] rev 16323
dirstate: fix some problems for recursive case normalization (issue3342) file in nested directory causes unexpected abort. problems below should be fixed for recursive normalization route in dirstate._normalize(): 1. rsplit() may cause unpacking into more than 2 elements. it should be called with 'maxsplit' argument to unpack into 'd, f' 2. 'd' is replaced by normalized value prefixed with 'self._root', but this makes 'folded' as absolute path, and it is unexpected one for caller of recursive normalization
Sat, 31 Mar 2012 10:44:31 -0500 tests: add a blacklist for VFAT on Linux stable
Matt Mackall <mpm@selenic.com> [Sat, 31 Mar 2012 10:44:31 -0500] rev 16322
tests: add a blacklist for VFAT on Linux
Sat, 31 Mar 2012 10:44:31 -0500 tests: make test-walkrepo use hg's symlink test stable
Matt Mackall <mpm@selenic.com> [Sat, 31 Mar 2012 10:44:31 -0500] rev 16321
tests: make test-walkrepo use hg's symlink test
Sat, 31 Mar 2012 10:44:31 -0500 tests: make hghave handle exec bit on Linux with vfat stable
Matt Mackall <mpm@selenic.com> [Sat, 31 Mar 2012 10:44:31 -0500] rev 16320
tests: make hghave handle exec bit on Linux with vfat
Sat, 31 Mar 2012 10:44:31 -0500 tests: teach hghave to actually test for symlink support stable
Matt Mackall <mpm@selenic.com> [Sat, 31 Mar 2012 10:44:31 -0500] rev 16319
tests: teach hghave to actually test for symlink support
Fri, 30 Mar 2012 14:35:06 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 30 Mar 2012 14:35:06 -0500] rev 16318
merge with stable
Fri, 30 Mar 2012 14:29:50 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Fri, 30 Mar 2012 14:29:50 -0500] rev 16317
merge with i18n
Thu, 29 Mar 2012 22:42:03 +0200 graphlog: handle old-style --rev values
Patrick Mezard <patrick@mezard.eu> [Thu, 29 Mar 2012 22:42:03 +0200] rev 16316
graphlog: handle old-style --rev values --rev options cannot be merged into a single revset because we do not know if they are valid revset or old-style revision specifications, like 'foo-bar' tags. Instead, a base revision set is generated with scmutil.revrange() then filtered with the revset built from log options. It also fixes incorrect or hostile expressions passed in --rev.
Thu, 29 Mar 2012 17:13:23 +0200 test-glog: pretty print revset expressions
Patrick Mezard <patrick@mezard.eu> [Thu, 29 Mar 2012 17:13:23 +0200] rev 16315
test-glog: pretty print revset expressions
Thu, 29 Mar 2012 16:55:08 +0200 graphlog: improve --only-branch handling
Patrick Mezard <patrick@mezard.eu> [Thu, 29 Mar 2012 16:55:08 +0200] rev 16314
graphlog: improve --only-branch handling The previous code was correct for command line as opts always contains the default empty lists for --branch and --only-branch options. But calling graphlog.revset() directly with only --only-branch set would leave it unprocessed.
Sat, 31 Mar 2012 00:04:08 +0900 dirstate: avoid normalizing letter case on icasefs for exact match (issue3340) stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 31 Mar 2012 00:04:08 +0900] rev 16313
dirstate: avoid normalizing letter case on icasefs for exact match (issue3340) on icasefs, "hg qnew" fails to import changing letter case of filename already occurred in working directory, for example: $ hg rename a tmp $ hg rename tmp A $ hg qnew casechange $ hg status R a $ "hg qnew" invokes 'dirstate.walk()' via 'localrepository.commit()' with 'exact match' matching object having exact filenames of targets in ones 'files()'. current implementation of 'dirstate.walk()' always normalizes letter case of filenames from 'match.files()' on icasefs, even though exact matching is required. then, files only different in letter case are treated as one file. this patch prevents 'dirstate.walk()' from normalizing, if exact matching is required, even on icasefs. filenames for 'exact matching' are given not from user command line, but from dirstate walk result, manifest of changecontext, patch files or fixed list for specific system files (e.g.: '.hgtags'). in such case, case normalization should not be done, so this patch works well.
Fri, 30 Mar 2012 21:18:37 +0900 i18n-ja: synchronized with cb17c2f5b7b4 stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 30 Mar 2012 21:18:37 +0900] rev 16312
i18n-ja: synchronized with cb17c2f5b7b4
Thu, 29 Mar 2012 18:14:20 -0300 i18n-pt_BR: synchronized with 795d591b6ef5 stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Thu, 29 Mar 2012 18:14:20 -0300] rev 16311
i18n-pt_BR: synchronized with 795d591b6ef5
Thu, 29 Mar 2012 22:16:56 +0900 tests: skip test-lfconvert.t if not support symblic link
Takumi IINO <trot.thunder@gmail.com> [Thu, 29 Mar 2012 22:16:56 +0900] rev 16310
tests: skip test-lfconvert.t if not support symblic link Windows not support symbolic link. but test-lfconvert.t execute 'ln -s' command. @@ -51,8 +51,6 @@ skipping incorrectly formatted tag IncorrectlyFormattedTag! skipping incorrectly formatted id invalidhash no mapping for id 0123456789abcdef - abort: renamed/copied largefile large3 becomes symlink - [255] $ cd bigfile-repo $ hg strip --no-backup 2 0 files updated, 0 files merged, 2 files removed, 0 files unresolved ERROR: test-lfconvert.t output changed
Fri, 30 Mar 2012 14:16:06 -0500 perf: node lookup
Matt Mackall <mpm@selenic.com> [Fri, 30 Mar 2012 14:16:06 -0500] rev 16309
perf: node lookup
Fri, 23 Mar 2012 01:31:31 +0100 hgweb: add block numbers to diff regions and related links
Paul Boddie <paul@boddie.org.uk> [Fri, 23 Mar 2012 01:31:31 +0100] rev 16308
hgweb: add block numbers to diff regions and related links The changeset view may show several diff regions, one per file, and this patch numbers each of them so that links produced by the filenodelink fragment can reference each diff region produced by the diffblock fragment through the use of the blockno variable made available to both of them. This permits navigation to diff regions on the changeset page from the file list, and where the :target pseudo-class is supported in browsers, permits selective presentation of diffs, showing one at a time instead of potentially many in what would otherwise be a very long page that is difficult to navigate.
Wed, 21 Mar 2012 06:45:07 +0100 patchbomb: add --body flag to send patches as inline message body text
Angel Ezquerra <angel.ezquerra@gmail.com> [Wed, 21 Mar 2012 06:45:07 +0100] rev 16307
patchbomb: add --body flag to send patches as inline message body text There is currently no way to make patchbomb include patches both as attachments and as inline text. This would be quite convenient when sending patches to people who use web email clients (e.g. gmail) which often mangle the patches, making them hard to apply. The default behavior of the email command is unchanged. However it is now possible to use the --body flag _in addition_ to the -i or -a flags, in which case the patchbomb emails will contain the patch as inline body text and as an attachment. A new test has been added to test-patchbomb.t ("test attach for single patch"), based on the existing test called "test attach for single patch" test.
Wed, 28 Mar 2012 15:25:20 -0400 shrink-revlog: make check-code happier
Greg Ward <greg@gerg.ca> [Wed, 28 Mar 2012 15:25:20 -0400] rev 16306
shrink-revlog: make check-code happier There's still a naked 'except:' clause, but I'm not sure how to fix it (what exception is it expecting?). This just fixes line length.
Wed, 28 Mar 2012 15:15:15 -0400 shrink-revlog: make pyflakes happy
Greg Ward <greg@gerg.ca> [Wed, 28 Mar 2012 15:15:15 -0400] rev 16305
shrink-revlog: make pyflakes happy
Wed, 28 Mar 2012 11:42:17 +0200 revert: move bulk of revert command from commands to cmdutil
Angel Ezquerra <angel.ezquerra@gmail.com> [Wed, 28 Mar 2012 11:42:17 +0200] rev 16304
revert: move bulk of revert command from commands to cmdutil This revision has no functionality change. The code on the original commands.revert() function has been split. The first part of the original code, which checks that the command inputs are correct remains in commands.revert(). The rest of the function, which performs the actual revert operation has been moved into cmdutil.revert(). The purpose of this change is to make it easier to perform a revert operation, from other parts of the code. This may be used to implement reverting of subrepos.
Thu, 29 Mar 2012 00:35:00 +0200 mq: fix qpush --move with comments in series file between applied patches stable
Mads Kiilerich <mads@kiilerich.com> [Thu, 29 Mar 2012 00:35:00 +0200] rev 16303
mq: fix qpush --move with comments in series file between applied patches The 'start' variable pointed to qtip in self.series, but it was used for indexing self.fullseries. When fullseries had holes and the patch was moved to self.fullseries[start] it would end up too early in self.series and it could thus not be found in self.series[start:] and it would crash. Now the 'fullstart' index in fullseries is found used instead.
Wed, 28 Mar 2012 19:24:13 -0500 dirstate: normalize case of directory components stable
Matt Mackall <mpm@selenic.com> [Wed, 28 Mar 2012 19:24:13 -0500] rev 16302
dirstate: normalize case of directory components If we have an existing f/a, and rename f to F, adding F/b should be normalized to f/b.
Wed, 28 Mar 2012 19:24:11 -0500 tests: fix startup race in test-http-proxy stable
Matt Mackall <mpm@selenic.com> [Wed, 28 Mar 2012 19:24:11 -0500] rev 16301
tests: fix startup race in test-http-proxy
Wed, 28 Mar 2012 19:23:25 -0500 tests: fix startup/shutdown races in test-https stable
Matt Mackall <mpm@selenic.com> [Wed, 28 Mar 2012 19:23:25 -0500] rev 16300
tests: fix startup/shutdown races in test-https tinyproxy now writes its own pid when it's ready to accept connections
Wed, 28 Mar 2012 12:02:38 -0500 tests: remove sleep/startup/shutdown races from test-hup stable
Matt Mackall <mpm@selenic.com> [Wed, 28 Mar 2012 12:02:38 -0500] rev 16299
tests: remove sleep/startup/shutdown races from test-hup
Wed, 28 Mar 2012 11:28:37 -0500 tests: fix shutdown race in test-hgweb-raw stable
Matt Mackall <mpm@selenic.com> [Wed, 28 Mar 2012 11:28:37 -0500] rev 16298
tests: fix shutdown race in test-hgweb-raw
Wed, 28 Mar 2012 10:29:39 -0500 tests: eliminate shutdown race and sleeps in test-serve stable
Matt Mackall <mpm@selenic.com> [Wed, 28 Mar 2012 10:29:39 -0500] rev 16297
tests: eliminate shutdown race and sleeps in test-serve
Wed, 28 Mar 2012 10:11:12 -0500 tests: eliminate daemon race in test-bad-pull stable
Matt Mackall <mpm@selenic.com> [Wed, 28 Mar 2012 10:11:12 -0500] rev 16296
tests: eliminate daemon race in test-bad-pull
Tue, 27 Mar 2012 16:17:46 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 27 Mar 2012 16:17:46 -0500] rev 16295
merge with stable
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 +30000 tip