@@ -446,6 +446,11 @@ function! s:undo_hunk(sy, vcs, diff) abort
446446 return sy#start ()
447447endfunction
448448
449+ " #update_target {{{1
450+ function ! sy#repo#update_target (target) abort
451+ let g: signify_vcs_target = a: target
452+ endfunction
453+
449454" s:initialize_job {{{1
450455function ! s: initialize_job (bufnr , vcs) abort
451456 return s: wrap_cmd (a: bufnr , a: vcs , s: get_base_cmd (a: bufnr , a: vcs , g: signify_vcs_cmds ))
@@ -505,6 +510,17 @@ function! s:get_base_cmd(bufnr, vcs, vcs_cmds) abort
505510 let cmd = s: replace (cmd, ' %f' , s: get_vcs_path (a: bufnr , a: vcs ))
506511 let cmd = s: replace (cmd, ' %d' , s: difftool )
507512 let cmd = s: replace (cmd, ' %n' , s: devnull )
513+
514+ if index ([' git' , ' hg' ], a: vcs ) >= 0
515+ if ! exists (" g:signify_vcs_target" )
516+ if a: vcs == ' git'
517+ let g: signify_vcs_target = ' HEAD'
518+ else
519+ let g: signify_vcs_target = ' .'
520+ endif
521+ endif
522+ let cmd = s: replace (cmd, ' %t' , g: signify_vcs_target )
523+ endif
508524 return cmd
509525endfunction
510526
@@ -613,9 +629,9 @@ endfunction
613629
614630" Variables {{{1
615631let s: default_vcs_cmds = {
616- \ ' git' : ' git diff --no-color --no-ext-diff -U0 -- %f' ,
632+ \ ' git' : ' git diff --no-color --no-ext-diff -U0 %t -- %f' ,
617633 \ ' yadm' : ' yadm diff --no-color --no-ext-diff -U0 -- %f' ,
618- \ ' hg' : ' hg diff --color=never --config aliases.diff= --nodates -U0 -- %f' ,
634+ \ ' hg' : ' hg diff --color=never --config aliases.diff= --nodates -U0 --from %t -- %f' ,
619635 \ ' svn' : ' svn diff --diff-cmd %d -x -U0 -- %f' ,
620636 \ ' bzr' : ' bzr diff --using %d --diff-options=-U0 -- %f' ,
621637 \ ' darcs' : ' darcs diff --no-pause-for-gui --no-unified --diff-opts=-U0 -- %f' ,
0 commit comments