@@ -702,6 +702,7 @@ static int list_stash(int argc, const char **argv, const char *prefix)
702
702
703
703
static int show_stat = 1 ;
704
704
static int show_patch ;
705
+ static int use_legacy_stash ;
705
706
706
707
static int git_stash_config (const char * var , const char * value , void * cb )
707
708
{
@@ -713,7 +714,11 @@ static int git_stash_config(const char *var, const char *value, void *cb)
713
714
show_patch = git_config_bool (var , value );
714
715
return 0 ;
715
716
}
716
- return git_default_config (var , value , cb );
717
+ if (!strcmp (var , "stash.usebuiltin" )) {
718
+ use_legacy_stash = !git_config_bool (var , value );
719
+ return 0 ;
720
+ }
721
+ return git_diff_basic_config (var , value , cb );
717
722
}
718
723
719
724
static int show_stash (int argc , const char * * argv , const char * prefix )
@@ -750,7 +755,6 @@ static int show_stash(int argc, const char **argv, const char *prefix)
750
755
* any options.
751
756
*/
752
757
if (revision_args .argc == 1 ) {
753
- git_config (git_stash_config , NULL );
754
758
if (show_stat )
755
759
rev .diffopt .output_format = DIFF_FORMAT_DIFFSTAT ;
756
760
@@ -1559,29 +1563,6 @@ static int save_stash(int argc, const char **argv, const char *prefix)
1559
1563
return ret ;
1560
1564
}
1561
1565
1562
- static int use_builtin_stash (void )
1563
- {
1564
- struct child_process cp = CHILD_PROCESS_INIT ;
1565
- struct strbuf out = STRBUF_INIT ;
1566
- int ret , env = git_env_bool ("GIT_TEST_STASH_USE_BUILTIN" , -1 );
1567
-
1568
- if (env != -1 )
1569
- return env ;
1570
-
1571
- argv_array_pushl (& cp .args ,
1572
- "config" , "--bool" , "stash.usebuiltin" , NULL );
1573
- cp .git_cmd = 1 ;
1574
- if (capture_command (& cp , & out , 6 )) {
1575
- strbuf_release (& out );
1576
- return 1 ;
1577
- }
1578
-
1579
- strbuf_trim (& out );
1580
- ret = !strcmp ("true" , out .buf );
1581
- strbuf_release (& out );
1582
- return ret ;
1583
- }
1584
-
1585
1566
int cmd_stash (int argc , const char * * argv , const char * prefix )
1586
1567
{
1587
1568
pid_t pid = getpid ();
@@ -1592,21 +1573,12 @@ int cmd_stash(int argc, const char **argv, const char *prefix)
1592
1573
OPT_END ()
1593
1574
};
1594
1575
1595
- if (!use_builtin_stash ()) {
1596
- const char * path = mkpath ("%s/git-legacy-stash" ,
1597
- git_exec_path ());
1598
-
1599
- if (sane_execvp (path , (char * * )argv ) < 0 )
1600
- die_errno (_ ("could not exec %s" ), path );
1601
- else
1602
- BUG ("sane_execvp() returned???" );
1603
- }
1604
-
1605
- prefix = setup_git_directory ();
1606
- trace_repo_setup (prefix );
1607
- setup_work_tree ();
1576
+ git_config (git_stash_config , NULL );
1608
1577
1609
- git_config (git_diff_basic_config , NULL );
1578
+ if (use_legacy_stash ||
1579
+ !git_env_bool ("GIT_TEST_STASH_USE_BUILTIN" , -1 ))
1580
+ warning (_ ("the stash.useBuiltin support has been removed!\n"
1581
+ "See its entry in 'git help config' for details." ));
1610
1582
1611
1583
argc = parse_options (argc , argv , prefix , options , git_stash_usage ,
1612
1584
PARSE_OPT_KEEP_UNKNOWN | PARSE_OPT_KEEP_DASHDASH );
0 commit comments