@@ -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 );
@@ -194,9 +133,7 @@ int add_files_to_cache(const char *prefix,
194
133
return !!data .add_errors ;
195
134
}
196
135
197
- #define WARN_IMPLICIT_DOT (1u << 0)
198
- static char * prune_directory (struct dir_struct * dir , struct pathspec * pathspec ,
199
- int prefix , unsigned flag )
136
+ static char * prune_directory (struct dir_struct * dir , struct pathspec * pathspec , int prefix )
200
137
{
201
138
char * seen ;
202
139
int i ;
@@ -210,16 +147,6 @@ static char *prune_directory(struct dir_struct *dir, struct pathspec *pathspec,
210
147
struct dir_entry * entry = * src ++ ;
211
148
if (dir_path_match (entry , pathspec , 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 );
@@ -411,7 +338,6 @@ int cmd_add(int argc, const char **argv, const char *prefix)
411
338
int add_new_files ;
412
339
int require_pathspec ;
413
340
char * seen = NULL ;
414
- int implicit_dot = 0 ;
415
341
struct update_callback_data update_data ;
416
342
417
343
git_config (add_config , NULL );
@@ -453,19 +379,11 @@ int cmd_add(int argc, const char **argv, const char *prefix)
453
379
454
380
if (!show_only && ignore_missing )
455
381
die (_ ("Option --ignore-missing can only be used together with --dry-run" ));
456
- if (addremove ) {
457
- option_with_implicit_dot = "--all" ;
458
- short_option_with_implicit_dot = "-A" ;
459
- }
460
- if (take_worktree_changes ) {
461
- option_with_implicit_dot = "--update" ;
462
- short_option_with_implicit_dot = "-u" ;
463
- }
464
- if (option_with_implicit_dot && !argc ) {
465
- static const char * here [2 ] = { "." , NULL };
382
+
383
+ if ((addremove || take_worktree_changes ) && !argc ) {
384
+ static const char * whole [2 ] = { ":/" , NULL };
466
385
argc = 1 ;
467
- argv = here ;
468
- implicit_dot = 1 ;
386
+ argv = whole ;
469
387
}
470
388
471
389
add_new_files = !take_worktree_changes && !refresh_only ;
@@ -478,8 +396,7 @@ int cmd_add(int argc, const char **argv, const char *prefix)
478
396
(intent_to_add ? ADD_CACHE_INTENT : 0 ) |
479
397
(ignore_add_errors ? ADD_CACHE_IGNORE_ERRORS : 0 ) |
480
398
(!(addremove || take_worktree_changes )
481
- ? ADD_CACHE_IGNORE_REMOVAL : 0 )) |
482
- (implicit_dot ? ADD_CACHE_IMPLICIT_DOT : 0 );
399
+ ? ADD_CACHE_IGNORE_REMOVAL : 0 ));
483
400
484
401
if (require_pathspec && argc == 0 ) {
485
402
fprintf (stderr , _ ("Nothing specified, nothing added.\n" ));
@@ -513,18 +430,15 @@ int cmd_add(int argc, const char **argv, const char *prefix)
513
430
514
431
memset (& empty_pathspec , 0 , sizeof (empty_pathspec ));
515
432
/* This picks up the paths that are not tracked */
516
- baselen = fill_directory (& dir , implicit_dot ? & empty_pathspec : & pathspec );
433
+ baselen = fill_directory (& dir , & pathspec );
517
434
if (pathspec .nr )
518
- seen = prune_directory (& dir , & pathspec , baselen ,
519
- implicit_dot ? WARN_IMPLICIT_DOT : 0 );
435
+ seen = prune_directory (& dir , & pathspec , baselen );
520
436
}
521
437
522
438
if (refresh_only ) {
523
439
refresh (verbose , & pathspec );
524
440
goto finish ;
525
441
}
526
- if (implicit_dot && prefix )
527
- refresh_cache (REFRESH_QUIET );
528
442
529
443
if (pathspec .nr ) {
530
444
int i ;
@@ -564,18 +478,7 @@ int cmd_add(int argc, const char **argv, const char *prefix)
564
478
565
479
plug_bulk_checkin ();
566
480
567
- if ((flags & ADD_CACHE_IMPLICIT_DOT ) && prefix ) {
568
- /*
569
- * Check for modified files throughout the worktree so
570
- * update_callback has a chance to warn about changes
571
- * outside the cwd.
572
- */
573
- update_data .implicit_dot = prefix ;
574
- update_data .implicit_dot_len = strlen (prefix );
575
- free_pathspec (& pathspec );
576
- memset (& pathspec , 0 , sizeof (pathspec ));
577
- }
578
- update_data .flags = flags & ~ADD_CACHE_IMPLICIT_DOT ;
481
+ update_data .flags = flags ;
579
482
update_files_in_cache (prefix , & pathspec , & update_data );
580
483
581
484
exit_status |= !!update_data .add_errors ;
0 commit comments