@@ -26,55 +26,10 @@ static int take_worktree_changes;
26
26
struct update_callback_data {
27
27
int flags ;
28
28
int add_errors ;
29
- const char * implicit_dot ;
30
- size_t implicit_dot_len ;
31
-
32
29
/* only needed for 2.0 transition preparation */
33
30
int warn_add_would_remove ;
34
31
};
35
32
36
- static const char * option_with_implicit_dot ;
37
- static const char * short_option_with_implicit_dot ;
38
-
39
- static void warn_pathless_add (void )
40
- {
41
- static int shown ;
42
- assert (option_with_implicit_dot && short_option_with_implicit_dot );
43
-
44
- if (shown )
45
- return ;
46
- shown = 1 ;
47
-
48
- /*
49
- * To be consistent with "git add -p" and most Git
50
- * commands, we should default to being tree-wide, but
51
- * this is not the original behavior and can't be
52
- * changed until users trained themselves not to type
53
- * "git add -u" or "git add -A". For now, we warn and
54
- * keep the old behavior. Later, the behavior can be changed
55
- * to tree-wide, keeping the warning for a while, and
56
- * eventually we can drop the warning.
57
- */
58
- warning (_ ("The behavior of 'git add %s (or %s)' with no path argument from a\n"
59
- "subdirectory of the tree will change in Git 2.0 and should not be used anymore.\n"
60
- "To add content for the whole tree, run:\n"
61
- "\n"
62
- " git add %s :/\n"
63
- " (or git add %s :/)\n"
64
- "\n"
65
- "To restrict the command to the current directory, run:\n"
66
- "\n"
67
- " git add %s .\n"
68
- " (or git add %s .)\n"
69
- "\n"
70
- "With the current Git version, the command is restricted to "
71
- "the current directory.\n"
72
- "" ),
73
- option_with_implicit_dot , short_option_with_implicit_dot ,
74
- option_with_implicit_dot , short_option_with_implicit_dot ,
75
- option_with_implicit_dot , short_option_with_implicit_dot );
76
- }
77
-
78
33
static int fix_unmerged_status (struct diff_filepair * p ,
79
34
struct update_callback_data * data )
80
35
{
@@ -119,26 +74,10 @@ static void update_callback(struct diff_queue_struct *q,
119
74
{
120
75
int i ;
121
76
struct update_callback_data * data = cbdata ;
122
- const char * implicit_dot = data -> implicit_dot ;
123
- size_t implicit_dot_len = data -> implicit_dot_len ;
124
77
125
78
for (i = 0 ; i < q -> nr ; i ++ ) {
126
79
struct diff_filepair * p = q -> queue [i ];
127
80
const char * path = p -> one -> path ;
128
- /*
129
- * Check if "git add -A" or "git add -u" was run from a
130
- * subdirectory with a modified file outside that directory,
131
- * and warn if so.
132
- *
133
- * "git add -u" will behave like "git add -u :/" instead of
134
- * "git add -u ." in the future. This warning prepares for
135
- * that change.
136
- */
137
- if (implicit_dot &&
138
- strncmp_icase (path , implicit_dot , implicit_dot_len )) {
139
- warn_pathless_add ();
140
- continue ;
141
- }
142
81
switch (fix_unmerged_status (p , data )) {
143
82
default :
144
83
die (_ ("unexpected diff status %c" ), p -> status );
@@ -191,9 +130,7 @@ int add_files_to_cache(const char *prefix, const char **pathspec, int flags)
191
130
return !!data .add_errors ;
192
131
}
193
132
194
- #define WARN_IMPLICIT_DOT (1u << 0)
195
- static char * prune_directory (struct dir_struct * dir , const char * * pathspec ,
196
- int prefix , unsigned flag )
133
+ static char * prune_directory (struct dir_struct * dir , const char * * pathspec , int prefix )
197
134
{
198
135
char * seen ;
199
136
int i , specs ;
@@ -210,16 +147,6 @@ static char *prune_directory(struct dir_struct *dir, const char **pathspec,
210
147
if (match_pathspec (pathspec , entry -> name , entry -> len ,
211
148
prefix , seen ))
212
149
* dst ++ = entry ;
213
- else if (flag & WARN_IMPLICIT_DOT )
214
- /*
215
- * "git add -A" was run from a subdirectory with a
216
- * new file outside that directory.
217
- *
218
- * "git add -A" will behave like "git add -A :/"
219
- * instead of "git add -A ." in the future.
220
- * Warn about the coming behavior change.
221
- */
222
- warn_pathless_add ();
223
150
}
224
151
dir -> nr = dst - dir -> entries ;
225
152
add_pathspec_matches_against_index (pathspec , seen , specs );
@@ -451,7 +378,6 @@ int cmd_add(int argc, const char **argv, const char *prefix)
451
378
int add_new_files ;
452
379
int require_pathspec ;
453
380
char * seen = NULL ;
454
- int implicit_dot = 0 ;
455
381
struct update_callback_data update_data ;
456
382
457
383
git_config (add_config , NULL );
@@ -493,19 +419,11 @@ int cmd_add(int argc, const char **argv, const char *prefix)
493
419
494
420
if (!show_only && ignore_missing )
495
421
die (_ ("Option --ignore-missing can only be used together with --dry-run" ));
496
- if (addremove ) {
497
- option_with_implicit_dot = "--all" ;
498
- short_option_with_implicit_dot = "-A" ;
499
- }
500
- if (take_worktree_changes ) {
501
- option_with_implicit_dot = "--update" ;
502
- short_option_with_implicit_dot = "-u" ;
503
- }
504
- if (option_with_implicit_dot && !argc ) {
505
- static const char * here [2 ] = { "." , NULL };
422
+
423
+ if ((addremove || take_worktree_changes ) && !argc ) {
424
+ static const char * whole [2 ] = { ":/" , NULL };
506
425
argc = 1 ;
507
- argv = here ;
508
- implicit_dot = 1 ;
426
+ argv = whole ;
509
427
}
510
428
511
429
add_new_files = !take_worktree_changes && !refresh_only ;
@@ -518,8 +436,7 @@ int cmd_add(int argc, const char **argv, const char *prefix)
518
436
(intent_to_add ? ADD_CACHE_INTENT : 0 ) |
519
437
(ignore_add_errors ? ADD_CACHE_IGNORE_ERRORS : 0 ) |
520
438
(!(addremove || take_worktree_changes )
521
- ? ADD_CACHE_IGNORE_REMOVAL : 0 )) |
522
- (implicit_dot ? ADD_CACHE_IMPLICIT_DOT : 0 );
439
+ ? ADD_CACHE_IGNORE_REMOVAL : 0 ));
523
440
524
441
if (require_pathspec && argc == 0 ) {
525
442
fprintf (stderr , _ ("Nothing specified, nothing added.\n" ));
@@ -543,18 +460,15 @@ int cmd_add(int argc, const char **argv, const char *prefix)
543
460
}
544
461
545
462
/* This picks up the paths that are not tracked */
546
- baselen = fill_directory (& dir , implicit_dot ? NULL : pathspec );
463
+ baselen = fill_directory (& dir , pathspec );
547
464
if (pathspec )
548
- seen = prune_directory (& dir , pathspec , baselen ,
549
- implicit_dot ? WARN_IMPLICIT_DOT : 0 );
465
+ seen = prune_directory (& dir , pathspec , baselen );
550
466
}
551
467
552
468
if (refresh_only ) {
553
469
refresh (verbose , pathspec );
554
470
goto finish ;
555
471
}
556
- if (implicit_dot && prefix )
557
- refresh_cache (REFRESH_QUIET );
558
472
559
473
if (pathspec ) {
560
474
int i ;
@@ -578,17 +492,7 @@ int cmd_add(int argc, const char **argv, const char *prefix)
578
492
579
493
plug_bulk_checkin ();
580
494
581
- if ((flags & ADD_CACHE_IMPLICIT_DOT ) && prefix ) {
582
- /*
583
- * Check for modified files throughout the worktree so
584
- * update_callback has a chance to warn about changes
585
- * outside the cwd.
586
- */
587
- update_data .implicit_dot = prefix ;
588
- update_data .implicit_dot_len = strlen (prefix );
589
- pathspec = NULL ;
590
- }
591
- update_data .flags = flags & ~ADD_CACHE_IMPLICIT_DOT ;
495
+ update_data .flags = flags ;
592
496
update_files_in_cache (prefix , pathspec , & update_data );
593
497
594
498
exit_status |= !!update_data .add_errors ;
0 commit comments