0

commits.txtファイルで使用可能なコミットのリストがあり、後でブランチに適用できるように、これらのコミットのパッチのリストを準備する必要があります。そうするために、以下のbashスクリプトを書きました:-

#!/tools/bin/bash

echo "Enter input file name"
read FILENAME

echo "Enter log file name"
read LOGNAME 

while read line;
do 
    git show -- $line > /dev/null
    if [ $? -eq 0 ] 
    then
        git format-patch -- $line -1
    else
        echo "NOT FOUND, Log commit ID"
        $line >> $LOGNAME
    fi
done < $FILENAME

入力ファイル名を「commits.txt」、ログファイル名を「mylog.txt」と入力します。これらのコミットのリストから *.patch ファイルを取得していません。手がかりはありますか?

ありがとう、プラサンナ・ナヴァラトナ

4

1 に答える 1

0

少なくとも次の問題があります。

  1. の場合は、コミット ID がリビジョンであるため、 のgit show置きます。-- $line
  2. の場合git format-patch、 は の-1前にある必要があります--(これは実際には不要です)。
  3. ログについては、tryecho $line >>$LOGNAMEを試してください。それ以外の場合は、コミット ID の名前でプログラムを実行しようとします。

達成しようとしていることに応じて、git cherry-pick $(tr '\n' ' ' commits.txt)すでに実行している可能性があります。リストされているすべてのコミットを現在のブランチに適用します。

于 2013-05-22T10:22:15.307 に答える