1

追加/更新されたファイルの mtime をレポコミット時間 (またはその他のコミットメタデータに依存) に変更する方法を知っている人はいますか?

ファイルの mtime をテストするいくつかのロジックがありますが、バックエンド サーバーでは、変更されたファイルの mtime が異なります。このため、いくつかのバグがあります。

4

2 に答える 2

1

を実行するときにファイルを更新/追加していると仮定するとgit fetch、新しいリビジョンごとにすべてのファイル/ディレクトリをタッチするとともに、リベースを行う git-rebase-and-touch スクリプト ファイルを作成できます。

スクリプトは次のようになります。

#!/bin/bash

saveIFS=${IFS}
IFS=$'\n'
startrev=$(git rev-parse HEAD)
git rebase
for rev in $(git rev-list --reverse ${startrev}..HEAD); do
    stamp=$(git log --pretty="%aD" ${rev}~..${rev})
    IFS=$'\n'
    for filename in $(git diff --name-only ${rev}~..${rev}); do
        file=""
        IFS='/'
        for part in ${filename}; do
            file=${file}/${part}
            file=${file#/}
            touch -c --date="${stamp}" "${file}"
        done
    done
done
IFS=${saveIFS}

現在使用している場合git pullは、git fetch代わりに使用してください。

于 2013-09-28T20:22:59.227 に答える