質問: 「パッチが予期せず行の途中で終了する」とはどういう意味ですか? これは私のパッチコマンドの出力です:hunk #11 merged at 4184,4190. hunk #12 merged at 4444. hunk #13 merged at 4944. hunk #14 not merged at 5106-5116. hunk #15 merged at 5290. hunk #16 merged at 5448. patch unexpectedly ends in middle of line hunk #17 merged at 5608,5611. コマンドはpatch -d ~/some_dir -p1 --merge --verbose -u パッチはgitを使用して作成されました:git --git-dir ~/some_dir/.git diff -u8 bb1ee538982957b421a4c0e78f30428e73c9a072 head -- malloc.c patch unexpectedly ends in middle of lineはどういう意味ですか、それは問題ですか?それはハンク16または17を参照していますか?これを引き起こしている原因を突き止めるために、パッチファイルで何を探すことができますか?
回答: この非常に古い議論に追加するには:opが指摘した警告につながる問題は、通常、行末の問題が原因です。patch wantsファイルの終わりを判断するための末尾のラインフィード(lf)(および誤って切り捨てられた可能性のある統合された差分を警告) 編集のためにファイルを開かずに、適切な改行を追加します(エディターの設定によっては、行末が変更されるか、末尾の行/スペースが削除される場合があります)。次のような簡単な操作を実行できます。 echo -e "\n" >> yourpatchfile これにより、他の変更を加えることなく、ファイルの最後に改行文字が追加されます。 パッチファイルが既に変である場合、またはいくつかの可能な修正を一度に実行したい場合は、行末(crまたはcrlfからlf)を含む(asciiへの)エンコーディングに関する多くの問題を修正できます。 dos2unix -k yourpatchfile osのパッケージマネージャからdos2unixバイナリをインストールする必要がある場合があります。つまり. debian/ubuntuベース:sudo apt install dos2unix fedora/rhel/centos:sudo yum install dos2unix macos(brew付き):brew install dos2unix