1

コードの最新のマスター ブランチをプルダウンし、ファイル名のいずれかが SQL であるかどうかを確認するスクリプトを作成しています。ファイル名を決定したら、ストアド プロシージャを取得します。現在、コードをプルして行ごとに出力を準備していますが、grepコマンドはSQLファイル名を見つけることができないようです。これは私が持っているものです

#!/bin/bash

# Pull all of the latest code for the master branch, and set the commit log to 
# a variable
commit_log=$(git pull origin master --quiet)

#read the commit log line by line
echo $commit_log | while read line
do
    if [ `echo "$line" | grep -E "(\.sql)$"` ]; then
        echo "SQL"
    fi      
    echo "LINE:" $line 
done  

私は bash で立ち往生していません。これは perl で行うこともできます。

4

1 に答える 1

4

プルの後、新しい状態は HEAD に保存され、古い状態は HEAD@{1} に保存されます。を使用して、両方の間で変更されたファイルを見つけることができますgit diff --name-only。ファイル名を確認するには、小さな perl ワンライナーが最も簡単な方法のようです。

git pull
git diff --name-only HEAD@{1} | perl -wpe 'print "SQL:" if /\.sql$/'
于 2013-05-16T21:45:35.863 に答える