From 4dcf4e0ed44183f846878a3845e8a71b61c34edb Mon Sep 17 00:00:00 2001 From: Michele Ballabio Date: Wed, 10 Oct 2007 15:04:16 +0200 Subject: [PATCH 01/16] git-gui: update Italian translation An Italian glossary was also added. Some changes: * commit (verb): (creare una) nuova revisione * commit (noun): revisione * checkout: attivazione * tracking branch: duplicato locale di ramo remoto * repository: archivio * some terms are used with more consistency Signed-off-by: Michele Ballabio Signed-off-by: Shawn O. Pearce --- po/glossary/it.po | 180 +++++++++++++++++ po/it.po | 493 +++++++++++++++++++++++----------------------- 2 files changed, 429 insertions(+), 244 deletions(-) create mode 100644 po/glossary/it.po diff --git a/po/glossary/it.po b/po/glossary/it.po new file mode 100644 index 0000000000..8e3d9a2f07 --- /dev/null +++ b/po/glossary/it.po @@ -0,0 +1,180 @@ +# Translation of git-gui glossary to Italian +# Copyright (C) 2007 Shawn Pearce, et al. +# This file is distributed under the same license as the git package. +# Christian Stimming , 2007 +# +msgid "" +msgstr "" +"Project-Id-Version: git-gui glossary\n" +"POT-Creation-Date: 2007-10-05 22:30+0200\n" +"PO-Revision-Date: 2007-10-10 15:24+0200\n" +"Last-Translator: Michele Ballabio \n" +"Language-Team: Italian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. "English Definition (Dear translator: This file will never be visible to the user! It should only serve as a tool for you, the translator. Nothing more.)" +msgid "" +"English Term (Dear translator: This file will never be visible to the user!)" +msgstr "" +"Traduzione italiana.\n" +"Altri SCM in italiano:\n" +" http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/Languages/Tortoise_it." +"po (username=guest, password empty),\n" +" http://tortoisecvs.cvs.sourceforge.net/tortoisecvs/po/TortoiseCVS/it_IT.po?" +"view=markup ,\n" +" http://rapidsvn.tigris.org/svn/rapidsvn/trunk/src/locale/it_IT/rapidsvn.po " +"(username=guest, password empty)" + +#. "" +msgid "amend" +msgstr "correggere, correzione" + +#. "" +msgid "annotate" +msgstr "annotare, annotazione" + +#. "A 'branch' is an active line of development." +msgid "branch [noun]" +msgstr "ramo, diramazione, ramificazione" + +#. "" +msgid "branch [verb]" +msgstr "creare ramo, ramificare, diramare" + +#. "" +msgid "checkout [noun]" +msgstr "attivazione, checkout, revisione attiva, prelievo (TortoiseCVS)?" + +#. "The action of updating the working tree to a revision which was stored in the object database." +msgid "checkout [verb]" +msgstr "" +"attivare, effettuare un checkout, attivare revisione, prelevare (TortoiseCVS), " +"ritirare (TSVN)?" + +#. "" +msgid "clone [verb]" +msgstr "clonare" + +#. "A single point in the git history." +msgid "commit [noun]" +msgstr "revisione, commit, deposito (TortoiseCVS), invio (TSVN)?" + +#. "The action of storing a new snapshot of the project's state in the git history." +msgid "commit [verb]" +msgstr "" +"creare una nuova revisione, archiviare, effettuare un commit, depositare " +"(nel server), fare un deposito (TortoiseCVS), inviare (TSVN)?" + +#. "" +msgid "diff [noun]" +msgstr "differenza, confronto, comparazione, raffronto" + +#. "" +msgid "diff [verb]" +msgstr "confronta, mostra le differenze" + +#. "A fast-forward is a special type of merge where you have a revision and you are merging another branch's changes that happen to be a descendant of what you have." +msgid "fast forward merge" +msgstr "fusione in 'fast-forward', fusione in avanti veloce" + +#. "Fetching a branch means to get the branch's head from a remote repository, to find out which objects are missing from the local object database, and to get them, too." +msgid "fetch" +msgstr "recuperare, prelevare, prendere da, recuperare (TSVN)" + +#. "A collection of files. The index is a stored version of your working tree." +msgid "index (in git-gui: staging area)" +msgstr "indice" + +#. "A successful merge results in the creation of a new commit representing the result of the merge." +msgid "merge [noun]" +msgstr "fusione, unione" + +#. "To bring the contents of another branch into the current branch." +msgid "merge [verb]" +msgstr "effettuare la fusione, unire, fondere, eseguire la fusione" + +#. "" +msgid "message" +msgstr "messaggio, commento" + +#. "" +msgid "prune" +msgstr "potatura" + +#. "Pulling a branch means to fetch it and merge it." +msgid "pull" +msgstr "" +"prendi (recupera) e fondi (unisci)? (in pratica una traduzione di fetch + " +"merge)" + +#. "Pushing a branch means to get the branch's head ref from a remote repository, and ... (well, can someone please explain it for mere mortals?)" +msgid "push" +msgstr "propaga" + +#. "" +msgid "redo" +msgstr "ripeti, rifai" + +#. "A collection of refs (?) together with an object database containing all objects which are reachable from the refs... (oops, you've lost me here. Again, please an explanation for mere mortals?)" +msgid "repository" +msgstr "archivio, repository, database? deposito (rapidsvn)?" + +#. "" +msgid "reset" +msgstr "ripristinare, annullare, azzerare, ripristinare" + +#. "" +msgid "revert" +msgstr "" +"annullare, inverti (rapidsvn), ritorna allo stato precedente, annulla le " +"modifiche della revisione" + +#. "A particular state of files and directories which was stored in the object database." +msgid "revision" +msgstr "revisione (TortoiseSVN)" + +#. "" +msgid "sign off" +msgstr "sign off, firma" + +#. "" +msgid "staging area" +msgstr "" +"area di preparazione, zona di preparazione, modifiche in preparazione? " +"modifiche in allestimento?" + +#. "" +msgid "status" +msgstr "stato" + +#. "A ref pointing to a tag or commit object" +msgid "tag [noun]" +msgstr "etichetta, etichettatura (TortoiseCVS)" + +#. "" +msgid "tag [verb]" +msgstr "etichettare" + +#. "A regular git branch that is used to follow changes from another repository." +msgid "tracking branch" +msgstr "" +"duplicato locale di ramo remoto, ramo in 'tracking', ramo inseguitore? ramo di {inseguimento,allineamento," +"rilevamento,puntamento}?" + +#. "" +msgid "undo" +msgstr "annulla" + +#. "" +msgid "update" +msgstr "aggiornamento, aggiornare" + +#. "" +msgid "verify" +msgstr "verifica, verificare" + +#. "The tree of actual checked out files." +msgid "working copy, working tree" +msgstr "directory di lavoro, copia di lavoro" diff --git a/po/it.po b/po/it.po index d959019aab..7668414104 100644 --- a/po/it.po +++ b/po/it.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: git-gui\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-10-10 04:04-0400\n" -"PO-Revision-Date: 2007-08-09 00:27+0200\n" +"POT-Creation-Date: 2007-10-10 14:42+0200\n" +"PO-Revision-Date: 2007-10-10 15:27+0200\n" "Last-Translator: Paolo Ciarrocchi \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" @@ -20,12 +20,12 @@ msgstr "" #: git-gui.sh:41 git-gui.sh:634 git-gui.sh:648 git-gui.sh:661 git-gui.sh:744 #: git-gui.sh:763 msgid "git-gui: fatal error" -msgstr "" +msgstr "git-gui: errore grave" #: git-gui.sh:595 -#, fuzzy, tcl-format +#, tcl-format msgid "Invalid font specified in %s:" -msgstr "Caratteri non validi specificati nella gui.%s:" +msgstr "Caratteri non validi specificati in %s:" #: git-gui.sh:620 msgid "Main Font" @@ -56,7 +56,7 @@ msgid "" msgstr "" "La versione di GIT non può essere determinata.\n" "\n" -"%s sostiene che la versione è '%s'.\n" +"%s riporta che la versione è '%s'.\n" "\n" "%s richiede almeno Git 1.5.0 o superiore.\n" "\n" @@ -67,9 +67,8 @@ msgid "Git directory not found:" msgstr "Non trovo la directory di git: " #: git-gui.sh:860 -#, fuzzy msgid "Cannot move to top of working directory:" -msgstr "Impossibile usare una .git directory strana:" +msgstr "Impossibile spostarsi sulla directory principale del progetto:" #: git-gui.sh:867 msgid "Cannot use funny .git directory:" @@ -97,23 +96,23 @@ msgstr "Non modificato" #: git-gui.sh:1527 msgid "Modified, not staged" -msgstr "Modificato, non pronto per il commit" +msgstr "Modificato, non preparato per una nuova revisione" #: git-gui.sh:1528 git-gui.sh:1533 msgid "Staged for commit" -msgstr "Pronto per il commit" +msgstr "Preparato per una nuova revisione" #: git-gui.sh:1529 git-gui.sh:1534 msgid "Portions staged for commit" -msgstr "Parti pronte per il commit" +msgstr "Parti preparate per una nuova revisione" #: git-gui.sh:1530 git-gui.sh:1535 msgid "Staged for commit, missing" -msgstr "Pronto per il commit, mancante" +msgstr "Preparato per una nuova revisione, mancante" #: git-gui.sh:1532 msgid "Untracked, not staged" -msgstr "Non tracciato, non pronto per il commit" +msgstr "Non tracciato, non preparato per una nuova revisione" #: git-gui.sh:1537 msgid "Missing" @@ -121,11 +120,11 @@ msgstr "Mancante" #: git-gui.sh:1538 msgid "Staged for removal" -msgstr "Pronto per la rimozione" +msgstr "Preparato per la rimozione" #: git-gui.sh:1539 msgid "Staged for removal, still present" -msgstr "Pronto alla rimozione, ancora presente" +msgstr "Preparato alla rimozione, ancora presente" #: git-gui.sh:1541 git-gui.sh:1542 git-gui.sh:1543 git-gui.sh:1544 msgid "Requires merge resolution" @@ -159,18 +158,16 @@ msgid "Branch" msgstr "Ramo" #: git-gui.sh:1794 lib/choose_rev.tcl:547 -#, fuzzy msgid "Commit@@noun" -msgstr "Commit" +msgstr "Revisione" #: git-gui.sh:1797 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168 msgid "Merge" msgstr "Fusione (Merge)" #: git-gui.sh:1798 lib/choose_rev.tcl:556 -#, fuzzy msgid "Remote" -msgstr "Remoto:" +msgstr "Remoto" #: git-gui.sh:1807 msgid "Browse Current Branch's Files" @@ -200,15 +197,15 @@ msgstr "Visualizza la cronologia di %s" #: git-gui.sh:1834 lib/database.tcl:27 lib/database.tcl:67 msgid "Database Statistics" -msgstr "Statistiche del database" +msgstr "Statistiche dell'archivio" #: git-gui.sh:1837 lib/database.tcl:34 msgid "Compress Database" -msgstr "Comprimi il database" +msgstr "Comprimi l'archivio" #: git-gui.sh:1840 msgid "Verify Database" -msgstr "Verifica il database" +msgstr "Verifica l'archivio" #: git-gui.sh:1847 git-gui.sh:1851 git-gui.sh:1855 lib/shortcut.tcl:9 #: lib/shortcut.tcl:45 lib/shortcut.tcl:84 @@ -255,7 +252,7 @@ msgstr "Crea..." #: git-gui.sh:1902 msgid "Checkout..." -msgstr "Checkout..." +msgstr "Attiva..." #: git-gui.sh:1908 msgid "Rename..." @@ -271,11 +268,11 @@ msgstr "Ripristina..." #: git-gui.sh:1930 git-gui.sh:2313 msgid "New Commit" -msgstr "Nuovo commit" +msgstr "Nuova revisione" #: git-gui.sh:1938 git-gui.sh:2320 msgid "Amend Last Commit" -msgstr "Correggi l'ultimo commit" +msgstr "Correggi l'ultima revisione" #: git-gui.sh:1947 git-gui.sh:2280 lib/remote_branch_delete.tcl:99 msgid "Rescan" @@ -283,15 +280,15 @@ msgstr "Analizza nuovamente" #: git-gui.sh:1953 msgid "Stage To Commit" -msgstr "Prepara per il commit" +msgstr "Prepara per una nuova revisione" #: git-gui.sh:1958 msgid "Stage Changed Files To Commit" -msgstr "Prepara per il commit i file modificati" +msgstr "Prepara i file modificati per una nuova revisione" #: git-gui.sh:1964 msgid "Unstage From Commit" -msgstr "Non pronto per il commit" +msgstr "Annulla preparazione" #: git-gui.sh:1969 lib/index.tcl:352 msgid "Revert Changes" @@ -302,17 +299,16 @@ msgid "Sign Off" msgstr "Sign Off" #: git-gui.sh:1980 git-gui.sh:2296 -#, fuzzy msgid "Commit@@verb" -msgstr "Commit" +msgstr "Nuova revisione" #: git-gui.sh:1991 msgid "Local Merge..." -msgstr "Fusione locale" +msgstr "Fusione locale..." #: git-gui.sh:1996 msgid "Abort Merge..." -msgstr "Interrompi fusione" +msgstr "Interrompi fusione..." #: git-gui.sh:2008 msgid "Push..." @@ -330,7 +326,7 @@ msgstr "Informazioni su %s" #: git-gui.sh:2026 msgid "Preferences..." -msgstr "" +msgstr "Preferenze..." #: git-gui.sh:2034 git-gui.sh:2558 msgid "Options..." @@ -348,20 +344,20 @@ msgstr "Documentazione sul web" #, tcl-format msgid "fatal: cannot stat path %s: No such file or directory" msgstr "" +"errore grave: impossibile effettuare lo stat del path %s: file o directory " +"non trovata" #: git-gui.sh:2198 msgid "Current Branch:" msgstr "Ramo attuale:" #: git-gui.sh:2219 -#, fuzzy msgid "Staged Changes (Will Commit)" -msgstr "Modifiche preparate (ne verrà effettuato il commit)" +msgstr "Modifiche preparate (saranno nella nuova revisione)" #: git-gui.sh:2239 -#, fuzzy msgid "Unstaged Changes" -msgstr "Prepara modificati" +msgstr "Modifiche non preparate" #: git-gui.sh:2286 msgid "Stage Changed" @@ -373,15 +369,15 @@ msgstr "Propaga (Push)" #: git-gui.sh:2332 msgid "Initial Commit Message:" -msgstr "Messaggio di commit iniziale:" +msgstr "Messaggio di revisione iniziale:" #: git-gui.sh:2333 msgid "Amended Commit Message:" -msgstr "Messaggio di commit corretto:" +msgstr "Messaggio di revisione corretto:" #: git-gui.sh:2334 msgid "Amended Initial Commit Message:" -msgstr "Messaggio iniziale di commit corretto:" +msgstr "Messaggio iniziale di revisione corretto:" #: git-gui.sh:2335 msgid "Amended Merge Commit Message:" @@ -393,7 +389,7 @@ msgstr "Messaggio di fusione:" #: git-gui.sh:2337 msgid "Commit Message:" -msgstr "Messaggio di commit:" +msgstr "Messaggio di revisione:" #: git-gui.sh:2382 git-gui.sh:2520 lib/console.tcl:71 msgid "Copy All" @@ -429,11 +425,11 @@ msgstr "Mostra più contesto" #: git-gui.sh:2565 msgid "Unstage Hunk From Commit" -msgstr "Sezione non pronta per il commit" +msgstr "Sezione non preparata per una nuova revisione" #: git-gui.sh:2567 msgid "Stage Hunk For Commit" -msgstr "Prepara sezione per il commit" +msgstr "Prepara sezione per una nuova revisione" #: git-gui.sh:2586 msgid "Initializing..." @@ -449,6 +445,12 @@ msgid "" "by %s:\n" "\n" msgstr "" +"Possibili problemi con le variabili d'ambiente.\n" +"\n" +"Le seguenti variabili d'ambiente saranno probabilmente\n" +"ignorate da tutti i sottoprocessi di Git avviati\n" +"da %s:\n" +"\n" #: git-gui.sh:2707 msgid "" @@ -456,6 +458,9 @@ msgid "" "This is due to a known issue with the\n" "Tcl binary distributed by Cygwin." msgstr "" +"\n" +"Ciò è dovuto a un problema conosciuto\n" +"causato dall'eseguibile Tcl distribuito da Cygwin." #: git-gui.sh:2712 #, tcl-format @@ -467,6 +472,11 @@ msgid "" "user.email settings into your personal\n" "~/.gitconfig file.\n" msgstr "" +"\n" +"\n" +"Una buona alternativa a %s\n" +"consiste nell'assegnare valori alle variabili di configurazione\n" +"user.name e user.email nel tuo file ~/.gitconfig personale.\n" #: lib/about.tcl:25 msgid "git-gui - a graphical user interface for Git." @@ -478,11 +488,11 @@ msgstr "Mostra file" #: lib/blame.tcl:81 msgid "Commit:" -msgstr "Commit:" +msgstr "Revisione:" #: lib/blame.tcl:249 msgid "Copy Commit" -msgstr "Copia commit" +msgstr "Copia revisione" #: lib/blame.tcl:369 #, tcl-format @@ -491,58 +501,55 @@ msgstr "Lettura di %s..." #: lib/blame.tcl:473 msgid "Loading copy/move tracking annotations..." -msgstr "" +msgstr "Caricamento annotazioni per copie/spostamenti..." #: lib/blame.tcl:493 msgid "lines annotated" -msgstr "" +msgstr "linee annotate" #: lib/blame.tcl:674 msgid "Loading original location annotations..." -msgstr "" +msgstr "Caricamento annotazioni per posizione originaria..." #: lib/blame.tcl:677 msgid "Annotation complete." -msgstr "" +msgstr "Annotazione completata." #: lib/blame.tcl:731 -#, fuzzy msgid "Loading annotation..." -msgstr "Caricamento %s..." +msgstr "Caricamento annotazioni..." #: lib/blame.tcl:787 msgid "Author:" -msgstr "" +msgstr "Autore:" #: lib/blame.tcl:791 -#, fuzzy msgid "Committer:" -msgstr "Commit:" +msgstr "Revisione creata da:" #: lib/blame.tcl:796 msgid "Original File:" -msgstr "" +msgstr "File originario:" #: lib/blame.tcl:910 msgid "Originally By:" -msgstr "" +msgstr "In origine da:" #: lib/blame.tcl:916 -#, fuzzy msgid "In File:" -msgstr "File:" +msgstr "Nel file:" #: lib/blame.tcl:921 msgid "Copied Or Moved Here By:" -msgstr "" +msgstr "Copiato o spostato qui da:" #: lib/branch_checkout.tcl:14 lib/branch_checkout.tcl:19 msgid "Checkout Branch" -msgstr "Checkout ramo" +msgstr "Attiva ramo" #: lib/branch_checkout.tcl:23 msgid "Checkout" -msgstr "Checkout" +msgstr "Attiva" #: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35 #: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:281 @@ -561,7 +568,7 @@ msgstr "Opzioni" #: lib/branch_checkout.tcl:39 lib/branch_create.tcl:92 msgid "Fetch Tracking Branch" -msgstr "Preleva ramo in 'tracking'" +msgstr "Recupera duplicato locale di ramo remoto" #: lib/branch_checkout.tcl:44 msgid "Detach From Local Branch" @@ -589,7 +596,7 @@ msgstr "Nome:" #: lib/branch_create.tcl:58 msgid "Match Tracking Branch Name" -msgstr "Appaia nome del ramo in 'tracking'" +msgstr "Appaia nome del duplicato locale di ramo remoto" #: lib/branch_create.tcl:66 msgid "Starting Revision" @@ -613,16 +620,17 @@ msgstr "Ripristina" #: lib/branch_create.tcl:97 msgid "Checkout After Creation" -msgstr "Checkout dopo la creazione" +msgstr "Attiva dopo la creazione" #: lib/branch_create.tcl:131 msgid "Please select a tracking branch." -msgstr "Scegliere un ramo in 'tracking'" +msgstr "Scegliere un duplicato locale di ramo remoto" #: lib/branch_create.tcl:140 #, tcl-format msgid "Tracking branch %s is not a branch in the remote repository." -msgstr "Il ramo in 'tracking' %s non è un ramo nell'archivio remoto." +msgstr "" +"Il duplicato locale del ramo remoto %s non è un ramo nell'archivio remoto." #: lib/branch_create.tcl:153 lib/branch_rename.tcl:86 msgid "Please supply a branch name." @@ -651,7 +659,7 @@ msgstr "Cancella solo se fuso con un altro ramo" #: lib/branch_delete.tcl:54 msgid "Always (Do not perform merge test.)" -msgstr "Sempre (Non effettuare controlli durante la fusione)." +msgstr "Sempre (Non effettuare verifiche di fusione)." #: lib/branch_delete.tcl:103 #, tcl-format @@ -664,7 +672,7 @@ msgid "" "\n" " Delete the selected branches?" msgstr "" -"Prelevare rami cancellati può essere complicato. \n" +"Ricomporre rami cancellati può essere complicato. \n" "\n" " Eliminare i rami selezionati?" @@ -700,12 +708,12 @@ msgstr "Scegliere un ramo da rinominare." #: lib/branch_rename.tcl:96 lib/checkout_op.tcl:179 #, tcl-format msgid "Branch '%s' already exists." -msgstr "Il ramo '%s' esiste già" +msgstr "Il ramo '%s' esiste già." #: lib/branch_rename.tcl:117 #, tcl-format msgid "Failed to rename '%s'." -msgstr "Cambiamento nome '%s' fallito." +msgstr "Impossibile rinominare '%s'." #: lib/browser.tcl:17 msgid "Starting..." @@ -742,7 +750,7 @@ msgstr "Recupero %s da %s" #: lib/checkout_op.tcl:127 #, tcl-format msgid "fatal: Cannot resolve %s" -msgstr "" +msgstr "errore grave: impossibile risolvere %s" #: lib/checkout_op.tcl:140 lib/console.tcl:79 lib/database.tcl:31 msgid "Close" @@ -778,7 +786,7 @@ msgstr "Aggiornamento di '%s' fallito." #: lib/checkout_op.tcl:251 msgid "Staging area (index) is already locked." -msgstr "L'area di preparazione per il commit (indice) è già bloccata." +msgstr "L'area di preparazione per una nuova revisione (indice) è già bloccata." #: lib/checkout_op.tcl:266 msgid "" @@ -789,23 +797,23 @@ msgid "" "\n" "The rescan will be automatically started now.\n" msgstr "" -"L'ultimo stato analizzato non corrisponde allo stato del repository.\n" +"L'ultimo stato analizzato non corrisponde allo stato dell'archivio.\n" "\n" -"Un altro programma Git ha modificato questo repository dall'ultima analisi. " +"Un altro programma Git ha modificato questo archivio dall'ultima analisi. " "Bisogna effettuare una nuova analisi prima di poter cambiare il ramo " "corrente.\n" "\n" "La nuova analisi comincerà ora.\n" #: lib/checkout_op.tcl:322 -#, fuzzy, tcl-format +#, tcl-format msgid "Updating working directory to '%s'..." -msgstr "Nessuna directory di lavoro" +msgstr "Aggiornamento della directory di lavoro a '%s' in corso..." #: lib/checkout_op.tcl:353 #, tcl-format msgid "Aborted checkout of '%s' (file level merging is required)." -msgstr "Checkout di '%s' fallito (richiesta una fusione a livello file)." +msgstr "Attivazione di '%s' fallita (richiesta una fusione a livello file)." #: lib/checkout_op.tcl:354 msgid "File level merge required." @@ -825,22 +833,23 @@ msgid "" msgstr "" "Non si è più su un ramo locale\n" "\n" -"Se si vuole rimanere su un ramo, crearne uno ora a partire da 'Questo " -"checkout staccato'." +"Se si vuole rimanere su un ramo, crearne uno ora a partire da 'Questa " +"revisione attiva staccata'." #: lib/checkout_op.tcl:446 -#, fuzzy, tcl-format +#, tcl-format msgid "Checked out '%s'." -msgstr "Checkout..." +msgstr "Attivazione di '%s' completata." #: lib/checkout_op.tcl:478 #, tcl-format msgid "Resetting '%s' to '%s' will lose the following commits:" -msgstr "Ripristinare '%s' a '%s' comporterà la perdita dei seguenti commit:" +msgstr "" +"Ripristinare '%s' a '%s' comporterà la perdita delle seguenti revisioni:" #: lib/checkout_op.tcl:500 msgid "Recovering lost commits may not be easy." -msgstr "Prelevare i commit perduti potrebbe non essere semplice." +msgstr "Ricomporre le revisioni perdute potrebbe non essere semplice." #: lib/checkout_op.tcl:505 #, tcl-format @@ -870,130 +879,125 @@ msgstr "" "Questo non sarebbe dovuto succedere. %s ora terminerà senza altre azioni." #: lib/choose_font.tcl:39 -#, fuzzy msgid "Select" -msgstr "Seleziona tutto" +msgstr "Seleziona" #: lib/choose_font.tcl:53 msgid "Font Family" -msgstr "" +msgstr "Famiglia di caratteri" #: lib/choose_font.tcl:73 -#, fuzzy msgid "Font Size" -msgstr "Diminuisci dimensione caratteri" +msgstr "Dimensione caratteri" #: lib/choose_font.tcl:90 msgid "Font Example" -msgstr "" +msgstr "Esempio caratteri" #: lib/choose_font.tcl:101 msgid "" "This is example text.\n" "If you like this text, it can be your font." msgstr "" +"Questo è un testo d'esempio.\n" +"Se ti piace questo testo, può essere il carattere giusto." #: lib/choose_repository.tcl:25 msgid "Git Gui" -msgstr "" +msgstr "Git Gui" #: lib/choose_repository.tcl:69 lib/choose_repository.tcl:204 -#, fuzzy msgid "Create New Repository" -msgstr "Da archivio" +msgstr "Crea nuovo archivio" #: lib/choose_repository.tcl:74 lib/choose_repository.tcl:291 -#, fuzzy msgid "Clone Existing Repository" -msgstr "Archivio di destinazione" +msgstr "Clona archivio esistente" #: lib/choose_repository.tcl:79 lib/choose_repository.tcl:800 -#, fuzzy msgid "Open Existing Repository" -msgstr "Archivio di destinazione" +msgstr "Apri archivio esistente" #: lib/choose_repository.tcl:91 msgid "Next >" -msgstr "" +msgstr "Successivo >" #: lib/choose_repository.tcl:152 -#, fuzzy, tcl-format +#, tcl-format msgid "Location %s already exists." -msgstr "Il ramo '%s' esiste già" +msgstr "La posizione %s esiste già." #: lib/choose_repository.tcl:158 lib/choose_repository.tcl:165 #: lib/choose_repository.tcl:172 -#, fuzzy, tcl-format +#, tcl-format msgid "Failed to create repository %s:" -msgstr "Fallimento nel salvataggio completo delle opzioni:" +msgstr "Impossibile creare l'archivio %s:" #: lib/choose_repository.tcl:209 lib/choose_repository.tcl:309 msgid "Directory:" -msgstr "" +msgstr "Directory:" #: lib/choose_repository.tcl:238 lib/choose_repository.tcl:363 #: lib/choose_repository.tcl:834 -#, fuzzy msgid "Git Repository" -msgstr "Archivio" +msgstr "Archivio Git" #: lib/choose_repository.tcl:253 lib/choose_repository.tcl:260 -#, fuzzy, tcl-format +#, tcl-format msgid "Directory %s already exists." -msgstr "Il ramo '%s' esiste già" +msgstr "La directory %s esiste già." #: lib/choose_repository.tcl:265 -#, fuzzy, tcl-format +#, tcl-format msgid "File %s already exists." -msgstr "Il ramo '%s' esiste già" +msgstr "Il file %s esiste già." #: lib/choose_repository.tcl:286 -#, fuzzy msgid "Clone" -msgstr "Chiudi" +msgstr "Clona" #: lib/choose_repository.tcl:299 msgid "URL:" -msgstr "" +msgstr "URL:" #: lib/choose_repository.tcl:319 msgid "Clone Type:" -msgstr "" +msgstr "Tipo di clone:" #: lib/choose_repository.tcl:325 msgid "Standard (Fast, Semi-Redundant, Hardlinks)" -msgstr "" +msgstr "Standard (veloce, semi-ridondante, con hardlink)" #: lib/choose_repository.tcl:331 msgid "Full Copy (Slower, Redundant Backup)" -msgstr "" +msgstr "Copia completa (più lento, backup ridondante)" #: lib/choose_repository.tcl:337 msgid "Shared (Fastest, Not Recommended, No Backup)" -msgstr "" +msgstr "Shared (il più veloce, non raccomandato, nessun backup)" #: lib/choose_repository.tcl:369 lib/choose_repository.tcl:418 #: lib/choose_repository.tcl:560 lib/choose_repository.tcl:630 #: lib/choose_repository.tcl:840 lib/choose_repository.tcl:848 -#, fuzzy, tcl-format +#, tcl-format msgid "Not a Git repository: %s" -msgstr "Nessun archivio selezionato." +msgstr "%s non è un archivio Git." #: lib/choose_repository.tcl:405 msgid "Standard only available for local repository." -msgstr "" +msgstr "Standard è disponibile solo per archivi locali." #: lib/choose_repository.tcl:409 msgid "Shared only available for local repository." -msgstr "" +msgstr "Shared è disponibile solo per archivi locali." #: lib/choose_repository.tcl:439 msgid "Failed to configure origin" -msgstr "" +msgstr "Impossibile configurare origin" #: lib/choose_repository.tcl:451 msgid "Counting objects" -msgstr "" +msgstr "Calcolo oggetti" #: lib/choose_repository.tcl:452 msgid "buckets" @@ -1002,116 +1006,117 @@ msgstr "" #: lib/choose_repository.tcl:476 #, tcl-format msgid "Unable to copy objects/info/alternates: %s" -msgstr "" +msgstr "Impossibile copiare oggetti/info/alternate: %s" #: lib/choose_repository.tcl:512 -#, fuzzy, tcl-format +#, tcl-format msgid "Nothing to clone from %s." -msgstr "Recupero nuove modifiche da %s" +msgstr "Niente da clonare da %s." #: lib/choose_repository.tcl:514 lib/choose_repository.tcl:728 #: lib/choose_repository.tcl:740 msgid "The 'master' branch has not been initialized." -msgstr "" +msgstr "Il ramo 'master' non è stato inizializzato." #: lib/choose_repository.tcl:527 msgid "Hardlinks are unavailable. Falling back to copying." -msgstr "" +msgstr "Impossibile utilizzare gli hardlink. Si ricorrerà alla copia." #: lib/choose_repository.tcl:539 -#, fuzzy, tcl-format +#, tcl-format msgid "Cloning from %s" -msgstr "Recupero %s da %s" +msgstr "Clonazione da %s" #: lib/choose_repository.tcl:570 -#, fuzzy msgid "Copying objects" -msgstr "Compressione del database in corso" +msgstr "Copia degli oggetti" #: lib/choose_repository.tcl:571 msgid "KiB" -msgstr "" +msgstr "KiB" #: lib/choose_repository.tcl:595 #, tcl-format msgid "Unable to copy object: %s" -msgstr "" +msgstr "Impossibile copiare oggetto: %s" #: lib/choose_repository.tcl:605 msgid "Linking objects" -msgstr "" +msgstr "Collegamento oggetti" #: lib/choose_repository.tcl:606 msgid "objects" -msgstr "" +msgstr "oggetti" #: lib/choose_repository.tcl:614 #, tcl-format msgid "Unable to hardlink object: %s" -msgstr "" +msgstr "Hardlink impossibile sull'oggetto: %s" #: lib/choose_repository.tcl:669 msgid "Cannot fetch branches and objects. See console output for details." msgstr "" +"Impossibile recuperare rami e oggetti. Controllare i dettagli forniti dalla " +"console." #: lib/choose_repository.tcl:680 msgid "Cannot fetch tags. See console output for details." msgstr "" +"Impossibile recuperare le etichette. Controllare i dettagli forniti dalla " +"console." #: lib/choose_repository.tcl:704 msgid "Cannot determine HEAD. See console output for details." msgstr "" +"Impossibile determinare HEAD. Controllare i dettagli forniti dalla console." #: lib/choose_repository.tcl:713 #, tcl-format msgid "Unable to cleanup %s" -msgstr "" +msgstr "Impossibile ripulire %s" #: lib/choose_repository.tcl:719 -#, fuzzy msgid "Clone failed." -msgstr "Interruzione fallita." +msgstr "Clonazione fallita." #: lib/choose_repository.tcl:726 msgid "No default branch obtained." -msgstr "" +msgstr "Non è stato trovato un ramo predefinito." #: lib/choose_repository.tcl:737 #, tcl-format msgid "Cannot resolve %s as a commit." -msgstr "" +msgstr "Impossibile risolvere %s come una revisione." #: lib/choose_repository.tcl:749 -#, fuzzy msgid "Creating working directory" -msgstr "Nessuna directory di lavoro" +msgstr "Creazione directory di lavoro" #: lib/choose_repository.tcl:750 lib/index.tcl:15 lib/index.tcl:80 #: lib/index.tcl:149 msgid "files" -msgstr "" +msgstr "file" #: lib/choose_repository.tcl:779 msgid "Initial file checkout failed." -msgstr "" +msgstr "Attivazione iniziale impossibile." #: lib/choose_repository.tcl:795 msgid "Open" -msgstr "" +msgstr "Apri" #: lib/choose_repository.tcl:805 -#, fuzzy msgid "Repository:" -msgstr "Archivio" +msgstr "Archivio:" #: lib/choose_repository.tcl:854 -#, fuzzy, tcl-format +#, tcl-format msgid "Failed to open repository %s:" -msgstr "Fallimento nel salvataggio completo delle opzioni:" +msgstr "Impossibile accedere all'archivio %s:" #: lib/choose_rev.tcl:53 msgid "This Detached Checkout" -msgstr "Questo checkout staccato" +msgstr "Questa revisione attiva staccata" #: lib/choose_rev.tcl:60 msgid "Revision Expression:" @@ -1123,7 +1128,7 @@ msgstr "Ramo locale" #: lib/choose_rev.tcl:79 msgid "Tracking Branch" -msgstr "Ramo in 'tracking'" +msgstr "Duplicato locale di ramo remoto" #: lib/choose_rev.tcl:84 lib/choose_rev.tcl:537 msgid "Tag" @@ -1144,11 +1149,11 @@ msgstr "L'espressione di revisione è vuota." #: lib/choose_rev.tcl:530 msgid "Updated" -msgstr "" +msgstr "Aggiornato" #: lib/choose_rev.tcl:558 msgid "URL" -msgstr "" +msgstr "URL" #: lib/commit.tcl:9 msgid "" @@ -1159,8 +1164,8 @@ msgid "" msgstr "" "Non c'è niente da correggere.\n" "\n" -"Stai per creare il commit iniziale. Non esiste un commit precedente da " -"correggere.\n" +"Stai per creare la revisione iniziale. Non esiste una revisione " +"precedente da correggere.\n" #: lib/commit.tcl:18 msgid "" @@ -1173,12 +1178,12 @@ msgstr "" "Non è possibile effettuare una correzione durante una fusione.\n" "\n" "In questo momento si sta effettuando una fusione che non è stata del tutto " -"completata. Non puoi correggere il commit precedente a meno che prima tu non " -"interrompa l'operazione di fusione in corso.\n" +"completata. Non puoi correggere la revisione precedente a meno che prima tu " +"non interrompa l'operazione di fusione in corso.\n" #: lib/commit.tcl:49 msgid "Error loading commit data for amend:" -msgstr "Errore durante il caricamento dei dati da correggere:" +msgstr "Errore durante il caricamento dei dati della revisione da correggere:" #: lib/commit.tcl:76 msgid "Unable to obtain your identity:" @@ -1197,10 +1202,11 @@ msgid "" "\n" "The rescan will be automatically started now.\n" msgstr "" -"L'ultimo stato analizzato non corrisponde allo stato del repository.\n" +"L'ultimo stato analizzato non corrisponde allo stato dell'archivio.\n" "\n" -"Un altro programma Git ha modificato questo repository dall'ultima analisi. " -"Bisogna effettuare una nuova analisi prima di poter creare un nuovo commit.\n" +"Un altro programma Git ha modificato questo archivio dall'ultima analisi. " +"Bisogna effettuare una nuova analisi prima di poter creare una nuova " +"revisione.\n" "\n" "La nuova analisi comincerà ora.\n" @@ -1212,10 +1218,10 @@ msgid "" "File %s has merge conflicts. You must resolve them and stage the file " "before committing.\n" msgstr "" -"Non è possibile effettuare il commit di file non sottoposti a fusione.\n" +"Non è possibile creare una revisione con file non sottoposti a fusione.\n" "\n" "Il file %s presenta dei conflitti. Devi risolverli e preparare il file per " -"il commit prima di effettuare questa azione.\n" +"creare una nuova revisione prima di effettuare questa azione.\n" #: lib/commit.tcl:162 #, tcl-format @@ -1226,7 +1232,7 @@ msgid "" msgstr "" "Stato di file %s sconosciuto.\n" "\n" -"Non si può effettuare il commit del file %s con questo programma.\n" +"Questo programma non può creare una revisione contenente il file %s.\n" #: lib/commit.tcl:170 msgid "" @@ -1234,9 +1240,9 @@ msgid "" "\n" "You must stage at least 1 file before you can commit.\n" msgstr "" -"Nessuna modifica per la quale effettuare il commit.\n" +"Nessuna modifica per la nuova revisione.\n" "\n" -"Devi preparare per il commit almeno 1 file prima di effettuare questa " +"Devi preparare per una nuova revisione almeno 1 file prima di effettuare questa " "operazione.\n" #: lib/commit.tcl:183 @@ -1249,13 +1255,13 @@ msgid "" "- Second line: Blank\n" "- Remaining lines: Describe why this change is good.\n" msgstr "" -"Bisogna fornire un messaggio di commit.\n" +"Bisogna fornire un messaggio di revisione.\n" "\n" -"Un buon messaggio di commit ha il seguente formato:\n" +"Un buon messaggio di revisione ha il seguente formato:\n" "\n" "- Prima linea: descrivi in una frase ciò che hai fatto.\n" "- Seconda linea: vuota.\n" -"- Terza linea: spiga a cosa serve la tua modifica.\n" +"- Terza linea: spiega a cosa serve la tua modifica.\n" #: lib/commit.tcl:257 msgid "write-tree failed:" @@ -1264,7 +1270,7 @@ msgstr "write-tree fallito:" #: lib/commit.tcl:275 #, tcl-format msgid "Commit %s appears to be corrupt" -msgstr "" +msgstr "La revisione %s sembra essere corrotta" #: lib/commit.tcl:279 msgid "" @@ -1274,20 +1280,20 @@ msgid "" "\n" "A rescan will be automatically started now.\n" msgstr "" -"Nessuna modifica pronta per il commit.\n" +"Nessuna modifica per la nuova revisione.\n" "\n" -"Questo commit non modifica alcun file e non effettua alcuna fusione.\n" +"Questa revisione non modifica alcun file e non effettua alcuna fusione.\n" "\n" "Si procederà subito ad una nuova analisi.\n" #: lib/commit.tcl:286 msgid "No changes to commit." -msgstr "Nessuna modifica pronta per il commit." +msgstr "Nessuna modifica per la nuova revisione." #: lib/commit.tcl:303 #, tcl-format msgid "warning: Tcl does not support encoding '%s'." -msgstr "" +msgstr "attenzione: Tcl non supporta la codifica '%s'." #: lib/commit.tcl:317 msgid "commit-tree failed:" @@ -1300,7 +1306,7 @@ msgstr "update-ref fallito:" #: lib/commit.tcl:430 #, tcl-format msgid "Created commit %s: %s" -msgstr "Creato commit %s: %s" +msgstr "Creata revisione %s: %s" #: lib/console.tcl:57 msgid "Working... please wait..." @@ -1344,7 +1350,7 @@ msgstr "File inutili" #: lib/database.tcl:72 msgid "Compressing the object database" -msgstr "Compressione del database in corso" +msgstr "Compressione dell'archivio in corso" #: lib/database.tcl:83 msgid "Verifying the object database with fsck-objects" @@ -1360,11 +1366,17 @@ msgid "" "\n" "Compress the database now?" msgstr "" +"Questo archivio attualmente ha circa %i oggetti slegati.\n" +"\n" +"Per mantenere buone prestazioni si raccomanda di comprimere l'archivio " +"quando sono presenti più di %i oggetti slegati.\n" +"\n" +"Comprimere l'archivio ora?" #: lib/date.tcl:25 -#, fuzzy, tcl-format +#, tcl-format msgid "Invalid date from Git: %s" -msgstr "Revisione non valida: %s" +msgstr "Git ha restituito una data non valida: %s" #: lib/diff.tcl:42 #, tcl-format @@ -1390,14 +1402,14 @@ msgstr "" "potrebbero avere lo stesso stato." #: lib/diff.tcl:81 -#, fuzzy, tcl-format +#, tcl-format msgid "Loading diff of %s..." -msgstr "Caricamento %s..." +msgstr "Caricamento delle differenze di %s..." #: lib/diff.tcl:114 lib/diff.tcl:184 #, tcl-format msgid "Unable to display %s" -msgstr "" +msgstr "Impossibile visualizzare %s" #: lib/diff.tcl:115 msgid "Error loading file:" @@ -1405,11 +1417,11 @@ msgstr "Errore nel caricamento del file:" #: lib/diff.tcl:122 msgid "Git Repository (subproject)" -msgstr "" +msgstr "Archivio Git (sottoprogetto)" #: lib/diff.tcl:134 msgid "* Binary file (not showing content)." -msgstr "" +msgstr "* File binario (il contenuto non sarà mostrato)." #: lib/diff.tcl:185 msgid "Error loading diff:" @@ -1417,11 +1429,11 @@ msgstr "Errore nel caricamento delle differenze:" #: lib/diff.tcl:302 msgid "Failed to unstage selected hunk." -msgstr "La sezione scelta è ancora pronta per il commit." +msgstr "La sezione scelta è ancora pronta per una nuova revisione." #: lib/diff.tcl:309 msgid "Failed to stage selected hunk." -msgstr "La sezione scelta non è ancora pronta per il commit." +msgstr "Impossibile preparare la sezione scelta per una nuova revisione." #: lib/error.tcl:12 lib/error.tcl:102 msgid "error" @@ -1429,21 +1441,21 @@ msgstr "errore" #: lib/error.tcl:28 msgid "warning" -msgstr "avviso" +msgstr "attenzione" #: lib/error.tcl:81 msgid "You must correct the above errors before committing." -msgstr "Bisogna correggere gli errori suddetti prima di effettuare un commit." +msgstr "Bisogna correggere gli errori suddetti prima di creare una nuova revisione." #: lib/index.tcl:241 -#, fuzzy, tcl-format +#, tcl-format msgid "Unstaging %s from commit" -msgstr "Non pronto per il commit" +msgstr "%s non farà parte della prossima revisione" #: lib/index.tcl:285 -#, fuzzy, tcl-format +#, tcl-format msgid "Adding %s" -msgstr "Lettura di %s..." +msgstr "Aggiunta di %s in corso" #: lib/index.tcl:340 #, tcl-format @@ -1458,7 +1470,8 @@ msgstr "Annullare le modifiche in questi %i file?" #: lib/index.tcl:348 msgid "Any unstaged changes will be permanently lost by the revert." msgstr "" -"Tutte le modifiche non preparate per il commit saranno perse per sempre." +"Tutte le modifiche non preparate per una nuova revisione saranno perse per " +"sempre." #: lib/index.tcl:351 msgid "Do Nothing" @@ -1472,8 +1485,8 @@ msgid "" msgstr "" "Non posso effettuare fusioni durante una correzione.\n" "\n" -"Bisogna finire di correggere questo commit prima di iniziare una qualunque " -"fusione.\n" +"Bisogna finire di correggere questa revisione prima di iniziare una " +"qualunque fusione.\n" #: lib/merge.tcl:27 msgid "" @@ -1484,9 +1497,9 @@ msgid "" "\n" "The rescan will be automatically started now.\n" msgstr "" -"L'ultimo stato analizzato non corrisponde allo stato del repository.\n" +"L'ultimo stato analizzato non corrisponde allo stato dell'archivio.\n" "\n" -"Un altro programma Git ha modificato questo repository dall'ultima analisi." +"Un altro programma Git ha modificato questo archivio dall'ultima analisi." "Bisogna effettuare una nuova analisi prima di poter effettuare una fusione.\n" "\n" "La nuova analisi comincerà ora.\n" @@ -1505,8 +1518,8 @@ msgstr "" "\n" "Il file %s ha dei conflitti.\n" "\n" -"Bisogna risolvere i conflitti, preparare il file per il commit ed infine " -"effettuare un commit per completare la fusione corrente. Solo a questo punto " +"Bisogna risolvere i conflitti, preparare il file per una nuova revisione ed " +"infine crearla per completare la fusione corrente. Solo a questo punto " "potrai iniziare un'altra fusione.\n" #: lib/merge.tcl:54 @@ -1523,9 +1536,9 @@ msgstr "" "\n" "Il file %s è stato modificato.\n" "\n" -"Bisogna completare il commit corrente prima di iniziare una fusione. In " -"questo modo sarà più facile interrompere una fusione non riuscita, nel caso " -"ce ne fosse bisogno.\n" +"Bisogna completare la creazione della revisione corrente prima di iniziare una fusione. " +"In questo modo sarà più facile interrompere una fusione non riuscita, nel " +"caso ce ne fosse bisogno.\n" #: lib/merge.tcl:106 #, tcl-format @@ -1562,7 +1575,7 @@ msgid "" msgstr "" "Interruzione impossibile durante una correzione.\n" "\n" -"Bisogna finire di correggere questo commit.\n" +"Bisogna finire di correggere questa revisione.\n" #: lib/merge.tcl:222 msgid "" @@ -1575,7 +1588,7 @@ msgstr "" "Interrompere fusione?\n" "\n" "L'interruzione della fusione corrente causerà la perdita di *TUTTE* le " -"modifiche non ancora presenti nei commit.\n" +"modifiche non ancora presenti nell'archivio.\n" "\n" "Continuare con l'interruzione della fusione corrente?" @@ -1587,10 +1600,10 @@ msgid "" "\n" "Continue with resetting the current changes?" msgstr "" -"Annullare le modifiche?\n" +"Ripristinare la revisione corrente e annullare le modifiche?\n" "\n" "L'annullamento delle modifiche causerà la perdita di *TUTTE* le modifiche " -"non ancora presenti nei commit.\n" +"non ancora presenti nell'archivio.\n" "\n" "Continuare con l'annullamento delle modifiche correnti?" @@ -1617,11 +1630,11 @@ msgstr "Salva" #: lib/option.tcl:96 #, tcl-format msgid "%s Repository" -msgstr "%s archivio" +msgstr "Archivio di %s" #: lib/option.tcl:97 msgid "Global (All Repositories)" -msgstr "Globale (Tutti i repository)" +msgstr "Tutti gli archivi" #: lib/option.tcl:103 msgid "User Name" @@ -1633,11 +1646,11 @@ msgstr "Indirizzo Email" #: lib/option.tcl:106 msgid "Summarize Merge Commits" -msgstr "Riepilogo nei commit di fusione" +msgstr "Riepilogo nelle revisioni di fusione" #: lib/option.tcl:107 msgid "Merge Verbosity" -msgstr "Verbosità della fusione" +msgstr "Prolissità della fusione" #: lib/option.tcl:108 msgid "Show Diffstat After Merge" @@ -1649,11 +1662,12 @@ msgstr "Fidati delle date di modifica dei file" #: lib/option.tcl:111 msgid "Prune Tracking Branches During Fetch" -msgstr "Effettua potatura dei rami in 'tracking' durante il recupero" +msgstr "" +"Effettua potatura dei duplicati locali di rami remoti durante il recupero" #: lib/option.tcl:112 msgid "Match Tracking Branches" -msgstr "Appaia rami in 'tracking'" +msgstr "Appaia duplicati locali di rami remoti" #: lib/option.tcl:113 msgid "Number of Diff Context Lines" @@ -1664,41 +1678,37 @@ msgid "New Branch Name Template" msgstr "Modello per il nome di un nuovo ramo" #: lib/option.tcl:176 -#, fuzzy msgid "Change Font" -msgstr "Caratteri principali" +msgstr "Cambia caratteri" #: lib/option.tcl:180 #, tcl-format msgid "Choose %s" -msgstr "" +msgstr "Scegli %s" #: lib/option.tcl:186 msgid "pt." -msgstr "" +msgstr "pt." #: lib/option.tcl:200 msgid "Preferences" -msgstr "" +msgstr "Preferenze" #: lib/option.tcl:235 msgid "Failed to completely save options:" -msgstr "Fallimento nel salvataggio completo delle opzioni:" +msgstr "Impossibile salvare completamente le opzioni:" #: lib/remote.tcl:165 -#, fuzzy msgid "Prune from" -msgstr "Effettua potatura da %s..." +msgstr "Effettua potatura da" #: lib/remote.tcl:170 -#, fuzzy msgid "Fetch from" -msgstr "Preleva da %s..." +msgstr "Recupera da" #: lib/remote.tcl:213 -#, fuzzy msgid "Push to" -msgstr "Propaga (Push)" +msgstr "Propaga verso" #: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34 msgid "Delete Remote Branch" @@ -1714,7 +1724,7 @@ msgstr "Remoto:" #: lib/remote_branch_delete.tcl:66 lib/transport.tcl:138 msgid "Arbitrary URL:" -msgstr "URL arbitrario:" +msgstr "URL specifico:" #: lib/remote_branch_delete.tcl:84 msgid "Branches" @@ -1730,19 +1740,22 @@ msgstr "Fuso in:" #: lib/remote_branch_delete.tcl:119 msgid "Always (Do not perform merge checks)" -msgstr "Sempre (Non effettuare controlli durante la fusione)" +msgstr "Sempre (non verificare le fusioni)" #: lib/remote_branch_delete.tcl:152 msgid "A branch is required for 'Merged Into'." msgstr "Si richiede un ramo per 'Fuso in'." #: lib/remote_branch_delete.tcl:184 -#, fuzzy, tcl-format +#, tcl-format msgid "" "The following branches are not completely merged into %s:\n" "\n" " - %s" -msgstr "I rami seguenti non sono stati fusi completamente in %s:" +msgstr "" +"I rami seguenti non sono stati fusi completamente in %s:\n" +"\n" +" - %s" #: lib/remote_branch_delete.tcl:189 #, tcl-format @@ -1750,8 +1763,8 @@ msgid "" "One or more of the merge tests failed because you have not fetched the " "necessary commits. Try fetching from %s first." msgstr "" -"Una o più verifiche di fusione sono fallite perché mancano i commit " -"necessari. Prova prima a prelevarli da %s." +"Una o più verifiche di fusione sono fallite perché mancano le revisioni " +"necessarie. Prova prima a recuperarle da %s." #: lib/remote_branch_delete.tcl:207 msgid "Please select one or more branches to delete." @@ -1763,7 +1776,7 @@ msgid "" "\n" "Delete the selected branches?" msgstr "" -"Prelevare rami cancellati è difficile.\n" +"Ricomporre rami cancellati è difficile.\n" "\n" "Cancellare i rami selezionati?" @@ -1795,9 +1808,9 @@ msgid "%s ... %*i of %*i %s (%3i%%)" msgstr "%s ... %*i di %*i %s (%3i%%)" #: lib/transport.tcl:6 -#, fuzzy, tcl-format +#, tcl-format msgid "fetch %s" -msgstr "Preleva (Fetch)" +msgstr "recupera da %s" #: lib/transport.tcl:7 #, tcl-format @@ -1807,17 +1820,17 @@ msgstr "Recupero nuove modifiche da %s" #: lib/transport.tcl:18 #, tcl-format msgid "remote prune %s" -msgstr "" +msgstr "potatura remota di %s" #: lib/transport.tcl:19 #, tcl-format msgid "Pruning tracking branches deleted from %s" -msgstr "Effettua potatura dei rami in 'tracking' cancellati da %s" +msgstr "Effettua potatura dei duplicati locali di rami remoti cancellati da %s" #: lib/transport.tcl:25 lib/transport.tcl:71 #, tcl-format msgid "push %s" -msgstr "" +msgstr "propaga verso %s" #: lib/transport.tcl:26 #, tcl-format @@ -1847,7 +1860,7 @@ msgstr "Opzioni di trasferimento" #: lib/transport.tcl:160 msgid "Force overwrite existing branch (may discard changes)" -msgstr "" +msgstr "Sovrascrivi ramo esistente (alcune modifiche potrebbero essere perse)" #: lib/transport.tcl:164 msgid "Use thin pack (for slow network connections)" @@ -1857,11 +1870,3 @@ msgstr "Utilizza 'thin pack' (per connessioni lente)" msgid "Include tags" msgstr "Includi etichette" -#~ msgid "Cannot find the git directory:" -#~ msgstr "Non posso trovare la directory di git:" - -#~ msgid "Unstaged Changes (Will Not Be Committed)" -#~ msgstr "Modifiche non preparate (non ne verrà effettuato il commit)" - -#~ msgid "Push to %s..." -#~ msgstr "Propaga verso %s..." From a0592d3f5746b41c60fee71dd8d2d27b5c813907 Mon Sep 17 00:00:00 2001 From: Johannes Sixt Date: Wed, 10 Oct 2007 20:50:40 -0400 Subject: [PATCH 02/16] git-gui: Change main window layout to support wider screens The layout is changed to have the file lists at the left (Unstaged Changes at the top, Staged Changes below it) and the diff window at the right (with the commit area below it). +----------+---------------------+ | Unstaged | Diff area | | | | | | | | | | +----------+ | | Staged | | | +---------------------+ | | Commit area | | | | +----------+---------------------+ The advantages are: - The height of the file lists can be adjusted independently to fit the files that they contain. - The diff viewer is higher. On wide screens it is ok that the main window is now generally wider, too. Signed-off-by: Johannes Sixt Signed-off-by: Shawn O. Pearce --- git-gui.sh | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/git-gui.sh b/git-gui.sh index 6b7bdbca21..07be97dd5c 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -1658,8 +1658,8 @@ proc do_quit {} { # set cfg_geometry [list] lappend cfg_geometry [wm geometry .] - lappend cfg_geometry [lindex [.vpane sash coord 0] 1] - lappend cfg_geometry [lindex [.vpane.files sash coord 0] 0] + lappend cfg_geometry [lindex [.vpane sash coord 0] 0] + lappend cfg_geometry [lindex [.vpane.files sash coord 0] 1] if {[catch {set rc_geometry $repo_config(gui.geometry)}]} { set rc_geometry {} } @@ -2208,8 +2208,8 @@ pack .branch -side top -fill x # -- Main Window Layout # -panedwindow .vpane -orient vertical -panedwindow .vpane.files -orient horizontal +panedwindow .vpane -orient horizontal +panedwindow .vpane.files -orient vertical .vpane add .vpane.files -sticky nsew -height 100 -width 200 pack .vpane -anchor n -side top -fill both -expand 1 @@ -2231,7 +2231,6 @@ pack .vpane.files.index.title -side top -fill x pack .vpane.files.index.sx -side bottom -fill x pack .vpane.files.index.sy -side right -fill y pack $ui_index -side left -fill both -expand 1 -.vpane.files add .vpane.files.index -sticky nsew # -- Working Directory File List # @@ -2251,7 +2250,9 @@ pack .vpane.files.workdir.title -side top -fill x pack .vpane.files.workdir.sx -side bottom -fill x pack .vpane.files.workdir.sy -side right -fill y pack $ui_workdir -side left -fill both -expand 1 + .vpane.files add .vpane.files.workdir -sticky nsew +.vpane.files add .vpane.files.index -sticky nsew foreach i [list $ui_index $ui_workdir] { rmsel_tag $i @@ -2264,8 +2265,8 @@ unset i frame .vpane.lower -height 300 -width 400 frame .vpane.lower.commarea frame .vpane.lower.diff -relief sunken -borderwidth 1 -pack .vpane.lower.commarea -side top -fill x -pack .vpane.lower.diff -side bottom -fill both -expand 1 +pack .vpane.lower.diff -fill both -expand 1 +pack .vpane.lower.commarea -side bottom -fill x .vpane add .vpane.lower -sticky nsew # -- Commit Area Buttons @@ -2591,11 +2592,11 @@ catch { set gm $repo_config(gui.geometry) wm geometry . [lindex $gm 0] .vpane sash place 0 \ - [lindex [.vpane sash coord 0] 0] \ - [lindex $gm 1] + [lindex $gm 1] \ + [lindex [.vpane sash coord 0] 1] .vpane.files sash place 0 \ - [lindex $gm 2] \ - [lindex [.vpane.files sash coord 0] 1] + [lindex [.vpane.files sash coord 0] 0] \ + [lindex $gm 2] unset gm } From 69f85ffaa22c3357cbb5c3c97a621eccbdfa2bb3 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Fri, 12 Oct 2007 00:34:04 -0400 Subject: [PATCH 03/16] git-gui: Move load_config procedure below git-version selection To better handle configuration options that contain LFs in their values we want to use the new -z option available in git-config version 1.5.3 and later. To configure load_config based upon the git version we need to move thos below the git-version computation. No logic changes yet, just a minor reordering of the code. Signed-off-by: Shawn O. Pearce --- git-gui.sh | 94 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 49 insertions(+), 45 deletions(-) diff --git a/git-gui.sh b/git-gui.sh index 07be97dd5c..530fee866f 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -233,51 +233,6 @@ proc get_config {name} { } } -proc load_config {include_global} { - global repo_config global_config default_config - - array unset global_config - if {$include_global} { - catch { - set fd_rc [git_read config --global --list] - while {[gets $fd_rc line] >= 0} { - if {[regexp {^([^=]+)=(.*)$} $line line name value]} { - if {[is_many_config $name]} { - lappend global_config($name) $value - } else { - set global_config($name) $value - } - } - } - close $fd_rc - } - } - - array unset repo_config - catch { - set fd_rc [git_read config --list] - while {[gets $fd_rc line] >= 0} { - if {[regexp {^([^=]+)=(.*)$} $line line name value]} { - if {[is_many_config $name]} { - lappend repo_config($name) $value - } else { - set repo_config($name) $value - } - } - } - close $fd_rc - } - - foreach name [array names default_config] { - if {[catch {set v $global_config($name)}]} { - set global_config($name) $default_config($name) - } - if {[catch {set v $repo_config($name)}]} { - set repo_config($name) $default_config($name) - } - } -} - ###################################################################### ## ## handy utils @@ -789,6 +744,55 @@ if {$idx ne {}} { } unset -nocomplain idx fd +###################################################################### +## +## config file parsing + +proc load_config {include_global} { + global repo_config global_config default_config + + array unset global_config + if {$include_global} { + catch { + set fd_rc [git_read config --global --list] + while {[gets $fd_rc line] >= 0} { + if {[regexp {^([^=]+)=(.*)$} $line line name value]} { + if {[is_many_config $name]} { + lappend global_config($name) $value + } else { + set global_config($name) $value + } + } + } + close $fd_rc + } + } + + array unset repo_config + catch { + set fd_rc [git_read config --list] + while {[gets $fd_rc line] >= 0} { + if {[regexp {^([^=]+)=(.*)$} $line line name value]} { + if {[is_many_config $name]} { + lappend repo_config($name) $value + } else { + set repo_config($name) $value + } + } + } + close $fd_rc + } + + foreach name [array names default_config] { + if {[catch {set v $global_config($name)}]} { + set global_config($name) $default_config($name) + } + if {[catch {set v $repo_config($name)}]} { + set repo_config($name) $default_config($name) + } + } +} + ###################################################################### ## ## feature option selection From f00d504a6fcf29944311a497d0eb76f0fe5ef8f0 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Fri, 12 Oct 2007 00:42:17 -0400 Subject: [PATCH 04/16] git-gui: Refactor git-config --list parsing The parsing for the output of `git config --list` is the same for both the global options and the current repository's options so we can really just use the same parser between them. I'm currently just refactoring the parser so we can use a different one depending on the version of git available to us at runtime. My next change will add support for 1.5.3's --null option. Signed-off-by: Shawn O. Pearce --- git-gui.sh | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/git-gui.sh b/git-gui.sh index 530fee866f..cfed62da44 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -748,40 +748,33 @@ unset -nocomplain idx fd ## ## config file parsing -proc load_config {include_global} { - global repo_config global_config default_config - - array unset global_config - if {$include_global} { +git-version proc _parse_config {arr_name args} { + default { + upvar $arr_name arr + array unset arr catch { - set fd_rc [git_read config --global --list] + set fd_rc [eval [list git_read config --list] $args] while {[gets $fd_rc line] >= 0} { if {[regexp {^([^=]+)=(.*)$} $line line name value]} { if {[is_many_config $name]} { - lappend global_config($name) $value + lappend arr($name) $value } else { - set global_config($name) $value + set arr($name) $value } } } close $fd_rc } } +} - array unset repo_config - catch { - set fd_rc [git_read config --list] - while {[gets $fd_rc line] >= 0} { - if {[regexp {^([^=]+)=(.*)$} $line line name value]} { - if {[is_many_config $name]} { - lappend repo_config($name) $value - } else { - set repo_config($name) $value - } - } - } - close $fd_rc +proc load_config {include_global} { + global repo_config global_config default_config + + if {$include_global} { + _parse_config global_config --global } + _parse_config repo_config foreach name [array names default_config] { if {[catch {set v $global_config($name)}]} { From 85f7a94b3c1e4289827f2529d2e8447f3678c619 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Fri, 12 Oct 2007 00:54:15 -0400 Subject: [PATCH 05/16] git-gui: Support LFs embedded in config file values Using the new --null option added to git-config in git 1.5.3 we can safely accept LFs that are embedded in configuration options. This does require a completely different configuration file parser then the pre 1.5.3 version as we are splitting on very different values. Signed-off-by: Shawn O. Pearce --- git-gui.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/git-gui.sh b/git-gui.sh index cfed62da44..a6e2d57a2f 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -749,6 +749,26 @@ unset -nocomplain idx fd ## config file parsing git-version proc _parse_config {arr_name args} { + >= 1.5.3 { + upvar $arr_name arr + array unset arr + set buf {} + catch { + set fd_rc [eval [list git_read config --null --list] $args] + fconfigure $fd_rc -translation binary + set buf [read $fd_rc] + close $fd_rc + } + foreach line [split $buf "\0"] { + if {[regexp {^([^\n]+)\n(.*)$} $line line name value]} { + if {[is_many_config $name]} { + lappend arr($name) $value + } else { + set arr($name) $value + } + } + } + } default { upvar $arr_name arr array unset arr From 24f7c64b21bb26aab5b8525c0bac8452e7a7a4c8 Mon Sep 17 00:00:00 2001 From: Steffen Prohaska Date: Mon, 8 Oct 2007 08:25:47 +0200 Subject: [PATCH 06/16] git-gui: offer a list of recent repositories on startup If git-gui is started outside a work tree the repository chooser will offer a list of recently opened repositories. Clicking on any list entry directly opens the repository. The list of recently opened repositories is stored in the config as the multi-valued option gui.recentrepo. If the list grows beyond 10 entries it will be truncated by removing one of the older entries. Only repositories that are opened through the repository chooser will get added to the recent list. Repositories opened from the shell will not yet be added to the recent list, as users are likely to have a way to easily return to the same directory via their shell. [sp: This is actually a combined work from both Steffen and myself. Most of the ideas are Steffen's, as is the basic outline of the code, but any outstanding bugs are entirely my fault.] Signed-off-by: Steffen Prohaska Signed-off-by: Shawn O. Pearce --- git-gui.sh | 1 + lib/choose_repository.tcl | 82 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) diff --git a/git-gui.sh b/git-gui.sh index a6e2d57a2f..dd320fb075 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -205,6 +205,7 @@ proc disable_option {option} { proc is_many_config {name} { switch -glob -- $name { + gui.recentrepo - remote.*.fetch - remote.*.push {return 1} diff --git a/lib/choose_repository.tcl b/lib/choose_repository.tcl index 5d5bc81ad0..8dc8506544 100644 --- a/lib/choose_repository.tcl +++ b/lib/choose_repository.tcl @@ -9,6 +9,7 @@ field w_body ; # Widget holding the center content field w_next ; # Next button field o_cons ; # Console object (if active) field w_types ; # List of type buttons in clone +field w_recentlist ; # Listbox containing recent repositories field action new ; # What action are we going to perform? field done 0 ; # Finished picking the repository? @@ -17,6 +18,7 @@ field origin_url {} ; # Where we are cloning from field origin_name origin ; # What we shall call 'origin' field clone_type hardlink ; # Type of clone to construct field readtree_err ; # Error output from read-tree (if any) +field sorted_recent ; # recent repositories (sorted) constructor pick {} { global M1T M1B @@ -82,6 +84,40 @@ constructor pick {} { pack $w_body.new -anchor w -fill x pack $w_body.clone -anchor w -fill x pack $w_body.open -anchor w -fill x + + set sorted_recent [_get_recentrepos] + if {[llength $sorted_recent] > 0} { + label $w_body.space + label $w_body.recentlabel \ + -anchor w \ + -text [mc "Open Recent Repository:"] + set w_recentlist $w_body.recentlist + text $w_recentlist \ + -cursor $::cursor_ptr \ + -relief flat \ + -background [$w_body.recentlabel cget -background] \ + -wrap none \ + -width 50 \ + -height 10 + $w_recentlist tag conf link \ + -foreground blue \ + -underline 1 + set home "[file normalize $::env(HOME)][file separator]" + set hlen [string length $home] + foreach p $sorted_recent { + if {[string equal -length $hlen $home $p]} { + set p "~[file separator][string range $p $hlen end]" + } + regsub -all "\n" $p "\\n" p + $w_recentlist insert end $p link + $w_recentlist insert end "\n" + } + $w_recentlist conf -state disabled + $w_recentlist tag bind link <1> [cb _open_recent %x,%y] + pack $w_body.space -anchor w -fill x + pack $w_body.recentlabel -anchor w -fill x + pack $w_recentlist -anchor w -fill x + } pack $w_body -fill x -padx 10 -pady 10 frame $w.buttons @@ -134,6 +170,50 @@ method _invoke_next {} { } } +proc _get_recentrepos {} { + set recent [list] + foreach p [get_config gui.recentrepo] { + if {[_is_git [file join $p .git]]} { + lappend recent $p + } + } + return [lsort $recent] +} + +proc _unset_recentrepo {p} { + regsub -all -- {([()\[\]{}\.^$+*?\\])} $p {\\\1} p + git config --global --unset gui.recentrepo "^$p\$" +} + +proc _append_recentrepos {path} { + set path [file normalize $path] + set recent [get_config gui.recentrepo] + + if {[lindex $recent end] eq $path} { + return + } + + set i [lsearch $recent $path] + if {$i >= 0} { + _unset_recentrepo $path + set recent [lreplace $recent $i $i] + } + + lappend recent $path + git config --global --add gui.recentrepo $path + + while {[llength $recent] > 10} { + _unset_recentrepo [lindex $recent 0] + set recent [lrange $recent 1 end] + } +} + +method _open_recent {xy} { + set id [lindex [split [$w_recentlist index @$xy] .] 0] + set local_path [lindex $sorted_recent [expr {$id - 1}]] + _do_open2 $this +} + method _next {} { destroy $w_body _do_$action $this @@ -174,6 +254,7 @@ method _git_init {} { return 0 } + _append_recentrepos [pwd] set ::_gitdir .git set ::_prefix {} return 1 @@ -856,6 +937,7 @@ method _do_open2 {} { return } + _append_recentrepos [pwd] set ::_gitdir .git set ::_prefix {} set done 1 From 28e86952dd0802315d79f57f666fa2c283d0fbe8 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Fri, 12 Oct 2007 01:34:36 -0400 Subject: [PATCH 07/16] git-gui: Change repository browser radio buttons to hyperlinks Making a user click twice to select which action they want to perform when starting git-gui is just wasting their time. Clicking once on a radio button and then clicking again on the "Next >" button is quite unnecessary. Since the recent repository list is shown as a list of hyperlinks we now offer the 3 basic startup actions as hyperlinks. Clicking on a link will immediately jump to the next UI panel, saving the user time as they don't need to click an additional button. Signed-off-by: Shawn O. Pearce --- lib/choose_repository.tcl | 61 ++++++++++++++++++++++----------------- 1 file changed, 34 insertions(+), 27 deletions(-) diff --git a/lib/choose_repository.tcl b/lib/choose_repository.tcl index 8dc8506544..eb4a6d2851 100644 --- a/lib/choose_repository.tcl +++ b/lib/choose_repository.tcl @@ -7,11 +7,11 @@ field top field w field w_body ; # Widget holding the center content field w_next ; # Next button +field w_quit ; # Quit button field o_cons ; # Console object (if active) field w_types ; # List of type buttons in clone field w_recentlist ; # Listbox containing recent repositories -field action new ; # What action are we going to perform? field done 0 ; # Finished picking the repository? field local_path {} ; # Where this repository is locally field origin_url {} ; # Where we are cloning from @@ -65,25 +65,32 @@ constructor pick {} { pack [git_logo $w.git_logo] -side left -fill y -padx 10 -pady 10 set w_body $w.body + set opts $w_body.options frame $w_body - radiobutton $w_body.new \ - -anchor w \ - -text [mc "Create New Repository"] \ - -variable @action \ - -value new - radiobutton $w_body.clone \ - -anchor w \ - -text [mc "Clone Existing Repository"] \ - -variable @action \ - -value clone - radiobutton $w_body.open \ - -anchor w \ - -text [mc "Open Existing Repository"] \ - -variable @action \ - -value open - pack $w_body.new -anchor w -fill x - pack $w_body.clone -anchor w -fill x - pack $w_body.open -anchor w -fill x + text $opts \ + -cursor $::cursor_ptr \ + -relief flat \ + -background [$w_body cget -background] \ + -wrap none \ + -spacing1 5 \ + -width 50 \ + -height 3 + pack $opts -anchor w -fill x + + $opts tag conf link_new -foreground blue -underline 1 + $opts tag bind link_new <1> [cb _next new] + $opts insert end [mc "Create New Repository"] link_new + $opts insert end "\n" + + $opts tag conf link_clone -foreground blue -underline 1 + $opts tag bind link_clone <1> [cb _next clone] + $opts insert end [mc "Clone Existing Repository"] link_clone + $opts insert end "\n" + + $opts tag conf link_open -foreground blue -underline 1 + $opts tag bind link_open <1> [cb _next open] + $opts insert end [mc "Open Existing Repository"] link_open + $opts insert end "\n" set sorted_recent [_get_recentrepos] if {[llength $sorted_recent] > 0} { @@ -122,15 +129,11 @@ constructor pick {} { frame $w.buttons set w_next $w.buttons.next - button $w_next \ - -default active \ - -text [mc "Next >"] \ - -command [cb _next] - pack $w_next -side right -padx 5 - button $w.buttons.quit \ + set w_quit $w.buttons.quit + button $w_quit \ -text [mc "Quit"] \ -command exit - pack $w.buttons.quit -side right -padx 5 + pack $w_quit -side right -padx 5 pack $w.buttons -side bottom -fill x -padx 10 -pady 10 bind $top [cb _invoke_next] @@ -214,8 +217,12 @@ method _open_recent {xy} { _do_open2 $this } -method _next {} { +method _next {action} { destroy $w_body + if {![winfo exists $w_next]} { + button $w_next -default active + pack $w_next -side right -padx 5 -before $w_quit + } _do_$action $this } From 9c1b1b1e45926e6eed57f5bfbb5c3f69e063e5ab Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Fri, 12 Oct 2007 01:56:06 -0400 Subject: [PATCH 08/16] git-gui: Offer repository management features in menu bar When we show the repository chooser as the primary toplevel (".") we now offer the major choices not just on the window as hyperlinks but they also now are shown in the Repository menu, including the recent repository list. Signed-off-by: Shawn O. Pearce --- lib/choose_repository.tcl | 55 ++++++++++++++++++++++++++++++++++----- 1 file changed, 49 insertions(+), 6 deletions(-) diff --git a/lib/choose_repository.tcl b/lib/choose_repository.tcl index eb4a6d2851..46d5b77c00 100644 --- a/lib/choose_repository.tcl +++ b/lib/choose_repository.tcl @@ -30,14 +30,11 @@ constructor pick {} { menu $w.mbar -tearoff 0 $top configure -menu $w.mbar + set m_repo $w.mbar.repository $w.mbar add cascade \ -label [mc Repository] \ - -menu $w.mbar.repository - menu $w.mbar.repository - $w.mbar.repository add command \ - -label [mc Quit] \ - -command exit \ - -accelerator $M1T-Q + -menu $m_repo + menu $m_repo if {[is_MacOSX]} { $w.mbar add cascade -label [mc Apple] -menu .mbar.apple @@ -60,6 +57,7 @@ constructor pick {} { } else { wm geometry $top "+[winfo rootx .]+[winfo rooty .]" bind $top [list destroy $top] + set m_repo {} } pack [git_logo $w.git_logo] -side left -fill y -padx 10 -pady 10 @@ -81,19 +79,44 @@ constructor pick {} { $opts tag bind link_new <1> [cb _next new] $opts insert end [mc "Create New Repository"] link_new $opts insert end "\n" + if {$m_repo ne {}} { + $m_repo add command \ + -command [cb _next new] \ + -accelerator $M1T-N \ + -label [mc "New..."] + } $opts tag conf link_clone -foreground blue -underline 1 $opts tag bind link_clone <1> [cb _next clone] $opts insert end [mc "Clone Existing Repository"] link_clone $opts insert end "\n" + if {$m_repo ne {}} { + $m_repo add command \ + -command [cb _next clone] \ + -accelerator $M1T-C \ + -label [mc "Clone..."] + } $opts tag conf link_open -foreground blue -underline 1 $opts tag bind link_open <1> [cb _next open] $opts insert end [mc "Open Existing Repository"] link_open $opts insert end "\n" + if {$m_repo ne {}} { + $m_repo add command \ + -command [cb _next open] \ + -accelerator $M1T-O \ + -label [mc "Open..."] + } set sorted_recent [_get_recentrepos] if {[llength $sorted_recent] > 0} { + if {$m_repo ne {}} { + $m_repo add separator + $m_repo add command \ + -state disabled \ + -label [mc "Recent Repositories"] + } + label $w_body.space label $w_body.recentlabel \ -anchor w \ @@ -112,12 +135,19 @@ constructor pick {} { set home "[file normalize $::env(HOME)][file separator]" set hlen [string length $home] foreach p $sorted_recent { + set path $p if {[string equal -length $hlen $home $p]} { set p "~[file separator][string range $p $hlen end]" } regsub -all "\n" $p "\\n" p $w_recentlist insert end $p link $w_recentlist insert end "\n" + + if {$m_repo ne {}} { + $m_repo add command \ + -command [cb _open_recent_path $path] \ + -label " $p" + } } $w_recentlist conf -state disabled $w_recentlist tag bind link <1> [cb _open_recent %x,%y] @@ -136,6 +166,14 @@ constructor pick {} { pack $w_quit -side right -padx 5 pack $w.buttons -side bottom -fill x -padx 10 -pady 10 + if {$m_repo ne {}} { + $m_repo add separator + $m_repo add command \ + -label [mc Quit] \ + -command exit \ + -accelerator $M1T-Q + } + bind $top [cb _invoke_next] bind $top " [cb _center] @@ -217,6 +255,11 @@ method _open_recent {xy} { _do_open2 $this } +method _open_recent_path {p} { + set local_path $p + _do_open2 $this +} + method _next {action} { destroy $w_body if {![winfo exists $w_next]} { From 580b73de258635ca392d917cda4341ac5f1a2535 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Fri, 12 Oct 2007 11:15:02 -0400 Subject: [PATCH 09/16] git-gui: Fix bind errors when switching repository chooser panels We need to remove any variable traces we may have installed when the panel is destroyed as the trace may attempt to use a widget that no longer exists on this panel. Signed-off-by: Shawn O. Pearce --- lib/choose_repository.tcl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/choose_repository.tcl b/lib/choose_repository.tcl index 46d5b77c00..ab8e620c70 100644 --- a/lib/choose_repository.tcl +++ b/lib/choose_repository.tcl @@ -352,6 +352,7 @@ method _do_new {} { pack $w_body.where -fill x trace add variable @local_path write [cb _write_local_path] + bind $w_body.h [list trace remove variable @local_path write [cb _write_local_path]] update focus $w_body.where.t } @@ -477,6 +478,10 @@ method _do_clone {} { trace add variable @local_path write [cb _update_clone] trace add variable @origin_url write [cb _update_clone] + bind $w_body.h " + [list trace remove variable @local_path write [cb _update_clone]] + [list trace remove variable @origin_url write [cb _update_clone]] + " update focus $args.origin_t } @@ -948,6 +953,7 @@ method _do_open {} { pack $w_body.where -fill x trace add variable @local_path write [cb _write_local_path] + bind $w_body.h [list trace remove variable @local_path write [cb _write_local_path]] update focus $w_body.where.t } From 28d1b11a1172ef047a97a901819aac75a8cf75c9 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Fri, 12 Oct 2007 11:04:20 -0400 Subject: [PATCH 10/16] git-gui: Disable the text widget in the repository chooser Although we are using a text widget here we really do not want the end-user to be able to modify the text it displays. So we need to disable it. Signed-off-by: Shawn O. Pearce --- lib/choose_repository.tcl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/choose_repository.tcl b/lib/choose_repository.tcl index ab8e620c70..1e55aec90a 100644 --- a/lib/choose_repository.tcl +++ b/lib/choose_repository.tcl @@ -108,6 +108,8 @@ constructor pick {} { -label [mc "Open..."] } + $opts conf -state disabled + set sorted_recent [_get_recentrepos] if {[llength $sorted_recent] > 0} { if {$m_repo ne {}} { From 914c4d4dcd96218d33f5fefc9c175ea785972f06 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Fri, 12 Oct 2007 11:13:58 -0400 Subject: [PATCH 11/16] git-gui: Bind n/c/o accelerators in repository chooser On Windows we need to actually setup binds for the accelerator keys, otherwise the OS doesn't respond to them when the user presses the key combinations. Apparently we automatically get these on Mac OS X when we configure the menu commands, but not on Windows. Signed-off-by: Shawn O. Pearce --- lib/choose_repository.tcl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/choose_repository.tcl b/lib/choose_repository.tcl index 1e55aec90a..e66df85964 100644 --- a/lib/choose_repository.tcl +++ b/lib/choose_repository.tcl @@ -84,6 +84,8 @@ constructor pick {} { -command [cb _next new] \ -accelerator $M1T-N \ -label [mc "New..."] + bind $top <$M1B-n> [cb _next new] + bind $top <$M1B-N> [cb _next new] } $opts tag conf link_clone -foreground blue -underline 1 @@ -95,6 +97,8 @@ constructor pick {} { -command [cb _next clone] \ -accelerator $M1T-C \ -label [mc "Clone..."] + bind $top <$M1B-c> [cb _next clone] + bind $top <$M1B-C> [cb _next clone] } $opts tag conf link_open -foreground blue -underline 1 @@ -106,6 +110,8 @@ constructor pick {} { -command [cb _next open] \ -accelerator $M1T-O \ -label [mc "Open..."] + bind $top <$M1B-o> [cb _next open] + bind $top <$M1B-O> [cb _next open] } $opts conf -state disabled From d6db1ad51a5ac8154fcc2413f1eb6142c1a0639a Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Fri, 12 Oct 2007 12:18:02 -0400 Subject: [PATCH 12/16] git-gui: Ensure copyright message is correctly read as UTF-8 On Windows using the native Tcl/Tk the copyright header is being read from the script using the system encoding, which may not be utf-8. This causes the multi-byte copyright symbol (which is actually encoded as utf-8) to read as two characters and not as a proper copyright symbol. Explicitly asking Tcl to read this sequence of bytes as utf-8 corrects the issue. Signed-off-by: Shawn O. Pearce --- git-gui.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/git-gui.sh b/git-gui.sh index dd320fb075..9bc5626286 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -10,7 +10,7 @@ exec wish "$argv0" -- "$@" set appvers {@@GITGUI_VERSION@@} -set copyright { +set copyright [encoding convertfrom utf-8 { Copyright © 2006, 2007 Shawn Pearce, et. al. This program is free software; you can redistribute it and/or modify @@ -25,7 +25,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA} +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA}] ###################################################################### ## From 51a41ac4efd8bcbcf2aa6e738c42ae4d46d10947 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Fri, 12 Oct 2007 16:11:35 -0400 Subject: [PATCH 13/16] git-gui: Use proper Windows shortcuts instead of bat files On Windows its better to use a shortcut (.lnk file) over a batch script (.bat) as we can specify the icon file for the .lnk and thus have these git specific objects appear on the desktop with that git specific icon file. Unfortunately the authors of Tcl did not bless us with the APIs needed to create shortcuts from within Tcl. But Microsoft did give us Windows Scripting Host which allows us to execute some JavaScript that calls some sort of COM object that can operate on a .lnk file. We now build both Cygwin and non-Cygwin "desktop icons" as proper Windows .lnk files, using the "Start in" property of these files to indicate the working directory of the repository the user wants to launch. Signed-off-by: Shawn O. Pearce --- Makefile | 10 +++++---- lib/shortcut.tcl | 49 ++++++++++++++++--------------------------- lib/win32.tcl | 26 +++++++++++++++++++++++ lib/win32_shortcut.js | 34 ++++++++++++++++++++++++++++++ 4 files changed, 84 insertions(+), 35 deletions(-) create mode 100644 lib/win32.tcl create mode 100644 lib/win32_shortcut.js diff --git a/Makefile b/Makefile index 2ad8846198..ef9cd91262 100644 --- a/Makefile +++ b/Makefile @@ -19,6 +19,10 @@ GITGUI_MAIN := git-gui GITGUI_BUILT_INS = git-citool ALL_LIBFILES = $(wildcard lib/*.tcl) PRELOAD_FILES = lib/class.tcl +NONTCL_LIBFILES = \ + lib/git-gui.ico \ + $(wildcard lib/win32_*.js) \ +#end NONTCL_LIBFILES ifndef SHELL_PATH SHELL_PATH = /bin/sh @@ -255,12 +259,11 @@ ifdef GITGUI_WINDOWS_WRAPPER endif $(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(libdir_SQ)' $(INSTALL_D1) $(QUIET)$(INSTALL_R0)lib/tclIndex $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)' - $(QUIET)$(INSTALL_R0)lib/git-gui.ico $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)' ifdef GITGUI_MACOSXAPP $(QUIET)$(INSTALL_A0)'Git Gui.app' $(INSTALL_A1) '$(DESTDIR_SQ)$(libdir_SQ)' $(QUIET)$(INSTALL_X0)git-gui.tcl $(INSTALL_X1) '$(DESTDIR_SQ)$(libdir_SQ)' endif - $(QUIET)$(foreach p,$(ALL_LIBFILES), $(INSTALL_R0)$p $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)' &&) true + $(QUIET)$(foreach p,$(ALL_LIBFILES) $(NONTCL_LIBFILES), $(INSTALL_R0)$p $(INSTALL_R1) '$(DESTDIR_SQ)$(libdir_SQ)' &&) true $(QUIET)$(INSTALL_D0)'$(DESTDIR_SQ)$(msgsdir_SQ)' $(INSTALL_D1) $(QUIET)$(foreach p,$(ALL_MSGFILES), $(INSTALL_R0)$p $(INSTALL_R1) '$(DESTDIR_SQ)$(msgsdir_SQ)' &&) true @@ -273,12 +276,11 @@ ifdef GITGUI_WINDOWS_WRAPPER endif $(QUIET)$(CLEAN_DST) '$(DESTDIR_SQ)$(libdir_SQ)' $(QUIET)$(REMOVE_F0)'$(DESTDIR_SQ)$(libdir_SQ)'/tclIndex $(REMOVE_F1) - $(QUIET)$(REMOVE_F0)'$(DESTDIR_SQ)$(libdir_SQ)'/git-gui.ico $(REMOVE_F1) ifdef GITGUI_MACOSXAPP $(QUIET)$(REMOVE_F0)'$(DESTDIR_SQ)$(libdir_SQ)/Git Gui.app' $(REMOVE_F1) $(QUIET)$(REMOVE_F0)'$(DESTDIR_SQ)$(libdir_SQ)'/git-gui.tcl $(REMOVE_F1) endif - $(QUIET)$(foreach p,$(ALL_LIBFILES), $(REMOVE_F0)'$(DESTDIR_SQ)$(libdir_SQ)'/$(notdir $p) $(REMOVE_F1) &&) true + $(QUIET)$(foreach p,$(ALL_LIBFILES) $(NONTCL_LIBFILES), $(REMOVE_F0)'$(DESTDIR_SQ)$(libdir_SQ)'/$(notdir $p) $(REMOVE_F1) &&) true $(QUIET)$(CLEAN_DST) '$(DESTDIR_SQ)$(msgsdir_SQ)' $(QUIET)$(foreach p,$(ALL_MSGFILES), $(REMOVE_F0)'$(DESTDIR_SQ)$(msgsdir_SQ)'/$(notdir $p) $(REMOVE_F1) &&) true $(QUIET)$(REMOVE_D0)'$(DESTDIR_SQ)$(gitexecdir_SQ)' $(REMOVE_D1) diff --git a/lib/shortcut.tcl b/lib/shortcut.tcl index a7674a7aee..38c3151b05 100644 --- a/lib/shortcut.tcl +++ b/lib/shortcut.tcl @@ -2,28 +2,22 @@ # Copyright (C) 2006, 2007 Shawn Pearce proc do_windows_shortcut {} { - global argv0 - set fn [tk_getSaveFile \ -parent . \ -title [append "[appname] ([reponame]): " [mc "Create Desktop Icon"]] \ - -initialfile "Git [reponame].bat"] + -initialfile "Git [reponame].lnk"] if {$fn != {}} { - if {[file extension $fn] ne {.bat}} { - set fn ${fn}.bat + if {[file extension $fn] ne {.lnk}} { + set fn ${fn}.lnk } if {[catch { - set ge [file normalize [file dirname $::_git]] - set fd [open $fn w] - puts $fd "@ECHO Entering [reponame]" - puts $fd "@ECHO Starting git-gui... please wait..." - puts $fd "@SET PATH=$ge;%PATH%" - puts $fd "@SET GIT_DIR=[file normalize [gitdir]]" - puts -nonewline $fd "@\"[info nameofexecutable]\"" - puts $fd " \"[file normalize $argv0]\"" - close $fd + win32_create_lnk $fn [list \ + [info nameofexecutable] \ + [file normalize $::argv0] \ + ] \ + [file dirname [file normalize [gitdir]]] } err]} { - error_popup [strcat [mc "Cannot write script:"] "\n\n$err"] + error_popup [strcat [mc "Cannot write shortcut:"] "\n\n$err"] } } } @@ -44,13 +38,12 @@ proc do_cygwin_shortcut {} { -parent . \ -title [append "[appname] ([reponame]): " [mc "Create Desktop Icon"]] \ -initialdir $desktop \ - -initialfile "Git [reponame].bat"] + -initialfile "Git [reponame].lnk"] if {$fn != {}} { - if {[file extension $fn] ne {.bat}} { - set fn ${fn}.bat + if {[file extension $fn] ne {.lnk}} { + set fn ${fn}.lnk } if {[catch { - set fd [open $fn w] set sh [exec cygpath \ --windows \ --absolute \ @@ -59,19 +52,13 @@ proc do_cygwin_shortcut {} { --unix \ --absolute \ $argv0] - set gd [exec cygpath \ - --unix \ - --absolute \ - [gitdir]] - puts $fd "@ECHO Entering [reponame]" - puts $fd "@ECHO Starting git-gui... please wait..." - puts -nonewline $fd "@\"$sh\" --login -c \"" - puts -nonewline $fd "GIT_DIR=[sq $gd]" - puts -nonewline $fd " [sq $me]" - puts $fd " &\"" - close $fd + win32_create_lnk $fn [list \ + $sh -c \ + "CHERE_INVOKING=1 source /etc/profile;[sq $me]" \ + ] \ + [file dirname [file normalize [gitdir]]] } err]} { - error_popup [strcat [mc "Cannot write script:"] "\n\n$err"] + error_popup [strcat [mc "Cannot write shortcut:"] "\n\n$err"] } } } diff --git a/lib/win32.tcl b/lib/win32.tcl new file mode 100644 index 0000000000..d7f93d045d --- /dev/null +++ b/lib/win32.tcl @@ -0,0 +1,26 @@ +# git-gui Misc. native Windows 32 support +# Copyright (C) 2007 Shawn Pearce + +proc win32_read_lnk {lnk_path} { + return [exec cscript.exe \ + /E:jscript \ + /nologo \ + [file join $::oguilib win32_shortcut.js] \ + $lnk_path] +} + +proc win32_create_lnk {lnk_path lnk_exec lnk_dir} { + global oguilib + + set lnk_args [lrange $lnk_exec 1 end] + set lnk_exec [lindex $lnk_exec 0] + + eval [list exec wscript.exe \ + /E:jscript \ + /nologo \ + [file join $oguilib win32_shortcut.js] \ + $lnk_path \ + [file join $oguilib git-gui.ico] \ + $lnk_dir \ + $lnk_exec] $lnk_args +} diff --git a/lib/win32_shortcut.js b/lib/win32_shortcut.js new file mode 100644 index 0000000000..117923f886 --- /dev/null +++ b/lib/win32_shortcut.js @@ -0,0 +1,34 @@ +// git-gui Windows shortcut support +// Copyright (C) 2007 Shawn Pearce + +var WshShell = WScript.CreateObject("WScript.Shell"); +var argv = WScript.Arguments; +var argi = 0; +var lnk_path = argv.item(argi++); +var ico_path = argi < argv.length ? argv.item(argi++) : undefined; +var dir_path = argi < argv.length ? argv.item(argi++) : undefined; +var lnk_exec = argi < argv.length ? argv.item(argi++) : undefined; +var lnk_args = ''; +while (argi < argv.length) { + var s = argv.item(argi++); + if (lnk_args != '') + lnk_args += ' '; + if (s.indexOf(' ') >= 0) { + lnk_args += '"'; + lnk_args += s; + lnk_args += '"'; + } else { + lnk_args += s; + } +} + +var lnk = WshShell.CreateShortcut(lnk_path); +if (argv.length == 1) { + WScript.echo(lnk.TargetPath); +} else { + lnk.TargetPath = lnk_exec; + lnk.Arguments = lnk_args; + lnk.IconLocation = ico_path + ", 0"; + lnk.WorkingDirectory = dir_path; + lnk.Save(); +} From ba6c761e6287f9987d70ed4d2a609a7ed415a6a5 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Fri, 12 Oct 2007 16:24:20 -0400 Subject: [PATCH 14/16] git-gui: Support cloning Cygwin based work-dirs If the user tries to clone a Git repository that is actually a workdir of another repository (by way of contrib git-new-workdir) then the contents of .git is a series of Windows .lnk files which Tcl can't read if this is a native Tcl process. To read the real objects directory we need to resolve the link to that location. Signed-off-by: Shawn O. Pearce --- lib/choose_repository.tcl | 44 ++++++++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/lib/choose_repository.tcl b/lib/choose_repository.tcl index e66df85964..bf04361464 100644 --- a/lib/choose_repository.tcl +++ b/lib/choose_repository.tcl @@ -324,9 +324,42 @@ proc _is_git {path} { && [file exists [file join $path config]]} { return 1 } + if {[is_Cygwin]} { + if {[file exists [file join $path HEAD]] + && [file exists [file join $path objects.lnk]] + && [file exists [file join $path config.lnk]]} { + return 1 + } + } return 0 } +proc _objdir {path} { + set objdir [file join $path .git objects] + if {[file isdirectory $objdir]} { + return $objdir + } + + set objdir [file join $path objects] + if {[file isdirectory $objdir]} { + return $objdir + } + + if {[is_Cygwin]} { + set objdir [file join $path .git objects.lnk] + if {[file isfile $objdir]} { + return [win32_read_lnk $objdir] + } + + set objdir [file join $path objects.lnk] + if {[file isfile $objdir]} { + return [win32_read_lnk $objdir] + } + } + + return {} +} + ###################################################################### ## ## Create New Repository @@ -555,13 +588,10 @@ method _do_clone2 {} { } if {$clone_type eq {hardlink} || $clone_type eq {shared}} { - set objdir [file join $origin_url .git objects] - if {![file isdirectory $objdir]} { - set objdir [file join $origin_url objects] - if {![file isdirectory $objdir]} { - error_popup [mc "Not a Git repository: %s" [file tail $origin_url]] - return - } + set objdir [_objdir $origin_url] + if {$objdir eq {}} { + error_popup [mc "Not a Git repository: %s" [file tail $origin_url]] + return } } From 82dd4e0465282e39962ba8fdb01c42aa665b1999 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Fri, 12 Oct 2007 16:33:45 -0400 Subject: [PATCH 15/16] git-gui: Collapse $env(HOME) to ~/ in recent repositories on Windows Apparently native Tcl/Tk on Windows is using \ as the return value from [file separator] but [file normalize] on that same system is using / rather than \ to represent a directory separator. I really think that is nuts, but its what is happening. So we can actually just hardcode our separator to / as all systems we support (Windows, Mac OS X, UNIX) use /. Signed-off-by: Shawn O. Pearce --- lib/choose_repository.tcl | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/choose_repository.tcl b/lib/choose_repository.tcl index bf04361464..2bac50e149 100644 --- a/lib/choose_repository.tcl +++ b/lib/choose_repository.tcl @@ -140,12 +140,16 @@ constructor pick {} { $w_recentlist tag conf link \ -foreground blue \ -underline 1 - set home "[file normalize $::env(HOME)][file separator]" + set home $::env(HOME) + if {[is_Cygwin]} { + set home [exec cygpath --windows --absolute $home] + } + set home "[file normalize $home]/" set hlen [string length $home] foreach p $sorted_recent { set path $p if {[string equal -length $hlen $home $p]} { - set p "~[file separator][string range $p $hlen end]" + set p "~/[string range $p $hlen end]" } regsub -all "\n" $p "\\n" p $w_recentlist insert end $p link From 86215812487930c69e197ef03be31e0b396a04cc Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Sat, 13 Oct 2007 15:41:31 -0400 Subject: [PATCH 16/16] git-gui: Honor a config.mak in git-gui's top level I keep forgetting to include TCLTK_PATH when I build git-gui on some systems. Placing that rule (among others) into a config.mak makes it easier to compile the application the same way every time. Signed-off-by: Shawn O. Pearce --- .gitignore | 1 + Makefile | 2 ++ 2 files changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index a7cfd6d5a0..6483b21cbf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .DS_Store +config.mak Git Gui.app* git-gui.tcl GIT-VERSION-FILE diff --git a/Makefile b/Makefile index ef9cd91262..e860319278 100644 --- a/Makefile +++ b/Makefile @@ -99,6 +99,8 @@ ifeq ($(findstring $(MAKEFLAGS),s),s) QUIET_GEN = endif +-include config.mak + DESTDIR_SQ = $(subst ','\'',$(DESTDIR)) gitexecdir_SQ = $(subst ','\'',$(gitexecdir)) SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))