annotate .hgtags @ 16324:46b991a1f428

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.
author A. S. Budden <abudden@gmail.com>
date Fri, 30 Mar 2012 22:08:46 +0100
parents e6a9f73965a8
children 798f655a0681
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
66
5ec8b2ed858f Beginnings of changelog tagging
mpm@selenic.com
parents:
diff changeset
1 d40cc5aacc31ed673d9b5b24f98bee78c283062c 0.4f
5ec8b2ed858f Beginnings of changelog tagging
mpm@selenic.com
parents:
diff changeset
2 1c590d34bf61e2ea12c71738e5a746cd74586157 0.4e
5ec8b2ed858f Beginnings of changelog tagging
mpm@selenic.com
parents:
diff changeset
3 7eca4cfa8aad5fce9a04f7d8acadcd0452e2f34e 0.4d
5ec8b2ed858f Beginnings of changelog tagging
mpm@selenic.com
parents:
diff changeset
4 b4d0c3786ad3e47beacf8412157326a32b6d25a4 0.4c
189
37625132fe37 Add tag for 0.5
mpm@selenic.com
parents: 66
diff changeset
5 f40273b0ad7b3a6d3012fd37736d0611f41ecf54 0.5
194
4ec26766be83 Update tags
mpm@selenic.com
parents: 189
diff changeset
6 0a28dfe59f8fab54a5118c5be4f40da34a53cdb7 0.5b
458
ff8fbf99cd64 Added tag 0.6 for changeset 12e0fdbc57a0be78f0e817fd1d170a3615cd35da
mpm@selenic.com
parents: 194
diff changeset
7 12e0fdbc57a0be78f0e817fd1d170a3615cd35da 0.6
685
79fb7032739f Added tag 0.6b for changeset 4ccf3de52989b14c3d84e1097f59e39a992e00bd
Matt Mackall <mpm@selenic.com>
parents: 458
diff changeset
8 4ccf3de52989b14c3d84e1097f59e39a992e00bd 0.6b
972
0bc72d91aeda Added tag 0.6c for changeset eac9c8efcd9bd8244e72fb6821f769f450457a32
mpm@selenic.com
parents: 685
diff changeset
9 eac9c8efcd9bd8244e72fb6821f769f450457a32 0.6c
1266
703783bc09c4 Added tag 0.7 for changeset 979c049974485125e1f9357f6bbe9c1b548a64c3
mpm@selenic.com
parents: 981
diff changeset
10 979c049974485125e1f9357f6bbe9c1b548a64c3 0.7
1666
0fc1b588976f Added tag 0.8 for changeset 3a56574f329a368d645853e0f9e09472aee62349
Matt Mackall <mpm@selenic.com>
parents: 1266
diff changeset
11 3a56574f329a368d645853e0f9e09472aee62349 0.8
2052
c0b945c5df08 Added tag 0.8.1 for changeset 6a03cff2b0f5d30281e6addefe96b993582f2eac
Matt Mackall <mpm@selenic.com>
parents: 1666
diff changeset
12 6a03cff2b0f5d30281e6addefe96b993582f2eac 0.8.1
2252
ba7afc7dd901 Added tag 0.9 for changeset 35fb62a3a673d5322f6274a44ba6456e5e4b3b37
Matt Mackall <mpm@selenic.com>
parents: 2052
diff changeset
13 35fb62a3a673d5322f6274a44ba6456e5e4b3b37 0.9
2659
93b765f30c07 Added tag 0.9.1 for changeset 2be3001847cb18a23c403439d9e7d0ace30804e9
Matt Mackall <mpm@selenic.com>
parents: 2252
diff changeset
14 2be3001847cb18a23c403439d9e7d0ace30804e9 0.9.1
3866
740b2a23c0db Added tag 0.9.2 for changeset 36a957364b1b
Matt Mackall <mpm@selenic.com>
parents: 2659
diff changeset
15 36a957364b1b89c150f2d0e60a99befe0ee08bd3 0.9.2
3924
b27f1da6ca88 Added tag 0.9.3 for changeset 27230c29bfec
Matt Mackall <mpm@selenic.com>
parents: 3866
diff changeset
16 27230c29bfec36d5540fbe1c976810aefecfd1d2 0.9.3
4724
a084ed4b0c35 Added tag 0.9.4 for changeset fb4b6d5fe100
Matt Mackall <mpm@selenic.com>
parents: 3924
diff changeset
17 fb4b6d5fe100b0886f8bc3d6731ec0e5ed5c4694 0.9.4
5473
040984468440 Added tag 0.9.5 for changeset 23889160905a
Matt Mackall <mpm@selenic.com>
parents: 4724
diff changeset
18 23889160905a1b09fffe1c07378e9fc1827606eb 0.9.5
6387
cfa08c88a5c4 Added tag 1.0 for changeset bae2e9c838e9
Matt Mackall <mpm@selenic.com>
parents: 5473
diff changeset
19 bae2e9c838e90a393bae3973a7850280413e091a 1.0
6623
58d4c6ae99f7 Added tag 1.0.1 for changeset d5cbbe2c49ce
Matt Mackall <mpm@selenic.com>
parents: 6387
diff changeset
20 d5cbbe2c49cee22a9fbeb9ea41daa0ac4e26b846 1.0.1
6882
6ca12c67447c Added tag 1.0.2 for changeset d2375bbee6d4
Matt Mackall <mpm@selenic.com>
parents: 6623
diff changeset
21 d2375bbee6d47e62ba8e415c86e83a465dc4dce9 1.0.2
7462
40098e76d376 Added tag 1.1 for changeset 2a67430f92f1
Matt Mackall <mpm@selenic.com>
parents: 6882
diff changeset
22 2a67430f92f15ea5159c26b09ec4839a0c549a26 1.1
7531
e9d21bbfd4cc Added tag 1.1.1 for changeset 3773e510d433
Matt Mackall <mpm@selenic.com>
parents: 7462
diff changeset
23 3773e510d433969e277b1863c317b674cbee2065 1.1.1
7555
5a6f417fa029 Added tag 1.1.2 for changeset 11a4eb81fb4f
Matt Mackall <mpm@selenic.com>
parents: 7531
diff changeset
24 11a4eb81fb4f4742451591489e2797dc47903277 1.1.2
7824
0b5c7c239d29 Added tag 1.2 for changeset 11efa41037e2
Matt Mackall <mpm@selenic.com>
parents: 7555
diff changeset
25 11efa41037e280d08cfb07c09ad485df30fb0ea8 1.2
7863
34eaa67fc7ea Added tag 1.2.1 for changeset 02981000012e
Matt Mackall <mpm@selenic.com>
parents: 7824
diff changeset
26 02981000012e3adf40c4849bd7b3d5618f9ce82d 1.2.1
9010
475a02734d84 Added tag 1.3 for changeset 196d40e7c885
Matt Mackall <mpm@selenic.com>
parents: 7863
diff changeset
27 196d40e7c885fa6e95f89134809b3ec7bdbca34b 1.3
9191
0d7b21053805 Added tag 1.3.1 for changeset 3ef6c14a1e8e
Matt Mackall <mpm@selenic.com>
parents: 9010
diff changeset
28 3ef6c14a1e8e83a31226f5881b7fe6095bbfa6f6 1.3.1
9870
f6a2dbbb0776 Added tag 1.4 for changeset 31ec469f9b55
Matt Mackall <mpm@selenic.com>
parents: 9191
diff changeset
29 31ec469f9b556f11819937cf68ee53f2be927ebf 1.4
9986
6fa13bd71b20 Added tag 1.4.1 for changeset 439d7ea6fe3a
Matt Mackall <mpm@selenic.com>
parents: 9870
diff changeset
30 439d7ea6fe3aa4ab9ec274a68846779153789de9 1.4.1
10193
36209ca38219 Added tag 1.4.2 for changeset 296a0b14a686
Matt Mackall <mpm@selenic.com>
parents: 9986
diff changeset
31 296a0b14a68621f6990c54fdba0083f6f20935bf 1.4.2
10310
61750d3aa00c Added tag 1.4.3 for changeset 4aa619c4c2c0
Matt Mackall <mpm@selenic.com>
parents: 10193
diff changeset
32 4aa619c4c2c09907034d9824ebb1dd0e878206eb 1.4.3
10592
1875dc1ac5f4 Added tag 1.5 for changeset ff2704a8ded3
Matt Mackall <mpm@selenic.com>
parents: 10310
diff changeset
33 ff2704a8ded37fbebd8b6eb5ec733731d725da8a 1.5
10811
644445eddf5c Added tag 1.5.1 for changeset 2b01dab59416
Matt Mackall <mpm@selenic.com>
parents: 10592
diff changeset
34 2b01dab594167bc0dd33331dbaa6dca3dca1b3aa 1.5.1
11081
831b1a740fa0 Added tag 1.5.2 for changeset 39f725929f0c
Matt Mackall <mpm@selenic.com>
parents: 10811
diff changeset
35 39f725929f0c48c5fb3b90c071fc3066012456ca 1.5.2
11170
08578751a20f Added tag 1.5.3 for changeset fdcf80f26604
Matt Mackall <mpm@selenic.com>
parents: 11081
diff changeset
36 fdcf80f26604f233dc4d8f0a5ef9d7470e317e8a 1.5.3
11260
44546b8c588a Added tag 1.5.4 for changeset 24fe2629c6fd
Matt Mackall <mpm@selenic.com>
parents: 11170
diff changeset
37 24fe2629c6fd0c74c90bd066e77387c2b02e8437 1.5.4
11489
2ac897ef5219 Added tag 1.6 for changeset f786fc4b8764
Matt Mackall <mpm@selenic.com>
parents: 11260
diff changeset
38 f786fc4b8764cd2a5526d259cf2f94d8a66924d9 1.6
11724
8a3d687713ee Added tag 1.6.1 for changeset bf1774d95bde
Matt Mackall <mpm@selenic.com>
parents: 11489
diff changeset
39 bf1774d95bde614af3956d92b20e2a0c68c5fec7 1.6.1
11737
1bb99194bedc Added tag 1.6.2 for changeset c00f03a4982e
Matt Mackall <mpm@selenic.com>
parents: 11724
diff changeset
40 c00f03a4982e467fb6b6bd45908767db6df4771d 1.6.2
12052
a4fc3444c542 Added tag 1.6.3 for changeset ff5cec76b1c5
Matt Mackall <mpm@selenic.com>
parents: 11737
diff changeset
41 ff5cec76b1c5b6be9c3bb923aae8c3c6d079d6b9 1.6.3
12610
80345db2b6a3 Added tag 1.6.4 for changeset 93d8bff78c96
Matt Mackall <mpm@selenic.com>
parents: 12052
diff changeset
42 93d8bff78c96fe7e33237b257558ee97290048a4 1.6.4
12910
d0b08dcbcf0b Added tag 1.7 for changeset 333421b9e0f9
Matt Mackall <mpm@selenic.com>
parents: 12610
diff changeset
43 333421b9e0f96c7bc788e5667c146a58a9440a55 1.7
12988
83841063e0c3 Added tag 1.7.1 for changeset 4438875ec01b
Matt Mackall <mpm@selenic.com>
parents: 12910
diff changeset
44 4438875ec01bd0fc32be92b0872eb6daeed4d44f 1.7.1
13070
ad3acb1ff4ac Added tag 1.7.2 for changeset 6aff4f144ad3
Matt Mackall <mpm@selenic.com>
parents: 12988
diff changeset
45 6aff4f144ad356311318b0011df0bb21f2c97429 1.7.2
13226
6264b6dedf11 Added tag 1.7.3 for changeset e3bf16703e26
Matt Mackall <mpm@selenic.com>
parents: 13070
diff changeset
46 e3bf16703e2601de99e563cdb3a5d50b64e6d320 1.7.3
13320
ad7f8c53ce0c Added tag 1.7.4 for changeset a6c855c32ea0
Matt Mackall <mpm@selenic.com>
parents: 13226
diff changeset
47 a6c855c32ea081da3c3b8ff628f1847ff271482f 1.7.4
13335
36f5fc742a5a Added tag 1.7.5 for changeset 2b2155623ee2
Matt Mackall <mpm@selenic.com>
parents: 13320
diff changeset
48 2b2155623ee2559caf288fd333f30475966c4525 1.7.5
13516
844ad9d91369 Added tag 1.8 for changeset 2616325766e3
Matt Mackall <mpm@selenic.com>
parents: 13335
diff changeset
49 2616325766e3504c8ae7c84bd15ee610901fe91d 1.8
13574
7250ef96c1ef Added tag 1.8.1 for changeset aa1f3be38ab1
Matt Mackall <mpm@selenic.com>
parents: 13516
diff changeset
50 aa1f3be38ab127280761889d2dca906ca465b5f4 1.8.1
13846
542fa0290298 Added tag 1.8.2 for changeset b032bec2c0a6
Matt Mackall <mpm@selenic.com>
parents: 13574
diff changeset
51 b032bec2c0a651ca0ddecb65714bfe6770f67d70 1.8.2
14110
fdb1a5b3a18c Added tag 1.8.3 for changeset 3cb1e95676ad
Matt Mackall <mpm@selenic.com>
parents: 13846
diff changeset
52 3cb1e95676ad089596bd81d0937cad37d6e3b7fb 1.8.3
14507
521496668568 Added tag 1.8.4 for changeset 733af5d9f6b2
Matt Mackall <mpm@selenic.com>
parents: 14110
diff changeset
53 733af5d9f6b22387913e1d11350fb8cb7c1487dd 1.8.4
14826
c2daf27b4e62 Added tag 1.9 for changeset de9eb6b1da4f
Matt Mackall <mpm@selenic.com>
parents: 14507
diff changeset
54 de9eb6b1da4fc522b1cab16d86ca166204c24f25 1.9
15006
3a0ed101e9e8 Added tag 1.9.1 for changeset 4a43e23b8c55
Matt Mackall <mpm@selenic.com>
parents: 14826
diff changeset
55 4a43e23b8c55b4566b8200bf69fe2158485a2634 1.9.1
15059
97b936d2ac68 Added tag 1.9.2 for changeset d629f1e89021
Matt Mackall <mpm@selenic.com>
parents: 15006
diff changeset
56 d629f1e89021103f1753addcef6b310e4435b184 1.9.2
15185
0e8b8f42b231 Added tag 1.9.3 for changeset 351a9292e430
Matt Mackall <mpm@selenic.com>
parents: 15059
diff changeset
57 351a9292e430e35766c552066ed3e87c557b803b 1.9.3
15274
a06575962c9e Added tag 2.0-rc for changeset 384082750f2c
Matt Mackall <mpm@selenic.com>
parents: 15185
diff changeset
58 384082750f2c51dc917d85a7145748330fa6ef4d 2.0-rc
15400
c23737b76030 Added tag 2.0 for changeset 41453d55b481
Matt Mackall <mpm@selenic.com>
parents: 15280
diff changeset
59 41453d55b481ddfcc1dacb445179649e24ca861d 2.0
15601
22148c19f150 Added tag 2.0.1 for changeset 195dbd1cef0c
Matt Mackall <mpm@selenic.com>
parents: 15400
diff changeset
60 195dbd1cef0c2f9f8bcf4ea303238105f716bda3 2.0.1
15761
10dc013bb0fd Added tag 2.0.2 for changeset 634404392449
Matt Mackall <mpm@selenic.com>
parents: 15601
diff changeset
61 6344043924497cd06d781d9014c66802285072e4 2.0.2
15960
85a69407f425 Added tag 2.1-rc for changeset db33555eafea
Matt Mackall <mpm@selenic.com>
parents: 15761
diff changeset
62 db33555eafeaf9df1e18950e29439eaa706d399b 2.1-rc
16052
79e37dd6c28f Added tag 2.1 for changeset 2aa5b51f310f
Matt Mackall <mpm@selenic.com>
parents: 15960
diff changeset
63 2aa5b51f310fb3befd26bed99c02267f5c12c734 2.1
16203
e6a9f73965a8 Added tag 2.1.1 for changeset 53e2cd303ecf
Matt Mackall <mpm@selenic.com>
parents: 16052
diff changeset
64 53e2cd303ecf8ca7c7eeebd785c34e5ed6b0f4a4 2.1.1