Por padrão, patch
retira caminhos dos arquivos de destino, para que você possa aplicar o patch usando
patch < vimlatex.patch
(assumindo que exista um arquivo compiler.vim
no diretório atual).
Especificar -p0
instrui o usuário a usar todo o caminho de destino, portanto, espera encontrar um arquivo chamado home/rudra/compiler.vim
a partir do diretório atual. A explicação para isso é que o comando que você usou para criar o patch foi transformado antes que diff
fosse executado; o comando realmente usado para criar o patch é registrado como a primeira linha do patch (basicamente, ~
se torna /home/rudra
e o primeiro /
é retirado):
diff --git home/rudra/.vim/bundle/vim-latex-suite/ftplugin/latex-suite/compiler.vim home/rudra/compiler.vim
Como resultado, patch -p0
, por padrão, espera encontrar um arquivo correspondente a home/rudra/compiler.vim
(o arquivo de destino), conforme explicado acima.
Eu não acho que haja uma maneira confiável de produzir o tipo de patch que você procura, porque patch
ignora explicitamente os caminhos absolutos. Eu recomendaria usar apenas diff
simples com caminhos relativos:
cd
diff -u .vim/bundle/vim-latex-suite/ftplugin/latex-suite/compiler.vim compiler.vim > vimlatex.patch
e aplicando o patch no diretório apropriado.