「Hunk #1 FAILED at 1(別行末)」メッセージを修正するには?

「Hunk #1 FAILED at 1(別行末)」メッセージを修正するには?

次のコマンドを使用してパッチを作成しようとしています。

git diff sourcefile >/var/lib/laymab/overlay/category/ebuild/files/thepatch.patch

パッチを適用すると私に

$ patch -v
GNU patch 2.7.5

$ /usr/bin/patch -p1 </var/lib/laymab/overlay/category/ebuild/files/thepatch.patch
patching file sourcefile
Hunk #1 FAILED at 1 (different line endings).
Hunk #2 FAILED at 23 (different line endings).
Hunk #3 FAILED at 47 (different line endings).
Hunk #4 FAILED at 65 (different line endings).
Hunk #5 FAILED at 361 (different line endings).
5 out of 5 hunks FAILED -- saving rejects to file sourcefile.rej

srcファイルとパッチファイルにdos2unixを適用してみましたが、メッセージは消えませんでした...

UPD:--ignore-whitespaceも役に立ちません

PATCH COMMAND:  patch -p1 -g0 -E --no-backup-if-mismatch --ignore-whitespace --dry-run -f < '/var/lib/layman/dotnet/dev-dotnet/slntools/files/remove-wix-project-from-sln-file-v2.patch'

=====================================================
checking file Main/SLNTools.sln
Hunk #1 FAILED at 14 (different line endings).
Hunk #2 FAILED at 49 (different line endings).
Hunk #3 FAILED at 69 (different line endings).
Hunk #4 FAILED at 102 (different line endings).
4 out of 4 hunks FAILED

UPD:とても良い記事を見つけました:https://stackoverflow.com/a/4425433/1709408

ベストアンサー1

patchMSYS2に付属のコマンドを使用してWindowsで同じ問題が発生しました。私の場合、ソースファイルとパッチの両方にCRLF行末があり、どちらもLFに変換しても機能しませんでした。有効な方法は次のとおりです。

$ dos2unix patch-file.patch
$ patch -p1 < patch-file.patch
$ unix2dos modified-files...

patchパッチされたすべてのファイルの行末をLFに変換するため、CRLFに変換する必要があります。

Obs:patch私が使っているバージョンは2.7.5です。

おすすめ記事