diff --git a/autoload/magit/git.vim b/autoload/magit/git.vim index df36d9fcf031d569f7bf60268961a096fb69457e..27cd507af42279165205a6dc77f025c1360d633e 100644 --- a/autoload/magit/git.vim +++ b/autoload/magit/git.vim @@ -102,14 +102,11 @@ function! magit#git#git_dir() return b:magit_git_dir endfunction -" Use explicit prefixes to avoid issues when the user has configured the -" diff.noprefix option. The actual prefix values are arbitrary and just -" stripped internally by the commands invoking diff / show. -let s:diff_prefix = "--src-prefix a/ --dst-prefix b/" - " magit#git#git_diff: helper function to get diff of a file " nota: when git fail (due to misformated patch for example), an error " message is raised. +" WARNING: diff is generated without prefix. To apply this diff, git apply +" must use the option -p0. " param[in] filemane: it must be quoted if it contains spaces " param[in] status: status of the file (see g:magit_git_status_code) " param[in] mode: can be staged or unstaged @@ -120,8 +117,7 @@ function! magit#git#git_diff(filename, status, mode) let dev_null = ( a:status == '?' ) ? "/dev/null " : "" let staged_flag = ( a:mode == 'staged' ) ? "--staged" : "" let git_cmd=g:magit_git_cmd . " diff --no-ext-diff " . staged_flag . - \ " " . s:diff_prefix . - \ " --no-color -p -U" . b:magit_diff_context . + \ " --no-prefix --no-color -p -U" . b:magit_diff_context . \ " -- " . dev_null . " " . a:filename if ( a:status != '?' ) @@ -237,7 +233,7 @@ function! magit#git#git_apply(header, selection) if ( selection[-1] !~ '^$' ) let selection += [ '' ] endif - let git_cmd=g:magit_git_cmd . " apply --recount --no-index --cached -" + let git_cmd=g:magit_git_cmd . " apply --recount --no-index --cached -p0 -" try silent let git_result=magit#sys#system(git_cmd, selection) catch 'shell_error' @@ -265,8 +261,8 @@ function! magit#git#git_unapply(header, selection, mode) endif try silent let git_result=magit#sys#system( - \ g:magit_git_cmd . " apply --recount --no-index " . cached_flag . " --reverse - ", - \ selection) + \ g:magit_git_cmd . " apply --recount --no-index -p0 --reverse " . + \ cached_flag . " - ", selection) catch 'shell_error' call magit#sys#print_shell_error() echom "Tried to unaply this" @@ -323,8 +319,7 @@ endfunction function! magit#git#get_commit_subject(ref) try return magit#utils#strip(magit#sys#system(g:magit_git_cmd . " show " . - \ " " . s:diff_prefix . - \" --no-patch --format=\"%s\" " . a:ref)) + \" --no-prefix --no-patch --format=\"%s\" " . a:ref)) catch 'shell_error' return "" endtry