追加/更新されたファイルの mtime をレポコミット時間 (またはその他のコミットメタデータに依存) に変更する方法を知っている人はいますか?
ファイルの mtime をテストするいくつかのロジックがありますが、バックエンド サーバーでは、変更されたファイルの mtime が異なります。このため、いくつかのバグがあります。
を実行するときにファイルを更新/追加していると仮定すると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
代わりに使用してください。