git-diffで生成されたパッチファイルを適用します。

git-diffで生成されたパッチファイルを適用します。

パッチファイルを生成するためにgit-diffを実行しました。

cd
git diff --no-prefix ~/.vim/bundle/vim-latex-suite/ftplugin/latex-suite/compiler.vim  ~/compiler.vim > ~/vimlatex.patch

生成されたパッチは次のとおりです。

diff --git home/rudra/.vim/bundle/vim-latex-suite/ftplugin/latex-suite/compiler.vim home/rudra/compiler.vim
index 65cd33a..abfcff7 100644
--- home/rudra/.vim/bundle/vim-latex-suite/ftplugin/latex-suite/compiler.vim
+++ home/rudra/compiler.vim
@@ -434,7 +434,8 @@ function! Tex_ForwardSearchLaTeX()
        else
            " We must be using a generic UNIX viewer
            " syntax is: viewer TARGET_FILE LINE_NUMBER SOURCE_FILE
-
+           let mainfnameRelative = fnameescape(fnamemodify(Tex_GetMainFileName(), ':p:.:r'))
+           let target_file = mainfnameRelative . "." . s:target
            let execString .= join([viewer, target_file, linenr, sourcefile])

        endif

このパッチを適用したいです。/home/rudra/.vim/bundle/vim-latex-suite/ftplugin/latex-suite/compiler.vim

ただし、パッチを適用しようとすると、次の結果が表示されます。

patch -p0 < vimlatex.patch 
can't find file to patch at input line 5
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git home/rudra/.vim/bundle/vim-latex-suite/ftplugin/latex-suite/compiler.vim home/rudra/compiler.vim
|index 65cd33a..abfcff7 100644
|--- home/rudra/.vim/bundle/vim-latex-suite/ftplugin/latex-suite/compiler.vim
|+++ home/rudra/compiler.vim
--------------------------
File to patch: /home/rudra/.vim/bundle/vim-latex-suite/ftplugin/latex-suite/compiler.vim
patching file /home/rudra/.vim/bundle/vim-latex-suite/ftplugin/latex-suite/compiler.vim

問題はうまくいきますが、私に尋ねずにどのファイルをパッチする必要があるのか​​理解したいということです。パッチするファイル:

どうすればいいですか?

ベストアンサー1

デフォルトでは、patchパスはターゲットファイルから削除されるため、次のようにパッチを適用できます。

patch < vimlatex.patch

compiler.vim(現在のディレクトリにファイルがあると仮定)

指定は-p0すべての宛先パスを使用するように指示するため、home/rudra/compiler.vim現在のディレクトリから始まる名前のファイルを見つけることが期待されます。これの説明は、パッチを生成するために使用されたコマンドがdiff実行される前に変換されることです。実際にパッチを生成するために使用されたコマンドは、パッチの最初の行として書き込まれます(デフォルトでは先行が削除されます~)。/home/rudra/

diff --git home/rudra/.vim/bundle/vim-latex-suite/ftplugin/latex-suite/compiler.vim home/rudra/compiler.vim

したがって、上記のように、patch -p0基本的に一致するファイルhome/rudra/compiler.vim(ターゲットファイル)が見つかると予想されます。

patch絶対パスが明示的に無視されるので、必要なパッチを生成する安定した方法がないと思います。一般的なdiff相対パスを使用することをお勧めします。

cd
diff -u .vim/bundle/vim-latex-suite/ftplugin/latex-suite/compiler.vim  compiler.vim > vimlatex.patch

パッチを適切なディレクトリに適用します。

おすすめ記事