What's cooking (2017/05 #04)
Junio C Hamano committed
May 12, 2017 at 15:40 UTC
6b8f26608044ddcce558d2c07a10206a0b2d6a8f
1 file changed
+223
-156
whats-cooking.txt
+223
-156
@@ -1,10 +1,10 @@
1
To: git@vger.kernel.org
2
Bcc: lwn@lwn.net
3
-Subject: What's cooking in git.git (May 2017, #03; Wed, 10)
3
+Subject: What's cooking in git.git (May 2017, #04; Fri, 12)
4
X-master-at: b06d3643105c8758ed019125a4399cb7efdcce2c
5
X-next-at: 4ebf3021692df4cb51da8d806fbb8b909ee7e111
6
7
-What's cooking in git.git (May 2017, #03; Wed, 10)
7
+What's cooking in git.git (May 2017, #04; Fri, 12)
8
--------------------------------------------------
9
10
Here are the topics that have been cooking. Commits prefixed with
@@ -12,69 +12,114 @@ Here are the topics that have been cooking. Commits prefixed with
12
'+' are in 'next'. The ones marked with '.' do not appear in any of
13
the integration branches, but I am still holding onto them.
14
15
-Git 2.13, together with maintenance releases for 9 maintenance
16
-tracks, has been tagged. Let's wait for a few days to see if users
17
-find embarrassing regressions and then start the next cycle. In the
18
-meantime, please pay closer attention to the topics that have been
19
-stalled or waiting to be reviewed for too long and think of ways to
20
-help moving them forward, before you start sending your new shiny
21
-toys to the list.
22
-
15
You can find the changes described here in the integration branches
16
of the repositories listed at
17
18
http://git-blame.blogspot.com/p/git-public-repositories.html
19
20
--------------------------------------------------
29
-[Graduated to "master"]
21
+[New Topics]
22
31
-* jh/verify-index-checksum-only-in-fsck (2017-04-27) 1 commit
32
- (merged to 'next' on 2017-04-28 at afb4c70061)
33
- + t1450: avoid use of "sed" on the index, which is a binary file
23
+* bw/pathspec-sans-the-index (2017-05-12) 6 commits
24
+ - pathspec: convert find_pathspecs_matching_against_index to take an index
25
+ - pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_CHEAP
26
+ - ls-files: prevent prune_cache from overeagerly pruning submodules
27
+ - pathspec: remove PATHSPEC_STRIP_SUBMODULE_SLASH_EXPENSIVE flag
28
+ - submodule: add die_in_unpopulated_submodule function
29
+ - pathspec: provide a more descriptive die message
30
35
- Update an unportable constructin a new test.
31
+ Simplify parse_pathspec() codepath and stop it from looking at the
32
+ default in-core index.
33
37
---------------------------------------------------
38
-[New Topics]
34
40
-* ab/compat-regex-update (2017-05-09) 2 commits
41
- - compat/regex: update the gawk regex engine from upstream
42
- - compat/regex: add a README with a maintenance guide
35
+* jt/fetch-allow-tip-sha1-implicitly (2017-05-12) 1 commit
36
+ - fetch-pack: always allow fetching of literal SHA1s
37
+
38
+ There is no good reason why "git fetch $there $sha1" should fail
39
+ when the $sha1 names an object at the tip of an advertised ref,
40
+ even when the other side hasn't enabled allowTipSHA1InWant.
41
+
42
+
43
+* jc/read-tree-empty-with-m (2017-05-10) 1 commit
44
+ - read-tree: "read-tree -m --empty" does not make sense
45
+
46
+ "git read-tree -m" (no tree-ish) gave a nonsense suggestion "use
47
+ --empty if you want to clear the index". With "-m", such a request
48
+ will still fail anyway, as you'd need to name at least one tree-ish
49
+ to be merged.
50
51
Will merge to 'next'.
52
53
47
-* jc/apply-fix-mismerge (2017-05-08) 1 commit
48
- (merged to 'next' on 2017-05-09 at e0b89532d0)
49
- + apply.c: fix whitespace-only mismerge
54
+* ab/perf-wildmatch (2017-05-12) 2 commits
55
+ - perf: add test showing exponential growth in path globbing
56
+ - perf: add function to setup a fresh test repo
57
51
- Will merge to 'master'.
58
+ Add perf-test for wildmatch.
59
60
+ Will merge to 'next'.
61
54
-* jt/push-options-doc (2017-05-10) 2 commits
55
- - receive-pack: verify push options in cert
56
- - docs: correct receive.advertisePushOptions default
62
58
- The receive-pack program now makes sure that the push certificate
59
- records the same set of push options used for pushing.
63
+* jk/doc-config-include (2017-05-12) 4 commits
64
+ - docs/config: consistify include.path examples
65
+ - docs/config: avoid the term "expand" for includes
66
+ - docs/config: give a relative includeIf example
67
+ - docs/config: clarify include/includeIf relationship
68
+
69
+ Clarify documentation for include.path and includeIf.<condition>.path
70
+ configuration variables.
71
72
Will merge to 'next'.
73
74
64
-* dt/unpack-save-untracked-cache-extension (2017-05-09) 1 commit
65
- - DONTMERGE: unpack-trees: preserve index extensions
75
+* js/retire-old-remote-spec (2017-05-12) 11 commits
76
+ - PREVIEW: remove support for .git/remotes/ and .git/branches/
77
+ - PREVIEW: t0060: stop testing support for .git/remotes/ and .git/branches/
78
+ - PREVIEW: t5515: remove .git/remotes/ and .git/branches/ tests
79
+ - PREVIEW: remote: remove support for migrating ancient remotes
80
+ - PREVIEW: t5516: stop testing .git/branches/ functionality
81
+ - PREVIEW: t5510: convert .git/remotes/ test to use a regular remote
82
+ - Revert "Revert "Don't create the $GIT_DIR/branches directory on init""
83
+ - remote: warn loud and clear when .git/remotes/ is *still* used
84
+ - remote: warn loud and clear when .git/branches/ is *still* used
85
+ - Documentation: really deprecate .git/remotes/ and .git/branches/
86
+ - git-parse-remote: fix highly misleading man page
87
+
88
+ Stop reading from .git/remotes/ and .git/branches/, two old ways
89
+ that we have been supporting to configure short-hands for fetching
90
+ from remote repositories.
91
+
92
+
93
+* ab/grep-preparatory-cleanup (2017-05-12) 15 commits
94
+ - grep: add tests to fix blind spots with \0 patterns
95
+ - grep: prepare for testing binary regexes containing rx metacharacters
96
+ - SQUASH???
97
+ - grep: add a test helper function for less verbose -f \0 tests
98
+ - grep: add tests for grep pattern types being passed to submodules
99
+ - grep: amend submodule recursion test for regex engine testing
100
+ - grep: add tests for --threads=N and grep.threads
101
+ - SQUASH???
102
+ - grep: change non-ASCII -i test to stop using --debug
103
+ - grep: add a test for backreferences in PCRE patterns
104
+ - grep: add a test asserting that --perl-regexp dies when !PCRE
105
+ - log: add exhaustive tests for pattern style options & config
106
+ - test-lib: rename the LIBPCRE prerequisite to PCRE
107
+ - grep & rev-list doc: stop promising libpcre for --perl-regexp
108
+ - Makefile & configure: reword inaccurate comment about PCRE
109
+
110
+ (what is queued here is only the early part of a larger series)
111
112
--------------------------------------------------
113
[Stalled]
114
70
-* mg/status-in-progress-info (2017-04-14) 1 commit
115
+* mg/status-in-progress-info (2017-05-10) 2 commits
116
+ - status --short --inprogress: spell it as --in-progress
117
- status: show in-progress info for short status
118
119
"git status" learns an option to report various operations
120
(e.g. "merging") that the user is in the middle of.
121
76
- It is still unclear if the participants decided that it is OK to
77
- spell "--inprogress" as a single word.
122
+ cf. <xmqqmvakcdqw.fsf@gitster.mtv.corp.google.com>
123
124
125
* mg/name-rev-debug (2017-03-31) 4 commits
@@ -144,39 +189,10 @@ of the repositories listed at
189
Opinions?
190
191
147
-* ja/doc-l10n (2017-03-20) 3 commits
148
- . SQUASH???
149
- . l10n: add git-add.txt to localized man pages
150
- . l10n: introduce framework for localizing man pages
151
-
152
- A proposal to use po4a to localize our manual pages.
153
-
154
- Will discard.
155
- Has been stalled for too long.
156
-
157
-
192
* ls/filter-process-delayed (2017-03-06) 1 commit
193
- convert: add "status=delayed" to filter process protocol
194
161
- What's the status of this one???
162
- cf. <xmqq60jmnmef.fsf@junio-linux.mtv.corp.google.com>
163
-
164
-
165
-* jk/parse-options-no-no-no (2017-04-25) 2 commits
166
- . SQUASH???
167
- . parse-options: disallow double-negations of options starting with no-
168
-
169
- Command line options that begin with "--no-" (e.g. "--no-checkout"
170
- option of "git clone") can be negated by removing "--no-"; we
171
- historically also allowed prefixing an extra "no" to the option
172
- (e.g. "--no-no-checkout"), which made the command line look ugly
173
- and unusual. This proposes to forbid it.
174
-
175
- While I agree there is no need to support "--no-no-checkout", this
176
- looks more like "if it looks ugly and unusual, you do not have to
177
- use it". Perhaps we can drop it?
178
-
179
- Will discard.
195
+ Expecting a reroll.
196
197
198
* sk/dash-is-previous (2017-03-01) 5 commits
@@ -193,46 +209,6 @@ of the repositories listed at
209
cf. <1488007487-12965-1-git-send-email-kannan.siddharth12@gmail.com>
210
211
196
-* pb/bisect (2017-02-18) 28 commits
197
- . fixup! bisect--helper: `bisect_next_check` & bisect_voc shell function in C
198
- . bisect--helper: remove the dequote in bisect_start()
199
- . bisect--helper: retire `--bisect-auto-next` subcommand
200
- . bisect--helper: retire `--bisect-autostart` subcommand
201
- . bisect--helper: retire `--bisect-write` subcommand
202
- . bisect--helper: `bisect_replay` shell function in C
203
- . bisect--helper: `bisect_log` shell function in C
204
- . bisect--helper: retire `--write-terms` subcommand
205
- . bisect--helper: retire `--check-expected-revs` subcommand
206
- . bisect--helper: `bisect_state` & `bisect_head` shell function in C
207
- . bisect--helper: `bisect_autostart` shell function in C
208
- . bisect--helper: retire `--next-all` subcommand
209
- . bisect--helper: retire `--bisect-clean-state` subcommand
210
- . bisect--helper: `bisect_next` and `bisect_auto_next` shell function in C
211
- . t6030: no cleanup with bad merge base
212
- . bisect--helper: `bisect_start` shell function partially in C
213
- . bisect--helper: `get_terms` & `bisect_terms` shell function in C
214
- . bisect--helper: `bisect_next_check` & bisect_voc shell function in C
215
- . bisect--helper: `check_and_set_terms` shell function in C
216
- . bisect--helper: `bisect_write` shell function in C
217
- . bisect--helper: `is_expected_rev` & `check_expected_revs` shell function in C
218
- . bisect--helper: `bisect_reset` shell function in C
219
- . wrapper: move is_empty_file() and rename it as is_empty_or_missing_file()
220
- . t6030: explicitly test for bisection cleanup
221
- . bisect--helper: `bisect_clean_state` shell function in C
222
- . bisect--helper: `write_terms` shell function in C
223
- . bisect: rewrite `check_term_format` shell function in C
224
- . bisect--helper: use OPT_CMDMODE instead of OPT_BOOL
225
-
226
- Move more parts of "git bisect" to C.
227
-
228
- Will discard.
229
- It has been in the stalled state for too long.
230
- Expecting a reroll.
231
- cf. <CAFZEwPPXPPHi8KiEGS9ggzNHDCGhuqMgH9Z8-Pf9GLshg8+LPA@mail.gmail.com>
232
- cf. <CAFZEwPM9RSTGN54dzaw9gO9iZmsYjJ_d1SjUD4EzSDDbmh-XuA@mail.gmail.com>
233
- cf. <CAFZEwPNUXcNY9Qdz=_B7q2kQuaecPzJtTMGdv8YMUPEz2vnp8A@mail.gmail.com>
234
-
235
-
212
* sh/grep-tree-obj-tweak-output (2017-01-20) 2 commits
213
- grep: use '/' delimiter for paths
214
- grep: only add delimiter if there isn't one already
@@ -275,6 +251,36 @@ of the repositories listed at
251
--------------------------------------------------
252
[Cooking]
253
254
+* ab/compat-regex-update (2017-05-12) 3 commits
255
+ - DONTMERGE compat/regex: make it compile with -Werror=int-to-pointer-cast
256
+ - compat/regex: update the gawk regex engine from upstream
257
+ - compat/regex: add a README with a maintenance guide
258
+
259
+ Update compat/regex we borrowed from gawk. It seems that some
260
+ customizations we made to the older one were dropped by mistake.
261
+
262
+
263
+* jc/apply-fix-mismerge (2017-05-08) 1 commit
264
+ (merged to 'next' on 2017-05-09 at e0b89532d0)
265
+ + apply.c: fix whitespace-only mismerge
266
+
267
+ Will merge to 'master'.
268
+
269
+
270
+* jt/push-options-doc (2017-05-10) 2 commits
271
+ - receive-pack: verify push options in cert
272
+ - docs: correct receive.advertisePushOptions default
273
+
274
+ The receive-pack program now makes sure that the push certificate
275
+ records the same set of push options used for pushing.
276
+
277
+ Will merge to 'next'.
278
+
279
+
280
+* dt/unpack-save-untracked-cache-extension (2017-05-09) 1 commit
281
+ - DONTMERGE: unpack-trees: preserve index extensions
282
+
283
+
284
* sg/clone-refspec-from-command-line-config (2017-05-09) 2 commits
285
- git-clone --config order & fetching extra refs during initial clone
286
- clone: respect configured fetch respecs during initial fetch
@@ -327,8 +333,8 @@ of the repositories listed at
333
Will merge to 'master'.
334
335
330
-* ja/do-not-ask-needless-questions (2017-05-04) 3 commits
331
- - git-filter-branch: make the error msg when missing branch more open
336
+* ja/do-not-ask-needless-questions (2017-05-12) 3 commits
337
+ - git-filter-branch: be more direct in an error message
338
- read-tree -m: make error message for merging 0 trees less smart aleck
339
- usability: don't ask questions if no reply is required
340
@@ -336,8 +342,7 @@ of the repositories listed at
342
not require an answer, which can confuse new users and non native
343
speakers. Attempt to rephrase them.
344
339
- I lost track of the discussion on this topic. Did we decide that
340
- this is not a good idea?
345
+ Will merge to 'next', after waiting for a few days.
346
347
348
* ab/doc-replace-gmane-links (2017-05-09) 2 commits
@@ -353,7 +358,7 @@ of the repositories listed at
358
Will merge to 'next'.
359
360
356
-* ab/fix-poison-tests (2017-05-08) 3 commits
361
+* ab/fix-poison-tests (2017-05-11) 3 commits
362
- travis-ci: add job to run tests with GETTEXT_POISON
363
- travis-ci: setup "prove cache" in "script" step
364
- tests: fix tests broken under GETTEXT_POISON=YesPlease
@@ -362,7 +367,7 @@ of the repositories listed at
367
that output strings that should not be translated are not
368
translated by mistake), and tell TravisCI to run them.
369
365
- Will merge to 'next' after a few rounds on 'pu'.
370
+ Will merge to 'next' after a few rounds in 'pu'.
371
372
373
* bw/dir-c-stops-relying-on-the-index (2017-05-06) 14 commits
@@ -555,10 +560,10 @@ of the repositories listed at
560
Kicked out of next; it seems it is still getting review suggestions?
561
562
558
-* tb/dedup-crlf-tests (2017-05-01) 1 commit
559
- - t0027: Some tests are not expensive
563
+* tb/dedup-crlf-tests (2017-05-10) 1 commit
564
+ - t0027: tests are not expensive; remove t0025
565
561
- Will be rerolled.
566
+ Will merge to 'next'.
567
568
569
* jc/repack-threads (2017-04-27) 1 commit
@@ -647,34 +652,6 @@ of the repositories listed at
652
Will merge to 'master'.
653
654
650
-* ab/grep-pcre-v2 (2017-05-02) 19 commits
651
- - Makefile & configure: make PCRE v2 the default PCRE implementation
652
- - grep: remove support for concurrent use of both PCRE v1 & v2
653
- - grep: add support for PCRE v2
654
- - grep: add support for the PCRE v1 JIT API
655
- - perf: add a performance comparison test of grep -E and -P
656
- - grep: change the internal PCRE code & header names to be PCRE1
657
- - grep: change the internal PCRE macro names to be PCRE1
658
- - test-lib: rename the LIBPCRE prerequisite to PCRE
659
- - grep: make grep.patternType=[pcre|pcre1] a synonym for "perl"
660
- - grep & rev-list doc: stop promising libpcre for --perl-regexp
661
- - log: add -P as a synonym for --perl-regexp
662
- - log: add exhaustive tests for pattern style options & config
663
- - grep: add a test for backreferences in PCRE patterns
664
- - Makefile & configure: reword outdated comment about PCRE
665
- - grep: remove redundant `regflags &= ~REG_EXTENDED` assignments
666
- - grep: remove redundant regflags assignment under PCRE
667
- - grep: submodule-related case statements should die if new fields are added
668
- - grep: add tests for grep pattern types being passed to submodules
669
- - grep: amend submodule recursion test in preparation for rx engine testing
670
-
671
- PCRE2, which has an API different from and incompatible with PCRE,
672
- can now be chosen to support "grep -P -e '<pattern>'" and friends.
673
-
674
- Need to make sure that fallback for those without pcre2 works
675
- without causing build failure.
676
-
677
-
655
* bc/object-id (2017-05-08) 53 commits
656
- object: convert parse_object* to take struct object_id
657
- tree: convert parse_tree_indirect to struct object_id
@@ -864,21 +841,6 @@ of the repositories listed at
841
Will merge to 'master'.
842
843
867
-* ab/grep-threading-cleanup (2017-04-16) 8 commits
868
- - grep: given --threads with NO_PTHREADS=YesPlease, warn
869
- - pack-objects: fix buggy warning about threads under NO_PTHREADS=YesPlease
870
- - pack-object & index-pack: add test for --threads warning under NO_PTHREADS
871
- - tests: add a PTHREADS prerequisite
872
- - grep: skip pthreads overhead when using one thread
873
- - grep: don't redundantly compile throwaway patterns under threading
874
- - grep: add tests for --threads=N and grep.threads
875
- - grep: assert that threading is enabled when calling grep_{lock,unlock}
876
-
877
- Code cleanup.
878
-
879
- Needs review.
880
-
881
-
844
* bp/sub-process-convert-filter (2017-05-08) 10 commits
845
- convert: update subprocess_read_status() to not die on EOF
846
- sub-process: move sub-process functions into separate files
@@ -937,3 +899,108 @@ of the repositories listed at
899
per-worktree refs.
900
901
Will merge to 'master'.
902
+
903
+--------------------------------------------------
904
+[Discarded]
905
+
906
+* ja/doc-l10n (2017-03-20) 3 commits
907
+ . SQUASH???
908
+ . l10n: add git-add.txt to localized man pages
909
+ . l10n: introduce framework for localizing man pages
910
+
911
+ A proposal to use po4a to localize our manual pages.
912
+
913
+
914
+* ab/grep-pcre-v2 (2017-05-02) 19 commits
915
+ . Makefile & configure: make PCRE v2 the default PCRE implementation
916
+ . grep: remove support for concurrent use of both PCRE v1 & v2
917
+ . grep: add support for PCRE v2
918
+ . grep: add support for the PCRE v1 JIT API
919
+ . perf: add a performance comparison test of grep -E and -P
920
+ . grep: change the internal PCRE code & header names to be PCRE1
921
+ . grep: change the internal PCRE macro names to be PCRE1
922
+ . test-lib: rename the LIBPCRE prerequisite to PCRE
923
+ . grep: make grep.patternType=[pcre|pcre1] a synonym for "perl"
924
+ . grep & rev-list doc: stop promising libpcre for --perl-regexp
925
+ . log: add -P as a synonym for --perl-regexp
926
+ . log: add exhaustive tests for pattern style options & config
927
+ . grep: add a test for backreferences in PCRE patterns
928
+ . Makefile & configure: reword outdated comment about PCRE
929
+ . grep: remove redundant `regflags &= ~REG_EXTENDED` assignments
930
+ . grep: remove redundant regflags assignment under PCRE
931
+ . grep: submodule-related case statements should die if new fields are added
932
+ . grep: add tests for grep pattern types being passed to submodules
933
+ . grep: amend submodule recursion test in preparation for rx engine testing
934
+
935
+ PCRE2, which has an API different from and incompatible with PCRE,
936
+ can now be chosen to support "grep -P -e '<pattern>'" and friends.
937
+
938
+
939
+* ab/grep-threading-cleanup (2017-04-16) 8 commits
940
+ . grep: given --threads with NO_PTHREADS=YesPlease, warn
941
+ . pack-objects: fix buggy warning about threads under NO_PTHREADS=YesPlease
942
+ . pack-object & index-pack: add test for --threads warning under NO_PTHREADS
943
+ . tests: add a PTHREADS prerequisite
944
+ . grep: skip pthreads overhead when using one thread
945
+ . grep: don't redundantly compile throwaway patterns under threading
946
+ . grep: add tests for --threads=N and grep.threads
947
+ . grep: assert that threading is enabled when calling grep_{lock,unlock}
948
+
949
+ Code cleanup.
950
+
951
+
952
+* pb/bisect (2017-02-18) 28 commits
953
+ . fixup! bisect--helper: `bisect_next_check` & bisect_voc shell function in C
954
+ . bisect--helper: remove the dequote in bisect_start()
955
+ . bisect--helper: retire `--bisect-auto-next` subcommand
956
+ . bisect--helper: retire `--bisect-autostart` subcommand
957
+ . bisect--helper: retire `--bisect-write` subcommand
958
+ . bisect--helper: `bisect_replay` shell function in C
959
+ . bisect--helper: `bisect_log` shell function in C
960
+ . bisect--helper: retire `--write-terms` subcommand
961
+ . bisect--helper: retire `--check-expected-revs` subcommand
962
+ . bisect--helper: `bisect_state` & `bisect_head` shell function in C
963
+ . bisect--helper: `bisect_autostart` shell function in C
964
+ . bisect--helper: retire `--next-all` subcommand
965
+ . bisect--helper: retire `--bisect-clean-state` subcommand
966
+ . bisect--helper: `bisect_next` and `bisect_auto_next` shell function in C
967
+ . t6030: no cleanup with bad merge base
968
+ . bisect--helper: `bisect_start` shell function partially in C
969
+ . bisect--helper: `get_terms` & `bisect_terms` shell function in C
970
+ . bisect--helper: `bisect_next_check` & bisect_voc shell function in C
971
+ . bisect--helper: `check_and_set_terms` shell function in C
972
+ . bisect--helper: `bisect_write` shell function in C
973
+ . bisect--helper: `is_expected_rev` & `check_expected_revs` shell function in C
974
+ . bisect--helper: `bisect_reset` shell function in C
975
+ . wrapper: move is_empty_file() and rename it as is_empty_or_missing_file()
976
+ . t6030: explicitly test for bisection cleanup
977
+ . bisect--helper: `bisect_clean_state` shell function in C
978
+ . bisect--helper: `write_terms` shell function in C
979
+ . bisect: rewrite `check_term_format` shell function in C
980
+ . bisect--helper: use OPT_CMDMODE instead of OPT_BOOL
981
+
982
+ Move more parts of "git bisect" to C.
983
+
984
+ Will discard.
985
+ It has been in the stalled state for too long.
986
+ Expecting a reroll.
987
+ cf. <CAFZEwPPXPPHi8KiEGS9ggzNHDCGhuqMgH9Z8-Pf9GLshg8+LPA@mail.gmail.com>
988
+ cf. <CAFZEwPM9RSTGN54dzaw9gO9iZmsYjJ_d1SjUD4EzSDDbmh-XuA@mail.gmail.com>
989
+ cf. <CAFZEwPNUXcNY9Qdz=_B7q2kQuaecPzJtTMGdv8YMUPEz2vnp8A@mail.gmail.com>
990
+
991
+
992
+* jk/parse-options-no-no-no (2017-04-25) 2 commits
993
+ . SQUASH???
994
+ . parse-options: disallow double-negations of options starting with no-
995
+
996
+ Command line options that begin with "--no-" (e.g. "--no-checkout"
997
+ option of "git clone") can be negated by removing "--no-"; we
998
+ historically also allowed prefixing an extra "no" to the option
999
+ (e.g. "--no-no-checkout"), which made the command line look ugly
1000
+ and unusual. This proposes to forbid it.
1001
+
1002
+ While I agree there is no need to support "--no-no-checkout", this
1003
+ looks more like "if it looks ugly and unusual, you do not have to
1004
+ use it". Perhaps we can drop it?
1005
+
1006
+ Will discard.