En combinant la réponse de Hugo (1) avec des informations trouvées ici (2) et ballottée dans certains sed
, je suis arrivé ceci:
alias newest="find . -path ./.git -prune -o -type f -exec stat -c \"%y %n\" '{}' + | sort -r | head -1 | sed s#'.*\./'##"
GIT_AUTHOR_DATE="$(newest | xargs date -u -r)" GIT_COMMITTER_DATE="$(newest | xargs date -u -r)" git commit -m "Old sources retaining old change-dates of last changed file: $(newest), actual commit date: $(date)"
La principale différence est que cette version fait une recherche récursive, donc vous obtenez le dernier fichier n'importe où dans l'arborescence - bien qu'il ignore le répertoire .git, intentionnellement. Vous pouvez, bien sûr, vouloir supprimer une des variables de date ici, et j'utilise une version assez récente de bash (4.2.37 (1) -release), donc la notation $() pourrait ne pas fonctionner pour vous (il suffit de le remplacer par des backticks (`) à la place).
Avez-vous essayé de changer votre horloge? =) Je pense que cela devrait fonctionner localement, mais je ne sais pas ce qu'il se passera quand les autres vont fusionner. – Kieveli
Les horodatages ne sont pas pertinents pour les fusions. – Dustin