améliroation de l'aide

This commit is contained in:
2025-08-15 07:46:18 +02:00
parent 66205d2607
commit 9d4109421f
2 changed files with 88 additions and 23 deletions

View File

@@ -128,6 +128,8 @@ Declare.i ConfigIdentityWizard(repoDir$)
Declare.i MakeDefaultGitignore(repoDir$)
Declare.i UpdateGuide(repoDir$, List rows.FileRow(), branch$, remote$)
Declare.s GetLocalConfig(repoDir$, key$)
Declare.i IsGitRepo(dir$)
Declare.i UpdateGuide(repoDir$, List rows.FileRow(), branch$, remote$)
; ====== Utils ======
Procedure.s TrimNewlines(text$)
@@ -731,45 +733,108 @@ Procedure.i MakeDefaultGitignore(repoDir$)
ProcedureReturn 0
EndProcedure
; Vérifie si 'dir$' est un dépôt Git
; - essaie via 'git rev-parse --is-inside-work-tree'
; - fallback: présence du dossier .git
Procedure.i IsGitRepo(dir$)
Protected gc.GitCall
Protected isRepo.i = 0
Protected dotGitDir$ = dir$
If Right(dotGitDir$, 1) <> #PathSep$
dotGitDir$ + #PathSep$
EndIf
dotGitDir$ + ".git"
gc\workdir = dir$
gc\args = "rev-parse --is-inside-work-tree"
If RunGit(@gc) = 0
If FindString(LCase(TrimNewlines(gc\output)), "true", 1)
isRepo = 1
EndIf
Else
; Fallback : dossier .git présent ?
If FileSize(dotGitDir$) = -2
isRepo = 1
EndIf
EndIf
If #EnableDebug
Debug "[IsGitRepo] " + dir$ + " -> " + Str(isRepo)
EndIf
ProcedureReturn isRepo
EndProcedure
; Met à jour le panneau "Guide" avec un pas-à-pas adapté
; - Inclut létape “Init repo” si le dossier nest pas encore un dépôt
; - Rappelle la différence Commit / Push pour débutants
Procedure.i UpdateGuide(repoDir$, List rows.FileRow(), branch$, remote$)
Protected tips$ = ""
Protected hasChanges.i = 0
Protected name$ = GetLocalConfig(repoDir$, "user.name")
Protected mail$ = GetLocalConfig(repoDir$, "user.email")
Protected repoReady.i = IsGitRepo(repoDir$)
; Y a-t-il des lignes dans le status ?
ForEach rows()
hasChanges = 1
Break
Next
Protected name$ = GetLocalConfig(repoDir$, "user.name")
Protected mail$ = GetLocalConfig(repoDir$, "user.email")
tips$ + "Bienvenue !" + #LF$
tips$ + "- Si vous débutez, suivez ces étapes :" + #LF$ + #LF$
tips$ + "1) " + Chr(149) + " Vérifiez que l'identité Git est configurée (bouton 'Configurer identité…')." + #LF$
If name$ = "" Or mail$ = ""
tips$ + " → Identité actuelle : INCOMPLÈTE." + #LF$
Else
tips$ + " → Identité : " + name$ + " <" + mail$ + ">" + #LF$
EndIf
tips$ + "- Ce panneau vous guide pas à pas." + #LF$ + #LF$
tips$ + "2) " + Chr(149) + " Optionnel : créez un '.gitignore' (bouton dédié) pour ignorer les fichiers de compilation." + #LF$
tips$ + "3) " + Chr(149) + " Cochez dans la liste les fichiers à inclure au commit." + #LF$
If hasChanges
tips$ + " → Des modifications sont détectées ci-dessus." + #LF$
Else
tips$ + " → Aucune modification à committer pour linstant." + #LF$
EndIf
If repoReady = 0
; ---- Dépôt non initialisé : on commence par git init ----
tips$ + "Étapes de départ :" + #LF$
tips$ + "1) " + Chr(149) + " Cliquez sur le bouton 'Init repo' pour INITIALISER le dépôt dans ce dossier." + #LF$
tips$ + "2) " + Chr(149) + " (Recommandé) Créez un '.gitignore' avec le bouton dédié, pour ignorer les binaires/artefacts." + #LF$
tips$ + "3) " + Chr(149) + " Configurez votre identité (bouton 'Configurer identité…')." + #LF$
tips$ + "4) " + Chr(149) + " Cochez les fichiers à inclure, saisissez un message, puis 'Add + Commit'." + #LF$
tips$ + "5) " + Chr(149) + " Pour partager en ligne : créez un dépôt distant (GitHub/GitLab…) puis utilisez 'Push'." + #LF$ + #LF$
tips$ + "4) " + Chr(149) + " Saisissez un message puis cliquez sur 'Add + Commit' (coche 'Pousser après' si besoin)." + #LF$
tips$ + "5) " + Chr(149) + " Pour changer/recuperer une branche : bouton 'Avancé…'." + #LF$ + #LF$
Else
; ---- Dépôt déjà prêt ----
tips$ + "Étapes :" + #LF$
tips$ + "1) " + Chr(149) + " (Optionnel) Créez/complétez un '.gitignore' si nécessaire." + #LF$
tips$ + "2) " + Chr(149) + " Vérifiez lidentité Git locale." + #LF$
If name$ = "" Or mail$ = ""
tips$ + " → Identité : INCOMPLÈTE (utilisez 'Configurer identité…')." + #LF$
Else
tips$ + " → Identité : " + name$ + " <" + mail$ + ">" + #LF$
EndIf
tips$ + "3) " + Chr(149) + " Cochez les fichiers à inclure au prochain commit (bouton 'Diff…' pour voir les détails)." + #LF$
If hasChanges
tips$ + " → Des modifications sont détectées ci-dessus." + #LF$
Else
tips$ + " → Aucune modification détectée pour linstant." + #LF$
EndIf
tips$ + "4) " + Chr(149) + " Saisissez un message, cliquez 'Add + Commit' (et cochez 'Pousser après' si vous voulez envoyer au serveur)." + #LF$
tips$ + "5) " + Chr(149) + " Pour changer/restaurer une branche : 'Avancé…'." + #LF$ + #LF$
EndIf
tips$ + "Infos :" + #LF$
tips$ + "• Remote : " + remote$ + " • Branche : " + branch$ + #LF$
tips$ + "• Cliquez sur 'Diff…' pour voir le détail dun fichier sélectionné." + #LF$
tips$ + "• 'Diff…' affiche le détail dun fichier sélectionné." + #LF$ + #LF$
; Rappel pédagogique (commit vs push)
tips$ + "Rappel : différence entre Commit et Push" + #LF$
tips$ + "• Commit : enregistre localement un instantané de vos fichiers (dans lhistorique du dépôt sur votre machine)." + #LF$
tips$ + "• Push : envoie vos commits locaux vers un serveur distant (GitHub, GitLab, etc.)." + #LF$
tips$ + "→ On peut faire des commits hors-ligne ; le push nécessite un dépôt distant configuré (ex. 'origin') et une branche (ex. 'main')." + #LF$
SetGadgetText(#GGuide, tips$)
If #EnableDebug
Debug "[UpdateGuide] repoReady=" + Str(repoReady) + " changes=" + Str(hasChanges)
EndIf
ProcedureReturn 1
EndProcedure
; ====== UI principale ======
; Gadgets IDs (inclut les NOUVEAUX boutons)
#GWindow = 1
@@ -840,7 +905,7 @@ Procedure.i OpenGUI(initialDir$, prefsPath$)
; Panneau Guide
EditorGadget(#GGuide, 10, 490, 800, 140)
DisableGadget(#GGuide, 1)
;DisableGadget(#GGuide, 1)
; Infobulles
GadgetToolTip(#GListStatus, "Cochez pour inclure un fichier dans le prochain commit. Double-cliquez pour sélectionner, bouton 'Diff…' pour le détail.")
@@ -1208,8 +1273,8 @@ Else
EndIf
; IDE Options = PureBasic 6.21 (Windows - x64)
; CursorPosition = 1010
; FirstLine = 969
; CursorPosition = 835
; FirstLine = 794
; Folding = ------
; EnableXP
; DPIAware

Binary file not shown.