@@ -446,6 +446,11 @@ function! s:undo_hunk(sy, vcs, diff) abort
446
446
return sy#start ()
447
447
endfunction
448
448
449
+ " #update_target {{{1
450
+ function ! sy#repo#update_target (target) abort
451
+ let g: signify_vcs_target = a: target
452
+ endfunction
453
+
449
454
" s:initialize_job {{{1
450
455
function ! s: initialize_job (bufnr , vcs) abort
451
456
return s: wrap_cmd (a: bufnr , a: vcs , s: get_base_cmd (a: bufnr , a: vcs , g: signify_vcs_cmds ))
@@ -505,6 +510,20 @@ function! s:get_base_cmd(bufnr, vcs, vcs_cmds) abort
505
510
let cmd = s: replace (cmd, ' %f' , s: get_vcs_path (a: bufnr , a: vcs ))
506
511
let cmd = s: replace (cmd, ' %d' , s: difftool )
507
512
let cmd = s: replace (cmd, ' %n' , s: devnull )
513
+
514
+ if index ([' git' , ' hg' ], a: vcs ) >= 0
515
+ let s: target = " "
516
+ if g: signify_vcs_target == " default"
517
+ if a: vcs == ' git'
518
+ let s: target = ' HEAD'
519
+ else
520
+ let s: target = ' .'
521
+ endif
522
+ else
523
+ let s: target = g: signify_vcs_target
524
+ endif
525
+ let cmd = s: replace (cmd, ' %t' , s: target )
526
+ endif
508
527
return cmd
509
528
endfunction
510
529
@@ -613,9 +632,9 @@ endfunction
613
632
614
633
" Variables {{{1
615
634
let s: default_vcs_cmds = {
616
- \ ' git' : ' git diff --no-color --no-ext-diff -U0 -- %f' ,
635
+ \ ' git' : ' git diff --no-color --no-ext-diff -U0 %t -- %f' ,
617
636
\ ' yadm' : ' yadm diff --no-color --no-ext-diff -U0 -- %f' ,
618
- \ ' hg' : ' hg diff --color=never --config aliases.diff= --nodates -U0 -- %f' ,
637
+ \ ' hg' : ' hg --config alias. diff=diff diff --color=never --nodates -U0 --from %t -- %f' ,
619
638
\ ' svn' : ' svn diff --diff-cmd %d -x -U0 -- %f' ,
620
639
\ ' bzr' : ' bzr diff --using %d --diff-options=-U0 -- %f' ,
621
640
\ ' darcs' : ' darcs diff --no-pause-for-gui --no-unified --diff-opts=-U0 -- %f' ,
653
672
let g: signify_vcs_cmds_diffmode = s: default_vcs_cmds_diffmode
654
673
endif
655
674
675
+ let g: signify_vcs_target = ' default'
676
+
656
677
let s: vcs_dict = map (copy (g: signify_vcs_cmds ), ' split(v:val)[0]' )
657
678
658
679
if exists (' g:signify_skip' ) && has_key (g: signify_skip , ' vcs' )
0 commit comments