@@ -32,6 +32,7 @@ static const char *default_date_mode = NULL;
3232
3333static int default_abbrev_commit ;
3434static int default_show_root = 1 ;
35+ static int default_follow ;
3536static int decoration_style ;
3637static int decoration_given ;
3738static int use_mailmap_config ;
@@ -103,6 +104,8 @@ static void cmd_log_init_defaults(struct rev_info *rev)
103104{
104105 if (fmt_pretty )
105106 get_commit_format (fmt_pretty , rev );
107+ if (default_follow )
108+ DIFF_OPT_SET (& rev -> diffopt , DEFAULT_FOLLOW_RENAMES );
106109 rev -> verbose_header = 1 ;
107110 DIFF_OPT_SET (& rev -> diffopt , RECURSIVE );
108111 rev -> diffopt .stat_width = -1 ; /* use full terminal width */
@@ -391,6 +394,10 @@ static int git_log_config(const char *var, const char *value, void *cb)
391394 default_show_root = git_config_bool (var , value );
392395 return 0 ;
393396 }
397+ if (!strcmp (var , "log.follow" )) {
398+ default_follow = git_config_bool (var , value );
399+ return 0 ;
400+ }
394401 if (skip_prefix (var , "color.decorate." , & slot_name ))
395402 return parse_decorate_color_config (var , slot_name , value );
396403 if (!strcmp (var , "log.mailmap" )) {
@@ -619,6 +626,14 @@ int cmd_log_reflog(int argc, const char **argv, const char *prefix)
619626 return cmd_log_walk (& rev );
620627}
621628
629+ static void default_follow_tweak (struct rev_info * rev ,
630+ struct setup_revision_opt * opt )
631+ {
632+ if (DIFF_OPT_TST (& rev -> diffopt , DEFAULT_FOLLOW_RENAMES ) &&
633+ rev -> prune_data .nr == 1 )
634+ DIFF_OPT_SET (& rev -> diffopt , FOLLOW_RENAMES );
635+ }
636+
622637int cmd_log (int argc , const char * * argv , const char * prefix )
623638{
624639 struct rev_info rev ;
@@ -632,6 +647,7 @@ int cmd_log(int argc, const char **argv, const char *prefix)
632647 memset (& opt , 0 , sizeof (opt ));
633648 opt .def = "HEAD" ;
634649 opt .revarg_opt = REVARG_COMMITTISH ;
650+ opt .tweak = default_follow_tweak ;
635651 cmd_log_init (argc , argv , prefix , & rev , & opt );
636652 return cmd_log_walk (& rev );
637653}
0 commit comments