summaryrefslogtreecommitdiff
path: root/PROJECT.md
diff options
context:
space:
mode:
authorertopogo <erwin.t.pombett@gmail.com>2025-11-26 19:52:23 +0100
committerertopogo <erwin.t.pombett@gmail.com>2025-11-26 19:52:23 +0100
commitb33ff5f1fa86a8989ef1be65fd636b0458c0e9d1 (patch)
tree8fe8eb9e67450e27c62a0903c8175cecf1f7c50a /PROJECT.md
parent65c3cd080d112ad92aa6399c8c6c8090ccec90cb (diff)
Chore: Normalisation des fin de ligne (LF) via .gittattributsmain
Diffstat (limited to 'PROJECT.md')
-rw-r--r--PROJECT.md340
1 files changed, 204 insertions, 136 deletions
diff --git a/PROJECT.md b/PROJECT.md
index ee2d62d..4ef0961 100644
--- a/PROJECT.md
+++ b/PROJECT.md
@@ -1,136 +1,204 @@
-# Projet : Synchronisation de fichiers de configuration
-
-## Objectif
-
-Ce projet permet de centraliser et synchroniser tous les fichiers de configuration (vim, bash, screen, cursor, documentation, etc.) depuis Windows et WSL vers un dépôt git sur chillka.
-
-## Structure du projet
-
-```
-config-files-keyvault/
-├── .git/ # Dépôt git local
-├── configs/
-│ ├── windows/ # Fichiers provenant de Windows
-│ └── wsl/ # Fichiers provenant de WSL
-├── scripts/
-│ ├── sync-to-project.ps1 # Script pour copier fichiers vers le projet
-│ └── sync-from-project.ps1 # Script pour restaurer fichiers depuis le projet
-├── files-config.txt # Liste des fichiers à synchroniser
-├── path-mapping.json # Mapping chemins originaux <-> chemins dans le projet
-└── PROJECT.md # Documentation du projet
-```
-
-## Utilisation
-
-### 1. Ajouter des fichiers à synchroniser
-
-Éditer le fichier `files-config.txt` et ajouter les fichiers au format :
-```
-windows|%USERPROFILE%\.vimrc
-wsl|~/.bashrc
-```
-
-### 2. Copier les fichiers vers le projet
-
-Exécuter le script PowerShell :
-```powershell
-.\scripts\sync-to-project.ps1
-```
-
-Ce script va :
-- Lire `files-config.txt`
-- Copier chaque fichier vers `configs/{system}/`
-- Créer/mettre à jour `path-mapping.json` avec les chemins originaux
-
-### 3. Restaurer les fichiers depuis le projet
-
-Exécuter le script PowerShell :
-```powershell
-.\scripts\sync-from-project.ps1
-```
-
-Ce script va :
-- Lire `path-mapping.json`
-- Copier chaque fichier depuis `configs/{system}/` vers son emplacement original
-- Créer les répertoires parents si nécessaire
-
-### 4. Synchronisation Git
-
-Le dépôt git est configuré avec le remote :
-```
-toshiro@chillka:/var/data/git/repositories/config-files-keyvault.git
-```
-
-Pour synchroniser :
-```powershell
-git add .
-git commit -m "Mise à jour des fichiers de configuration"
-git push origin main
-```
-
-### 5. Diagnostic et Commandes Git Utiles
-
-Pour vérifier l'état du dépôt et diagnostiquer les problèmes :
-
-**Voir les dépôts distants configurés :**
-```powershell
-git remote -v
-```
-
-**Voir l'historique des commits :**
-```powershell
-git log --oneline --graph --decorate --all
-```
-
-**Voir l'état des fichiers (modifiés, ajoutés, non suivis) :**
-```powershell
-git status
-```
-
-**Créer le dépôt distant sur le serveur (si "fatal: repository not found") :**
-```powershell
-ssh toshiro@chillka "mkdir -p /var/data/git/repositories/config-files-keyvault.git && git init --bare /var/data/git/repositories/config-files-keyvault.git"
-```
-
-## Format de fichiers-config.txt
-
-Chaque ligne doit suivre le format :
-```
-{système}|{chemin}
-```
-
-Où :
-- `{système}` : `windows` ou `wsl`
-- `{chemin}` : Chemin du fichier avec support des variables d'environnement Windows (`%VAR%`) ou expansion WSL (`~`)
-
-Exemples :
-```
-windows|%USERPROFILE%\.vimrc
-windows|%APPDATA%\Cursor\User\settings.json
-wsl|~/.bashrc
-wsl|~/.bash_aliases
-wsl|~/.screenrc
-```
-
-## Format de path-mapping.json
-
-Ce fichier est généré automatiquement par le script `sync-to-project.ps1`. Il contient le mapping entre les chemins originaux et les chemins dans le projet :
-
-```json
-{
- "windows": {
- "%USERPROFILE%\\.vimrc": "configs/windows/.vimrc"
- },
- "wsl": {
- "~/.bashrc": "configs/wsl/.bashrc"
- }
-}
-```
-
-## Notes
-
-- Les fichiers sont organisés par système d'origine (windows/wsl) pour faciliter la gestion
-- Le mapping des chemins permet de restaurer les fichiers à leur emplacement exact
-- Les répertoires parents sont créés automatiquement lors de la restauration
-- Les fichiers WSL sont accessibles via le chemin Windows `\\wsl.localhost\Ubuntu\` pour une meilleure performance et fiabilité
-
+# Projet : Synchronisation de fichiers de configuration
+
+## Objectif
+
+Ce projet permet de centraliser et synchroniser tous les fichiers de configuration (vim, bash, screen, cursor, documentation, etc.) depuis Windows et WSL vers un dépôt git sur chillka.
+
+## Structure du projet
+
+```
+config-files-keyvault/
+├── .git/ # Dépôt git local
+├── configs/
+│ ├── windows/ # Fichiers provenant de Windows
+│ └── wsl/ # Fichiers provenant de WSL
+├── scripts/
+│ ├── sync-to-project.ps1 # Script pour copier fichiers vers le projet
+│ └── sync-from-project.ps1 # Script pour restaurer fichiers depuis le projet
+├── files-config.txt # Liste des fichiers à synchroniser
+├── path-mapping.json # Mapping chemins originaux <-> chemins dans le projet
+└── PROJECT.md # Documentation du projet
+```
+
+## Utilisation
+
+### 1. Ajouter des fichiers à synchroniser
+
+Éditer le fichier `files-config.txt` et ajouter les fichiers au format :
+```
+windows|%USERPROFILE%\.vimrc
+wsl|~/.bashrc
+```
+
+### 2. Copier les fichiers vers le projet
+
+Exécuter le script PowerShell :
+```powershell
+.\scripts\sync-to-project.ps1
+```
+
+Ce script va :
+- Lire `files-config.txt`
+- Copier chaque fichier vers `configs/{system}/`
+- Créer/mettre à jour `path-mapping.json` avec les chemins originaux
+
+### 3. Restaurer les fichiers depuis le projet
+
+Exécuter le script PowerShell :
+```powershell
+.\scripts\sync-from-project.ps1
+```
+
+Ce script va :
+- Lire `path-mapping.json`
+- Copier chaque fichier depuis `configs/{system}/` vers son emplacement original
+- Créer les répertoires parents si nécessaire
+
+### 4. Synchronisation Git
+
+Le dépôt git est configuré avec le remote :
+```
+toshiro@chillka:/var/data/git/repositories/config-files-keyvault.git
+```
+
+**Pousser les changements (workflow standard) :**
+```powershell
+git add .
+git commit -m "Message décrivant les changements"
+git push
+```
+
+**Premier push (si la branche n'est pas encore liée) :**
+```powershell
+git push --set-upstream origin main
+```
+
+### 5. Diagnostic et Commandes Git Utiles
+
+Pour vérifier l'état du dépôt et diagnostiquer les problèmes :
+
+**Voir les dépôts distants configurés :**
+```powershell
+git remote -v
+```
+
+**Voir l'historique des commits :**
+```powershell
+git log --oneline --graph --decorate --all
+```
+
+**Voir l'état des fichiers (modifiés, ajoutés, non suivis) :**
+```powershell
+git status
+```
+
+**Créer le dépôt distant sur le serveur (si "fatal: repository not found") :**
+```powershell
+ssh toshiro@chillka "mkdir -p /var/data/git/repositories/config-files-keyvault.git && git init --bare /var/data/git/repositories/config-files-keyvault.git"
+```
+
+### 6. Administration du Serveur (Chillka)
+
+Commandes pour interagir directement avec le dépôt distant via SSH :
+
+**Vérifier si le dépôt existe et voir les 5 derniers commits sur le serveur :**
+```powershell
+ssh toshiro@chillka "cd /var/data/git/repositories/config-files-keyvault.git && git log --oneline -n 5"
+```
+
+**Vérifier l'intégrité du dépôt distant (fsck) :**
+```powershell
+ssh toshiro@chillka "cd /var/data/git/repositories/config-files-keyvault.git && git fsck"
+```
+
+### 7. Gestion des Branches et Workflow Avancé
+
+**Scénario A : Créer une branche locale et la publier**
+```powershell
+# 1. Créer la branche et basculer dessus
+git checkout -b ma-nouvelle-branche
+
+# 2. Travailler, ajouter, commiter...
+git add .
+git commit -m "Travail sur ma branche"
+
+# 3. Publier la branche sur le serveur (crée la branche distante)
+git push -u origin ma-nouvelle-branche
+```
+
+**Scénario B : Récupérer une branche existante sur le serveur**
+```powershell
+# 1. Mettre à jour la liste des branches distantes
+git fetch --all
+
+# 2. Voir toutes les branches (locales et distantes)
+git branch -a
+
+# 3. Créer une copie locale d'une branche distante et basculer dessus
+# (Git comprend automatiquement qu'il doit suivre origin/nom-branche)
+git checkout nom-branche-distante
+```
+
+**Maintenance et Nettoyage (Admin)**
+```powershell
+# Supprimer une branche locale
+git branch -d nom-branche
+
+# Supprimer une branche sur le serveur (DANGER)
+git push origin --delete nom-branche
+
+# Nettoyer les références locales vers des branches distantes supprimées
+git fetch --prune
+```
+
+**Commandes utiles pour l'historique**
+```powershell
+# Voir les différences entre la branche actuelle et main
+git diff main
+
+# Voir quel fichier a été modifié par qui et quand (blame)
+git blame chemin/vers/fichier
+```
+
+## Format de fichiers-config.txt
+
+Chaque ligne doit suivre le format :
+```
+{système}|{chemin}
+```
+
+Où :
+- `{système}` : `windows` ou `wsl`
+- `{chemin}` : Chemin du fichier avec support des variables d'environnement Windows (`%VAR%`) ou expansion WSL (`~`)
+
+Exemples :
+```
+windows|%USERPROFILE%\.vimrc
+windows|%APPDATA%\Cursor\User\settings.json
+wsl|~/.bashrc
+wsl|~/.bash_aliases
+wsl|~/.screenrc
+```
+
+## Format de path-mapping.json
+
+Ce fichier est généré automatiquement par le script `sync-to-project.ps1`. Il contient le mapping entre les chemins originaux et les chemins dans le projet :
+
+```json
+{
+ "windows": {
+ "%USERPROFILE%\\.vimrc": "configs/windows/.vimrc"
+ },
+ "wsl": {
+ "~/.bashrc": "configs/wsl/.bashrc"
+ }
+}
+```
+
+## Notes
+
+- Les fichiers sont organisés par système d'origine (windows/wsl) pour faciliter la gestion
+- Le mapping des chemins permet de restaurer les fichiers à leur emplacement exact
+- Les répertoires parents sont créés automatiquement lors de la restauration
+- Les fichiers WSL sont accessibles via le chemin Windows `\\wsl.localhost\Ubuntu\` pour une meilleure performance et fiabilité
+