Script Bash pour extraire l’historique complet d’un fichier au sein d’un dépôt Git, y compris les renommages et déplacements.
Génère un résumé (summary.txt), les versions extraites du fichier, ainsi que des patches et (optionnellement) des diffs HTML.
- Extraction de toutes les versions d’un fichier (avec renommage).
- Création de fichiers
.patchpour chaque commit. - Génération d’un récapitulatif complet (
summary.txt), listant :- le commit,
- l’auteur,
- le message,
- la date,
- le fichier extrait,
- le patch correspondant,
- (optionnel) le diff HTML (si
diff2htmlest installé).
- Personnalisation : ajustement des seuils de détection de renommage (
-M,-C), activation du rendu HTML, etc.
- Cloner ce dépôt :
git clone https://github.com/ZarTek-Creole/git-file-history-extractor.git cd git-file-history-extractor - Rendre le script exécutable :
chmod +x git_file_history.sh
Dans votre dépôt Git :
# Exemple : extraire l'historique d'un fichier nommé "cdc.md"
./git_file_history.sh cdc.md- RENAME_THRESHOLD : seuil de détection de renommage, par ex.
50%(défaut1%). - COPY_THRESHOLD : seuil de détection de copie, par ex.
50%(défaut1%). - ENABLE_HTML_DIFF : mettre
1pour générer des diffs HTML (viadiff2html).
Exemple d’exécution avec variables personnalisées :
RENAME_THRESHOLD=50% COPY_THRESHOLD=50% ENABLE_HTML_DIFF=1 ./git_file_history.sh docs/cdc.md- Le script crée un dossier
versions_of_<nomFichier>/:- Toutes les versions du fichier, nommées :
<timestamp>_<commit>_<fichier>.md - Des patches :
<timestamp>_<commit>_<fichier>.patch - (Optionnel) des diffs HTML :
<timestamp>_<commit>_<fichier>.html - Un fichier
summary.txtqui récapitule l’ensemble des commits, les auteurs, les messages, et les chemins des fichiers extraits.
- Toutes les versions du fichier, nommées :
# Dans le répertoire d'un projet Git
cd /path/to/my-git-repo
# Lancer le script pour extraire l'historique de cdc.md
/path/to/git_file_history_extractor/git_file_history.sh cdc.md
# Regarder le résultat
ls versions_of_cdc.md/
cat versions_of_cdc.md/summary.txt