Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zartek-creole/git-file-history-extractor
Script Bash pour extraire l’historique complet (avec renommages) d’un fichier dans un dépôt Git, générer des patches, un résumé, et (optionnellement) des diffs HTML.
https://github.com/zartek-creole/git-file-history-extractor
bash-script diff git git-utilities history-extraction patch rename-detection
Last synced: 20 days ago
JSON representation
Script Bash pour extraire l’historique complet (avec renommages) d’un fichier dans un dépôt Git, générer des patches, un résumé, et (optionnellement) des diffs HTML.
- Host: GitHub
- URL: https://github.com/zartek-creole/git-file-history-extractor
- Owner: ZarTek-Creole
- Created: 2024-12-31T17:31:07.000Z (about 1 month ago)
- Default Branch: master
- Last Pushed: 2024-12-31T17:56:19.000Z (about 1 month ago)
- Last Synced: 2025-01-08T13:08:47.749Z (29 days ago)
- Topics: bash-script, diff, git, git-utilities, history-extraction, patch, rename-detection
- Language: Shell
- Homepage:
- Size: 3.91 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Git File History Extractor
> **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.## Fonctionnalités
- **Extraction** de toutes les versions d’un fichier (avec renommage).
- **Création** de fichiers `.patch` pour 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 `diff2html` est installé).
- **Personnalisation** : ajustement des seuils de détection de renommage (`-M`, `-C`), activation du rendu HTML, etc.## Installation
1. **Cloner** ce dépôt :
```bash
git clone https://github.com/ZarTek-Creole/git-file-history-extractor.git
cd git-file-history-extractor
```
2. **Rendre le script exécutable** :
```bash
chmod +x git_file_history.sh
```## Utilisation
Dans votre dépôt Git :
```bash
# Exemple : extraire l'historique d'un fichier nommé "cdc.md"
./git_file_history.sh cdc.md
```### Variables d’environnement (optionnelles)
- **RENAME_THRESHOLD** : seuil de détection de renommage, par ex. `50%` (défaut `1%`).
- **COPY_THRESHOLD** : seuil de détection de copie, par ex. `50%` (défaut `1%`).
- **ENABLE_HTML_DIFF** : mettre `1` pour générer des diffs HTML (via `diff2html`).Exemple d’exécution avec variables personnalisées :
```bash
RENAME_THRESHOLD=50% COPY_THRESHOLD=50% ENABLE_HTML_DIFF=1 ./git_file_history.sh docs/cdc.md
```## Résultats
- Le script crée un dossier `versions_of_/` :
- **Toutes les versions** du fichier, nommées :
```
__.md
```
- **Des patches** :
```
__.patch
```
- **(Optionnel) des diffs HTML** :
```
__.html
```
- Un **fichier `summary.txt`** qui récapitule l’ensemble des commits, les auteurs, les messages, et les chemins des fichiers extraits.## Exemple rapide
```bash
# 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
```