* [BUG] git-filter-branch and filename case changes on insensitive file systems
From: Jonathan del Strother @ 2007-10-10 9:40 UTC (permalink / raw)
To: Git Mailing List
My repo has a change where a directory named Src was renamed to src.
When I run "git filter-branch HEAD", my repo history is rewritten so
it appears that the Src directory was simply deleted. I'm using case
insensitive HFS+.
Fortunately, I can work around this by using -d to work off a case
sensitive HFS+ volume - "git filter-branch -d /Volumes/CaseSensitive/
test HEAD" correctly changes nothing.
Anyone know why this happens?
Jon
^ permalink raw reply
* Re: [PATCH] git-init: don't base core.filemode on the ability to chmod.
From: Jan Hudec @ 2007-10-10 9:47 UTC (permalink / raw)
To: Martin Waitz; +Cc: Junio C Hamano, Andreas Ericsson, Johannes Schindelin, git
In-Reply-To: <20071004084237.GE20800@admingilde.org>
[-- Attachment #1: Type: text/plain, Size: 1241 bytes --]
On Thu, Oct 04, 2007 at 10:42:37 +0200, Martin Waitz wrote:
> hoi :)
>
> On Thu, Oct 04, 2007 at 01:21:02AM -0700, Junio C Hamano wrote:
> > FWIW, I did not mean it to be an example for preferred
> > indentation nor code layout, but as a better way to explain what
> > the logic is computing.
>
> sure, and I think it makes sense the way you wrote it.
>
> > I do not think git on Cygwin nor WinGit creates $GIT_DIR/config
> > with executable bit set. Is this pretty much a workaround only
> > for vfat-on-Linux ?
>
> I just checked Cygwin, it creates files without executable bit and
> disregards a chmod +x. So yes, this seems to be a Linux-only problem.
AFAIR in cygwin it depends on both configuration of cygwin and whether you
are on NTFS or FAT. On NTFS with proper setting (CYGWIN=ntsec IIRC), cygwin
actually implements the x bit (uses the NT ACL to somewhat represent it). On
other filesystem there is an option somewhere to tell whether it should show
the x bit always set or always cleared (for me it seems to be always set).
On the other hand MSYS shows the x bit as set whenever the file has
executable extension. I don't think cygwin has this mode.
--
Jan 'Bulb' Hudec <bulb@ucw.cz>
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* Re: inexplicable failure to merge recursively across cherry-picks
From: martin f krafft @ 2007-10-10 10:25 UTC (permalink / raw)
To: git discussion list; +Cc: Linus Torvalds
In-Reply-To: <alpine.LFD.0.999.0710091926560.3838@woody.linux-foundation.org>
[-- Attachment #1: Type: text/plain, Size: 944 bytes --]
also sprach Linus Torvalds <torvalds@linux-foundation.org> [2007.10.10.0354 +0100]:
> Cherry-picking is immaterial. It doesn't matter how the changes
> come into the tree. It doesn't matter what the history is. The
> only thing git cares about is the content, and the end result.
This is the part I over-estimated. I thought that Git would figure
out that commits 1-3 had been merged into the target and thus apply,
in sequence, only the commits from the source which had not been
merged.
Many thanks (again), Linus! Looking forward to your next content
manager; you know, the one with artificial intelligence built in!
You could call it "wit" :)
--
martin; (greetings from the heart of the sun.)
\____ echo mailto: !#^."<*>"|tr "<*> mailto:" net@madduck
dies ist eine manuell generierte email. sie beinhaltet
tippfehler und ist auch ohne großbuchstaben gültig.
spamtraps: madduck.bogus@madduck.net
[-- Attachment #2: Digital signature (see http://martin-krafft.net/gpg/) --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* Re: inexplicable failure to merge recursively across cherry-picks
From: David Kastrup @ 2007-10-10 10:33 UTC (permalink / raw)
To: martin f krafft; +Cc: git discussion list, Linus Torvalds
In-Reply-To: <20071010102528.GB20390@lapse.madduck.net>
martin f krafft <madduck@madduck.net> writes:
> also sprach Linus Torvalds <torvalds@linux-foundation.org> [2007.10.10.0354 +0100]:
>> Cherry-picking is immaterial. It doesn't matter how the changes
>> come into the tree. It doesn't matter what the history is. The
>> only thing git cares about is the content, and the end result.
>
> This is the part I over-estimated. I thought that Git would figure
> out that commits 1-3 had been merged into the target and thus apply,
> in sequence, only the commits from the source which had not been
> merged.
>
> Many thanks (again), Linus! Looking forward to your next content
> manager; you know, the one with artificial intelligence built in!
> You could call it "wit" :)
Well, there is also an obvious name choice when the distinguishing
innovation is a well-rounded feature set, but it would cause a name
collision for the equivalent of "tig".
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
^ permalink raw reply
* [PATCH] git-cvsserver: added support for update -p
From: Jan Wielemaker @ 2007-10-10 11:16 UTC (permalink / raw)
To: Git Mailing List
[PATCH] git-cvsserver: added support for update -p
---
Hi,
Someone in our team uses "cvs update -p [-r rev] file" (somehow invoked
through TortoiseCVS). The patch below provides that. I think it is fine,
except that I don't know with wich other flags -p can be combined and
therefore when exactly this should be tested. Figured out that normal
CVS sends the file line-by-line preceeded by "M " using strace on the
client to a real CVS server.
Enjoy --- Jan
git-cvsserver.perl | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/git-cvsserver.perl b/git-cvsserver.perl
index 13dbd27..987f4d6 100755
--- a/git-cvsserver.perl
+++ b/git-cvsserver.perl
@@ -956,6 +956,21 @@ sub req_update
$meta = $updater->getmeta($filename);
}
+ # if we have a -p we should just send the file
+ if ( exists ( $state->{opt}{p} ) )
+ {
+ if ( open my $fh, '-|', "git-cat-file", "blob", $meta->{filehash} )
+ { while ( <$fh> )
+ { print "M " . $_;
+ }
+ close $fh or die ("Couldn't close filehandle for transmitfile(): $!");
+ } else
+ { die("Couldn't execute git-cat-file");
+ }
+
+ next;
+ }
+
if ( ! defined $meta )
{
$meta = {
--
1.5.3.4
^ permalink raw reply related
* Re: Problem with git-cvsimport
From: Eyvind Bernhardsen @ 2007-10-10 13:05 UTC (permalink / raw)
To: Michael Haggerty
Cc: Thomas Pasch, git, Jan Wielemaker, Gerald (Jerry) Carter, dev
In-Reply-To: <470C3A3A.2070809@alum.mit.edu>
On 10. okt.. 2007, at 04.34, Michael Haggerty wrote:
[...]
Thanks for the response! I should have explained that my goal is to
convince my coworkers that git is worth the effort to learn, and IMO,
making imported git repositories look as "clean" as possible to
someone familiar with the CVS repository is an important part of
that. My suggestions and complaints should be seen in that light :)
>> * Tags each get a branch with a single commit, with the actual tag
>> pointing to that commit. This makes it harder than necessary to
>> figure
>> out what the history looks like; gitk's default view won't show any
>> tags, for example, since it only shows the master branch and not the
>> single-commit tag branches.
>
> I just fixed this in cvs2svn trunk r4213. Now it reuses a single
> branch
> called 'refs/heads/TAG.FIXUP' whenever it needs to make a tag fixup
> branch, and it resets that branch when done. (Resetting the tag fixup
> branch changes it to 0000000000000000000000000000000000000000 but
> doesn't really delete it; I don't know the ramifications of that but
> at
> least it doesn't appear in gitk output any more.)
Great! I'll try this out at the first opportunity.
The main problem I have with the current branched-tag behaviour is
that nothing exists on the branch to show that a tag is branched off,
so no tags are shown at all when running gitk on a single branch. A
git newbie who is familiar with the CVS repository will probably just
assume that tags haven't been imported, which is unfortunate.
Tagging the branch point is an obvious solution to that problem, but I
wonder if branching for tag fixups could be made optional. Instead of
representing a tag with differences to the commit it's closest to like
this:
o--*--o--...
\--t
(where "*" represents the closest commit on the branch, and "t"
represents the fixup commit), might the following be possible and/or
desirable?
o--*--t--r--o--...
"r" being a commit that reverts the changes in "t".
It might just be me, but I think of a tag as being "on" a branch even
when it has been messed with (sliding, omitting files, etc), and a
linear history preserves that illusion.
>> * Branches all get a useless commit at their branch point. All
>> branches
>> from the main branch appear to be merged from the vendor branch
>> (ie, the
>> useless commit has the vendor branch as an extra parent), which might
>> make sense to someone who knows what the vendor branch is for, but
>> makes
>> no sense to me. This combined with the previous point makes "gitk
>> --all" look needlessly spaghetti-like if you have a slightly
>> complicated
>> CVS history.
>
> I assume that the "useless commit" that you are referring to is the
> one
> with log message "This commit was manufactured by cvs2svn to create
> branch 'BRANCH'." Is that correct?
Yes. And I'm regretting my choice of words already. "Unexpected
commit" would have been better.
> I'm not a git expert, so I don't know whether these commits are in
> fact
> useless. But let me explain the reason I put them in and you can tell
> me whether it is nonsense.
[...]
I know barely enough about git (or CVS, for that matter) to be
dangerous, but your explanation makes sense to me.
> I imagine that *if* a branch is created with a single parent branch,
> and
> *if* each and every file from the parent branch is added to the new
> branch, then it is possible that the "useless commit" could be
> omitted.
> But this decision would require information that cvs2svn doesn't
> currently have at that stage of the conversion, and keeping the
> necessary records would be quite expensive.
Right; that is how I think of a branch, even if CVS doesn't. To me,
the extra commit is useless because it should be identical to the
branch point commit on the parent branch. I don't think having an
extra commit there is a huge problem, though.
[...]
> Regarding the superfluous vendorbranch parent: vendor branches are an
> obscure CVS feature for tracking upstream sources. The file
> contents on
> the vendorbranch are typically exactly the same as that on trunk,
> and if
> a branch is created while the vendorbranch is active, CVS doesn't
> record
> whether the branch's parent was trunk or the vendorbranch. Haven't
> yet
> built the heuristics into cvs2svn to make this decision more
> intelligently, so sometimes "vendorbranch" is listed as a branch
> parent
> when it could be omitted.
I don't think I've ever seen the vendor branch used for anything but
the initial import (creation) of a repository, and then only because
it is a required parameter to "cvs import". Is there any chance you
could add an option to ignore the vendor branch?
> Thanks for the feedback!
Thanks for making cvs2svn the best CVS-to-git conversion tool :) Now
if it would only support incremental importing...
Eyvind Bernhardsen
^ permalink raw reply
* Re: [PATCH] Support cvs via git-shell
From: Johannes Schindelin @ 2007-10-10 13:29 UTC (permalink / raw)
To: Frank Lichtenheld; +Cc: gitster, hjemli, Jan Wielemaker, Git Mailing List
In-Reply-To: <20071009223538.GG31659@planck.djpig.de>
Hi,
On Wed, 10 Oct 2007, Frank Lichtenheld wrote:
> On Tue, Oct 09, 2007 at 03:33:25PM +0100, Johannes Schindelin wrote:
> > static struct commands {
> > const char *name;
> > int (*exec)(const char *me, char *arg);
> > } cmd_list[] = {
> > { "git-receive-pack", do_generic_cmd },
> > { "git-upload-pack", do_generic_cmd },
> > + { "cvs", do_cvs_cmd },
> > { NULL },
>
> Maybe this should also allow git-cvsserver for completeness' sake?
Umm. Why?
If you use a cvs client with :ext: protocol, it will call ssh (or rsh!)
with the command "cvs server", not "git-cvsserver".
Only in setups where you set (IIRC) the environment variable "CVSSERVER"
on the client to "git-cvsserver" will it call something different, but
these setups exist already, and never used git-shell to begin with.
Ciao,
Dscho
^ permalink raw reply
* [PATCH] git-gui: update Italian translation
From: Michele Ballabio @ 2007-10-10 13:33 UTC (permalink / raw)
To: Paolo Ciarrocchi; +Cc: Shawn O. Pearce, Johannes Schindelin, git
An Italian glossary was also added. Some changes:
* commit (verb): archiviare
* 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 <barra_cuda@katamail.com>
---
I believe this is an overall improvement over the existing translation,
but I'd like some comments too :)
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 0000000..2a57543
--- /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 <stimming@tuhh.de>, 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 <barra_cuda@katamail.com>\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 ""
+"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 d959019..e29838e 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 <paolo.ciarrocchi@gmail.com>\n"
"Language-Team: Italian <tp@lists.linux.it>\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 l'archiviazione"
#: git-gui.sh:1528 git-gui.sh:1533
msgid "Staged for commit"
-msgstr "Pronto per il commit"
+msgstr "Preparato per l'archiviazione"
#: git-gui.sh:1529 git-gui.sh:1534
msgid "Portions staged for commit"
-msgstr "Parti pronte per il commit"
+msgstr "Parti preparate per l'archiviazione"
#: git-gui.sh:1530 git-gui.sh:1535
msgid "Staged for commit, missing"
-msgstr "Pronto per il commit, mancante"
+msgstr "Preparato per l'archiviazione, mancante"
#: git-gui.sh:1532
msgid "Untracked, not staged"
-msgstr "Non tracciato, non pronto per il commit"
+msgstr "Non tracciato, non preparato per l'archiviazione"
#: 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 l'archiviazione"
#: git-gui.sh:1958
msgid "Stage Changed Files To Commit"
-msgstr "Prepara per il commit i file modificati"
+msgstr "Prepara per l'archiviazione i file modificati"
#: 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 "Archivia"
#: 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 archiviate)"
#: 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 l'archiviazione"
#: git-gui.sh:2567
msgid "Stage Hunk For Commit"
-msgstr "Prepara sezione per il commit"
+msgstr "Prepara sezione per l'archiviazione"
#: 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 "Archiviato 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 l'archivio (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 archiviare 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 archiviare 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"
+"l'archiviazione 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"
+"Non si può archiviare il file %s con questo programma.\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 da archiviare.\n"
"\n"
-"Devi preparare per il commit almeno 1 file prima di effettuare questa "
+"Devi preparare per l'archiviazione 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 da archiviare.\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 da archiviare."
#: 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 l'archiviazione."
#: lib/diff.tcl:309
msgid "Failed to stage selected hunk."
-msgstr "La sezione scelta non è ancora pronta per il commit."
+msgstr "Impossibile preparare per l'archiviazione la sezione scelta."
#: 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 archiviare."
#: lib/index.tcl:241
-#, fuzzy, tcl-format
+#, tcl-format
msgid "Unstaging %s from commit"
-msgstr "Non pronto per il commit"
+msgstr "%s non sarà archiviato con la 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 l'archiviazione 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 l'archiviazione ed "
+"infine archiviarlo 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 l'archiviazione 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..."
--
1.5.3.4
^ permalink raw reply related
* Re: [BUG] git-filter-branch and filename case changes on insensitive file systems
From: Johannes Schindelin @ 2007-10-10 13:39 UTC (permalink / raw)
To: Jonathan del Strother; +Cc: Git Mailing List
In-Reply-To: <80A15F58-5A53-419B-9E22-E967CD590A12@steelskies.com>
Hi,
On Wed, 10 Oct 2007, Jonathan del Strother wrote:
> My repo has a change where a directory named Src was renamed to src.
That is no problem for git-filter-branch.
> I'm using case insensitive HFS+.
That is the problem.
Of course, we could work around that in git, but frankly, you will turn
into problems once you have files whose names differ only in case. And I
am certain somebody will come soon and report this as a bug in git!
I vote for wont-fix (or more accurately "invalid") in git and
please-fix-in-your-setup.
Ciao,
Dscho
^ permalink raw reply
* Re: [PATCH] git-gui: update Italian translation
From: Paolo Ciarrocchi @ 2007-10-10 13:41 UTC (permalink / raw)
To: Michele Ballabio; +Cc: Shawn O. Pearce, Johannes Schindelin, git
In-Reply-To: <200710101533.17290.barra_cuda@katamail.com>
On 10/10/07, Michele Ballabio <barra_cuda@katamail.com> wrote:
[...]
> -msgstr "Caratteri non validi specificati nella gui.%s:"
> +msgstr "Caratteri non validi specificati in %s:"
OK
> #: 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"
OK
> "\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:"
Really OK :-)
> #: 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 l'archiviazione"
I vote for leaving the word commit.
I would be confused by the word "archiviazione".
> #: git-gui.sh:1528 git-gui.sh:1533
> msgid "Staged for commit"
> -msgstr "Pronto per il commit"
> +msgstr "Preparato per l'archiviazione"
Ditto.
> #: git-gui.sh:1529 git-gui.sh:1534
> msgid "Portions staged for commit"
> -msgstr "Parti pronte per il commit"
> +msgstr "Parti preparate per l'archiviazione"
Ditto.
> #: git-gui.sh:1530 git-gui.sh:1535
> msgid "Staged for commit, missing"
> -msgstr "Pronto per il commit, mancante"
> +msgstr "Preparato per l'archiviazione, mancante"
Ditto (and so on...)
As a general comment... very nice work!
Ciao,
--
Paolo
http://paolo.ciarrocchi.googlepages.com/
http://ubuntista.blogspot.com
^ permalink raw reply
* Re: [PATCH] git-cvsserver: added support for update -p
From: Johannes Schindelin @ 2007-10-10 13:47 UTC (permalink / raw)
To: Jan Wielemaker; +Cc: Git Mailing List
In-Reply-To: <200710101316.03633.jan@swi-prolog.org>
Hi,
On Wed, 10 Oct 2007, Jan Wielemaker wrote:
> [PATCH] git-cvsserver: added support for update -p
> ---
Proposed alternative for the commit message:
-- snip --
The cvs subcommand "update -p <file>" is frequently used to see the
contents of a given file in HEAD, sort of our "git show <file>". It
is not that hard to support it, so here it is.
Commit-message-proposed-by: Johannes Schindelin <johannes.schindelin.de>
Signed-off-by: Jan Wielemaker <jan@swi-prolog.org>
-- snap --
Remember: having such a commit message already at the beginning of your
mail body makes it easier to everyone reading your email, for a small
cost (time) of just one person (you).
Ciao,
Dscho
P.S.: Have not reviewed the patch at all, so cannot say anything about the
merits of it; will leave it to djpig ;-)
^ permalink raw reply
* Re: [BUG] git-filter-branch and filename case changes on insensitive file systems
From: Jonathan del Strother @ 2007-10-10 13:49 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: Git Mailing List
In-Reply-To: <Pine.LNX.4.64.0710101436570.4174@racer.site>
On 10 Oct 2007, at 14:39, Johannes Schindelin wrote:
> On Wed, 10 Oct 2007, Jonathan del Strother wrote:
>
>> My repo has a change where a directory named Src was renamed to src.
>
> That is no problem for git-filter-branch.
>
>> I'm using case insensitive HFS+.
>
> That is the problem.
...
> I vote for wont-fix (or more accurately "invalid") in git and
> please-fix-in-your-setup.
Would love to switch to case sensitive HFS+, but it causes a number of
problems for OS X users - a number of 3rd party applications don't
bother supporting case sensitive formatting (notably Adobe :/ ).
I appreciate that it's difficult and/or impossible to make certain
operations work on case insensitive FS's, but it seems like git ought
to at least complain noisily when it encounters such a situation...
^ permalink raw reply
* Re: [PATCH] git-gui: update Italian translation
From: Michele Ballabio @ 2007-10-10 14:07 UTC (permalink / raw)
To: git; +Cc: Paolo Ciarrocchi, Shawn O. Pearce, Johannes Schindelin
In-Reply-To: <4d8e3fd30710100641p6fc6f610g435d2fe66462c05b@mail.gmail.com>
On Wednesday 10 October 2007, Paolo Ciarrocchi wrote:
> > #: git-gui.sh:1527
> > msgid "Modified, not staged"
> > -msgstr "Modificato, non pronto per il commit"
> > +msgstr "Modificato, non preparato per l'archiviazione"
>
> I vote for leaving the word commit.
> I would be confused by the word "archiviazione".
Well, yes, most people currently using git will be as well.
But that's because they're used to it. The thread that talked
about the German translation decided to look for a fitting
German word, so I decided to follow them. If you're vetoing
these changes, I'll redo them. Otherwise, if you don't have
a strong adverse opinion, I think this translation is quite
clear, and would leave less people asking
"What's a commit?". Don't you think?
^ permalink raw reply
* Re: [PATCH] git-gui: update Italian translation
From: Paolo Ciarrocchi @ 2007-10-10 14:22 UTC (permalink / raw)
To: Michele Ballabio; +Cc: git, Shawn O. Pearce, Johannes Schindelin
In-Reply-To: <200710101607.55452.barra_cuda@katamail.com>
On 10/10/07, Michele Ballabio <barra_cuda@katamail.com> wrote:
> On Wednesday 10 October 2007, Paolo Ciarrocchi wrote:
> > > #: git-gui.sh:1527
> > > msgid "Modified, not staged"
> > > -msgstr "Modificato, non pronto per il commit"
> > > +msgstr "Modificato, non preparato per l'archiviazione"
> >
> > I vote for leaving the word commit.
> > I would be confused by the word "archiviazione".
>
> Well, yes, most people currently using git will be as well.
> But that's because they're used to it. The thread that talked
> about the German translation decided to look for a fitting
> German word, so I decided to follow them. If you're vetoing
> these changes, I'll redo them. Otherwise, if you don't have
> a strong adverse opinion, I think this translation is quite
> clear, and would leave less people asking
> "What's a commit?". Don't you think?
I understand that we should aim for a complete Italian translation but
"archiviazione" to me sounds like "backup" or "archive". It doesn't
sound like a proper translation.
I discussed this topic on the Linux Translation Project mailing list
and the majority of the people seems to agree on leaving the word
untraslated but I really cannot say that I reached a _real_ agreement.
In short, I'm still think we should leave the word untranslated.
How about posting the new file to ltp and move there the discussion?
Ciao,
--
Paolo
http://paolo.ciarrocchi.googlepages.com/
http://ubuntista.blogspot.com
^ permalink raw reply
* git-rev-parse --verify could be friendlier
From: linux @ 2007-10-10 14:24 UTC (permalink / raw)
To: git; +Cc: linux
I accidentally typed "git rebase --onto typo ancestor", where "typo"
was a branch that didn't exist.
The error message (which is actually generated by git-rev-parse --verify)
is "fatal: Needed a single revision".
This is perhaps a bit obscure. For starters, it doesn't even tell me
which argument is problematic.
If I do "git rebase --onto dest typo", I at least get
fatal: Needed a single revision
invalid upstream typo
Something like the following would certainly help, but perhaps git-rev-parse
could be slightly more forthcoming, too?
diff --git a/git-rebase b/git-rebase
index 058fcac..b14ac95 100755
--- a/git-rebase
+++ b/git-rebase
@@ -268,7 +268,8 @@ upstream=`git rev-parse --verify "${upstream_name}^0"` ||
# Make sure the branch to rebase onto is valid.
onto_name=${newbase-"$upstream_name"}
-onto=$(git rev-parse --verify "${onto_name}^0") || exit
+onto=$(git rev-parse --verify "${onto_name}^0") ||
+ die "invalid target $upstream_name"
# If a hook exists, give it a chance to interrupt
if test -x "$GIT_DIR/hooks/pre-rebase"
@@ -294,7 +295,8 @@ case "$#" in
fi
;;
esac
-branch=$(git rev-parse --verify "${branch_name}^0") || exit
+branch=$(git rev-parse --verify "${branch_name}^0") ||
+ die "invalid branch name $upstream_name"
# Now we are rebasing commits $upstream..$branch on top of $onto
^ permalink raw reply related
* Suggestions for improvements to post-receive hook
From: Bill Lear @ 2007-10-10 14:32 UTC (permalink / raw)
To: git; +Cc: Andy Parkins
We have made a few changes to the post-receive hook for operation in
our company. I wanted to pass them on in case they are suitable for
more general use. Below I mix description of the change, a
justification of the change, along with a snippet of code and/or code
comments illustrating the change. I'm sure there are more
sophisticated ways to do what we've done, but it seems to work for us.
1. Support per-branch mailing lists. This allows me to collaborate
with several different people on different mini-projects from the
same "hub" repository without each of them getting mail they don't
care about.
Code:
# hooks.{branch}mailinglist
# This is the list that all pushes to a given branch will go to;
# leave it blank to not send emails for every ref update to this branch.
[...]
if [ -z "$recipients" ]; then
# Essentially an associative array,
# hooks.${short_refname}mailinglist: allows a separate mailing
# list for each branch/tag thingie.
recipients=$(git-repo-config hooks.${short_refname}mailinglist)
fi
# One last try ...
if [ -z "$recipients" ]; then
recipients=$(git repo-config hooks.mailinglist)
fi
# Check if we've got anyone to send to
if [ -z "$recipients" ]; then
echo >&2 "*** hooks.recipients is not set so no email will be sent"
echo >&2 "*** for $refname update $oldrev->$newrev"
exit 0
fi
2. Allow specification of a prefix for the subject line. This allows
us to better filter our email --- we use a mailing list for some
projects and the mailing list prefixes the subject with its own
string, for example.
Code:
# hooks.prefix
# Set the email subject prefix to "[$hooks.prefix]". Defaults to empty string.
[...]
# Notes
# -----
# All emails have their subjects prefixed with "[$hooks.prefix]"
# to aid filtering, if hooks.prefix is set. If it is not set, no
# prefix is used.
[...]
prefix=$(git-repo-config hooks.prefix)
if [ -n "$prefix" ]; then
EMAILPREFIX="[${prefix}] "
else
EMAILPREFIX=""
fi
[... elsewhere in the code]
generate_email_header()
{
# --- Email (all stdout will be the email)
# Generate header
cat <<-EOF
From: $committer
To: $recipients
Subject: ${EMAILPREFIX}$projectdesc $refname_type "$short_refname" ${change_type}d. $describe
X-Git-Refname: $refname
X-Git-Reftype: $refname_type
[...]
3. Provide change content in email. The current hook does not produce
enough information for us --- we like to see the content of the change
so we can code-review on-the-fly. I hacked the code, in my ignorance,
to use git-whatchanged, as it seemed to provide what we wanted. I
am not currently controlling this behavior with a config flag, though
presumably it could be, easily.
Code (simple diff):
408,411c399,400
< echo "Diffstat:"
< git-diff-tree --no-color --stat -M -C --find-copies-harder $newrev ^$oldrev
< echo ""
< git-whatchanged --no-color -p --find-copies-harder $oldrev..$newrev
---
> echo "Summary of changes:"
> git diff-tree --stat --summary --find-copies-harder $oldrev..$newrev
4 and 5.
4: Log the content of the emails, if desired, to a log file.
Our email archiving system here is between lame and nonexistent,
so we like to be able to look back at the logs if a problem should
occur.
5: Allow sending only a certain number of lines maximum to email
recipients. Some diffs are huge, so we don't want to overwhelm
recipients' inboxes.
Note: currently, specifying the maximum number of email lines
only works when you specify logging, though this is not necessary.
Also: this might only be useful if you have a flag that controls
the use of git-whatchanged (or whatever) to produce a fuller diff
set in the email.
Code:
# hooks.maxemaillines
# Clip the email sent out to this number of lines. If unset,
# defaults to 500 lines.
[...]
# hooks.logfile
# If set then the entire email content sent will be logged to this file.
# If unset, no logging is done.
[...]
maxemaillines=$(git-repo-config --int hooks.maxemaillines)
logfile=$(git-repo-config hooks.logfile)
[...]
# If a log file was specified, tee to the logfile, head, and then
# sendmail, else just send the mail directly.
if [ -n "$logfile" ]; then
while read oldrev newrev refname
do
generate_email $oldrev $newrev $refname |
/usr/bin/tee -a ${logfile} 2>/dev/null |
/usr/bin/head -${maxemaillines} |
/usr/sbin/sendmail -t $envelopesender
done
else
while read oldrev newrev refname
do
generate_email $oldrev $newrev $refname |
/usr/sbin/sendmail -t $envelopesender
done
fi
6. Support an author filter. I don't have this running currently,
but I believe this feature was in the update script. Basically
(and here follows most likely confusion on my part) it allows you
to filter your changes out of a change set so that when you
push a change set that includes your changes to a hub, it only
sends them once (here, I'm most certainly not expressing this
correctly).
Anyway, someone on the list suggested this, and it was in
the update hook, like this:
authorfilter=$(git-repo-config hooks.authorfilter)
case "$refname_type" in
"tracking branch"|branch)
if expr "$oldrev" : '0*$' >/dev/null
then
# If the old reference is "0000..0000" then this is a new branch
# and so oldrev is not valid
echo " as a new $refname_type"
echo " to $newrev ($newrev_type)"
echo ""
# This shows all log entries that are not already covered by
# another ref - i.e. commits that are now accessible from this
# ref that were previously not accessible
git-whatchanged -p ${authorfilter:+--author="$authorfilter"} --pretty $newref $(git-rev-parse --not --all)
else
# oldrev is valid
oldrev_type=$(git-cat-file -t "$oldrev")
# Now the problem is for cases like this:
# * --- * --- * --- * (oldrev)
# \
# * --- * --- * (newrev)
# i.e. there is no guarantee that newrev is a strict subset
# of oldrev - (would have required a force, but that's allowed).
# So, we can't simply say rev-list $oldrev..$newrev. Instead
# we find the common base of the two revs and list from there
baserev=$(git-merge-base $oldrev $newrev)
# Commit with a parent
for rev in $(git-rev-list ${authorfilter:+--author="$authorfilter"} $newrev ^$baserev)
do
revtype=$(git-cat-file -t "$rev")
echo " via $rev ($revtype)"
done
if [ "$baserev" = "$oldrev" ]; then
echo " from $oldrev ($oldrev_type)"
else
echo " based on $baserev"
echo " from $oldrev ($oldrev_type)"
echo ""
echo "This ref update crossed a branch point; i.e. the old rev is not a strict subset"
echo "of the new rev. This occurs, when you --force push a change in a situation"
echo "like this:"
echo ""
echo " * -- * -- B -- O -- O -- O ($oldrev)"
echo " \\"
echo " N -- N -- N ($newrev)"
echo ""
echo "Therefore, we assume that you've already had alert emails for all of the O"
echo "revisions, and now give you all the revisions in the N branch from the common"
echo "base, B ($baserev), up to the new revision."
fi
echo ""
echo "Diffstat:"
git-diff-tree --no-color --stat -M -C --find-copies-harder $newrev ^$baserev
echo ""
git-whatchanged -p ${authorfilter:+--author="$authorfilter"} --pretty $newrev ^$baserev
fi
;;
"annotated tag")
Ok, I think that's about it. Andy, let me know if I can help
clarify anything.
Bill
^ permalink raw reply
* Re: [PATCH] git-cvsserver: added support for update -p
From: Jan Wielemaker @ 2007-10-10 14:26 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: Git Mailing List
In-Reply-To: <Pine.LNX.4.64.0710101442571.4174@racer.site>
On Wednesday 10 October 2007 15:47, Johannes Schindelin wrote:
> Hi,
>
> On Wed, 10 Oct 2007, Jan Wielemaker wrote:
> > [PATCH] git-cvsserver: added support for update -p
> > ---
>
> Proposed alternative for the commit message:
>
> -- snip --
> The cvs subcommand "update -p <file>" is frequently used to see the
> contents of a given file in HEAD, sort of our "git show <file>". It
> is not that hard to support it, so here it is.
>
> Commit-message-proposed-by: Johannes Schindelin <johannes.schindelin.de>
> Signed-off-by: Jan Wielemaker <jan@swi-prolog.org>
> -- snap --
Ok. I'm still a guy of ChangeLog files, which you generally needed for
CVS to keep track of a large project :-) As the CVS commit message
aren't much good anyway, I kept them short. Also for my own project I'm
considering to replace these with larger commit messages and drop the
ChangeLog files.
> P.S.: Have not reviewed the patch at all, so cannot say anything about the
> merits of it; will leave it to djpig ;-)
Don't trust my Perl; its just copy and intelligent(-ish) paste :-) Works
for me though and this isn't very complicated. Is there a test suite for
git-cvsserver?
Cheers --- Jan
^ permalink raw reply
* Re: [PATCH v2] mergetool: support setting path to tool as config var mergetool.<tool>.path
From: Johannes Schindelin @ 2007-10-10 14:33 UTC (permalink / raw)
To: Steffen Prohaska; +Cc: tytso, frank, git
In-Reply-To: <11919632613176-git-send-email-prohaska@zib.de>
Hi,
On Tue, 9 Oct 2007, Steffen Prohaska wrote:
> This commit adds a mechanism to provide absolute paths to the external
> programs called by 'git mergetool'. A path can be specified in the
> configuation variable mergetool.<tool>.path. The configuration variable
> is similar to how we name branches and remotes. It is extensible if we
> need to specify more details about a tool.
Okay, let's step back a bit.
What does mergetool do? It calls different merge helpers, each with its
own convention how to call it. For example, tkdiff is called either as
tkdiff -a "$BASE" -o "$path" -- "$LOCAL" "$REMOTE"
or as
tkdiff -o "$path" -- "$LOCAL" "$REMOTE"
depending if there is a base or not. Another example is gvimdiff:
gvimdiff -f -- "$LOCAL" "$path" "$REMOTE"
which seems not to care if there is a base.
Now, would it not be much better if we had a way to specify the tool and
the convention indepentently? Like
merge.tkdiff.path = C:\bla\blub\wish.exe C:\blub\bleh\tkdiff.tcl
merge.tkdiff.options = -o %p -- %l %r
merge.tkdiff.optionsWithBase = -a %b -o %p -- %l %r
and have defaults for the tools we have in git-mergetool.sh _already_?
Ciao,
Dscho
^ permalink raw reply
* Re: removing content from git history
From: Johannes Schindelin @ 2007-10-10 14:41 UTC (permalink / raw)
To: Bill Lear
Cc: Shawn O. Pearce, Linus Torvalds, J. Bruce Fields,
Michael Hendricks, git
In-Reply-To: <18187.60305.613904.547916@lisa.zopyra.com>
Hi,
On Tue, 9 Oct 2007, Bill Lear wrote:
> Our company has content in our central git repository that we need to
> remove per a contractual obligation. I believe the content in question
> is limited to one sub-directory, that has existed since (or near to) the
> beginning of the repo, if that matters. We obviously would just like to
> issue a "git nuke" operation and be done with it, if that is available.
> Barring that, we could probably follow reasonably simple steps to purge
> the content and rebuild the repo.
>
> So, what options do we have at present?
git filter-branch. I suggest using the index filter. There is even a
nice example in the man page of git filter-branch.
Which reminds me that I have some TODOs left in filter-branch...
Ciao,
Dscho
^ permalink raw reply
* Re: [PATCH] git-gui: update Italian translation
From: Michele Ballabio @ 2007-10-10 14:58 UTC (permalink / raw)
To: git; +Cc: Paolo Ciarrocchi, Shawn O. Pearce, Johannes Schindelin
In-Reply-To: <4d8e3fd30710100722m650d4bb0yf76869ae6f8944df@mail.gmail.com>
On Wednesday 10 October 2007, Paolo Ciarrocchi wrote:
> In short, I'm still think we should leave the word untranslated.
>
> How about posting the new file to ltp and move there the discussion?
Uhm. What about "nuova revisione"/"creare una nuova revisione"? Otherwise,
I'll select some strings and post them there.
^ permalink raw reply
* Re: Adding color to git-add--interactive
From: Johannes Schindelin @ 2007-10-10 15:06 UTC (permalink / raw)
To: Jeff King; +Cc: Jonathan del Strother, Git Mailing List
In-Reply-To: <20071009234020.GA20952@coredump.intra.peff.net>
Hi,
On Tue, 9 Oct 2007, Jeff King wrote:
> On Tue, Oct 09, 2007 at 02:06:31PM +0100, Jonathan del Strother wrote:
>
> > For me at least, adding color would make the interactive mode far more
> > readable. I hacked in basic color support (just coloring PROMPT &
> > HEADER in list_and_choose, and the "Stage this hunk?" prompt) - which
> > helped a lot - but then reached the limits of my perl knowledge. For
> > instance, I can't see a sensible way of reusing git-svn's
> > log_use_color function without importing the entire file, and I can't
> > figure out how you'd go about diff-coloring the hunks. Is anyone with
> > more perl knowledge than me interested in taking this on?
>
> Why don't you post what you have, and we can make comments on it?
>
> As far as reusing code from git-svn, there is a 'Git.pm' module in the
> perl/ subdirectory. You can move the code there and 'use Git' in
> git-add--interactive.perl (git-svn already uses it).
I think the reason git-add--interactive does not use it is that some
people (me included) experienced heavy problems with perl modules.
However, I do not recall to which extent they have been solved. I guess
when git-add--interactive goes Git.pm and stops working for me, I'll do my
famous "aargh, I'll just make it a builtin" song.
Ciao,
Dscho
^ permalink raw reply
* Re: [PATCH] git-gui: update Italian translation
From: Paolo Ciarrocchi @ 2007-10-10 15:16 UTC (permalink / raw)
To: Michele Ballabio; +Cc: git, Shawn O. Pearce, Johannes Schindelin
In-Reply-To: <200710101658.32229.barra_cuda@katamail.com>
On 10/10/07, Michele Ballabio <barra_cuda@katamail.com> wrote:
> On Wednesday 10 October 2007, Paolo Ciarrocchi wrote:
> > In short, I'm still think we should leave the word untranslated.
> >
> > How about posting the new file to ltp and move there the discussion?
>
> Uhm. What about "nuova revisione"/"creare una nuova revisione"? Otherwise,
> I'll select some strings and post them there.
I like "nuova revisione".
Ciao,
--
Paolo
http://paolo.ciarrocchi.googlepages.com/
^ permalink raw reply
* Re: inexplicable failure to merge recursively across cherry-picks
From: Linus Torvalds @ 2007-10-10 15:25 UTC (permalink / raw)
To: martin f krafft; +Cc: git discussion list
In-Reply-To: <20071010102528.GB20390@lapse.madduck.net>
On Wed, 10 Oct 2007, martin f krafft wrote:
> also sprach Linus Torvalds <torvalds@linux-foundation.org> [2007.10.10.0354 +0100]:
> > Cherry-picking is immaterial. It doesn't matter how the changes
> > come into the tree. It doesn't matter what the history is. The
> > only thing git cares about is the content, and the end result.
>
> This is the part I over-estimated. I thought that Git would figure
> out that commits 1-3 had been merged into the target and thus apply,
> in sequence, only the commits from the source which had not been
> merged.
Yes, *some* SCM's have tried to do that. In particular, the ones that are
"patch-based" tend to think that patches are "identical" regardless of
where they are, and while re-ordering of them is a special event, it's not
somethign that changes the fundamental 'ID' of the patch.
For example, I think the darcs "patch algebra" works that way.
It's a really horrible model. Not only doesn't it scale, but it leads to
various very strange linkages between patches, and it fails the most
important part: it means that merges get different results just because
people are doing the same changes two different ways.
> Many thanks (again), Linus! Looking forward to your next content
> manager; you know, the one with artificial intelligence built in!
> You could call it "wit" :)
Well, the git model is really largely the reverse: the system is supposed
to be as *stupid* as humanly possible, but:
- make it predictable exactly because it's stupid and doesn't do anything
even half-ways smart.
This is part of the "it doesn't matter *how* you got to a particular
state, git will always do the same thing regardless of whether you
moved an existing patch around or whether you re-did the changes as
(possibly more than one) new and unrelated commits".
- conflicts aren't bad - they're *good*. Trying to aggressively resolve
them automatically when two branches have done slightly different
things in the same area is stupid and just results in more problems.
Instead, git tries to do what I don't think *anybody* else has done:
make the conflicts easy to resolve, by allowing you to work with them
in your normal working tree, and still giving you a lot of tools to
help you see what's going on.
So git doesn't try to avoid conflicts per se: the merge strategies are
fundamentally pretty simple (rename detection and the whole "recursive
merge" thing may not be simple code, but the concepts are pretty
straightforward), and they handle all the really *obvious* cases, but at
the same time, I feel strongly that anything even half-way subtle should
not be left to the SCM - the SCM should show it and make it really easy
for the user to then fix it up.
Side note: even with a totally obvious three-way merge, with absolutely
zero conflicts even remotely close to each other, you can have the merge
algorithm generate a good merge that doesn't actually *work*.
For example, it's happened a few times that one branch renames a structure
member name (and changes all the uses) and another branch adds new code
that uses the old member name. The end result: the code will *merge* fine,
and there are zero conflicts in the content, because all the changes were
totally disjoint, but the end result doesn't actually work or even
compile!
So no merge strategy is ever perfect. The git approach is to be simple and
predictable, and also to make it easy to fix up (ie even if you get the
above kind of automatic merge problem, if you catch it in compiling, you
can fix it up, and do a "git commit --amend" to fix up the merge itself
before you push it out).
Linus
^ permalink raw reply
* Re: [PATCH v2] mergetool: support setting path to tool as config var mergetool.<tool>.path
From: Steffen Prohaska @ 2007-10-10 15:44 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: tytso, frank, git
In-Reply-To: <Pine.LNX.4.64.0710101526060.4174@racer.site>
On Oct 10, 2007, at 4:33 PM, Johannes Schindelin wrote:
> Hi,
>
> On Tue, 9 Oct 2007, Steffen Prohaska wrote:
>
>> This commit adds a mechanism to provide absolute paths to the
>> external
>> programs called by 'git mergetool'. A path can be specified in the
>> configuation variable mergetool.<tool>.path. The configuration
>> variable
>> is similar to how we name branches and remotes. It is extensible
>> if we
>> need to specify more details about a tool.
>
> Okay, let's step back a bit.
>
> What does mergetool do? It calls different merge helpers, each
> with its
> own convention how to call it. For example, tkdiff is called
> either as
>
> tkdiff -a "$BASE" -o "$path" -- "$LOCAL" "$REMOTE"
>
> or as
>
> tkdiff -o "$path" -- "$LOCAL" "$REMOTE"
>
> depending if there is a base or not. Another example is gvimdiff:
>
> gvimdiff -f -- "$LOCAL" "$path" "$REMOTE"
>
> which seems not to care if there is a base.
>
> Now, would it not be much better if we had a way to specify the
> tool and
> the convention indepentently? Like
>
> merge.tkdiff.path = C:\bla\blub\wish.exe C:\blub\bleh\tkdiff.tcl
> merge.tkdiff.options = -o %p -- %l %r
> merge.tkdiff.optionsWithBase = -a %b -o %p -- %l %r
>
> and have defaults for the tools we have in git-mergetool.sh _already_?
If you provide a generic mechanism to call an external tool, there's no
need to name the tool. A single mechanism (let's call it external)
would be
sufficient, like
mergetool.external.path = c:\any\path\merge.exe
mergetool.external.arg2way = %l %r --merge2 --to=%p
mergetool.external.arg3way = %b %l %r --merge3 --to=%p
But this places the burdon on the user to figure out the command line
syntax
and specify it correctly using git-config. Things like proper
escaping may
be a hassel.
The solution I'm proposing is more user-friendly. Only the information
that is hard to figure out automatically and is easy to provide by the
user is asked for. The user only needs to tell the path to the
executable.
git-mergetool 'knows' about the correct command line syntax. There's
no need
to ask the user. The command line syntax is fixed and know. No option
here.
"git mergetool" could, for example, know that a certain tool just
doesn't
support 3-way.
And the code of git-mergetool is also quite easy. The only input
validation
that is needed is to check if mergetool.<tool>.path points to a valid
executable. If we provide a complex syntax for specifying command line
options we may have to do a lot more of input validation and processing.
I strongly favor my solution of including the command line syntax in
git-mergetool, and only ask the user for the path. I'm not against a
generic
mechanism to configure any tool. However, I do not plan to implement it.
If someone plans to develop a generic mechanism I see two options:
1) What's explained above.
2) _Define_ the parameters passed to the external command and ask the
user
to write a wrapper script to call his tool of choice. Similar to
what
GIT_EXTERNAL_DIFF does. Wrapper scripts would go to contrib/.
Both solutions would require more work from the user than needed.
Steffen
^ permalink raw reply
* Re: [msysGit] Re: [PATCH] git-gui: offer a list of recent repositories on startup
From: Johannes Schindelin @ 2007-10-10 15:43 UTC (permalink / raw)
To: Shawn O. Pearce; +Cc: Steffen Prohaska, Git Mailing List, msysGit
In-Reply-To: <20071010044030.GJ2137@spearce.org>
Hi,
On Wed, 10 Oct 2007, Shawn O. Pearce wrote:
> Steffen Prohaska <prohaska@zib.de> wrote:
> > On Oct 9, 2007, at 1:43 PM, Johannes Schindelin wrote:
> > >On Mon, 8 Oct 2007, Steffen Prohaska wrote:
> > >
> > >>commit a483fdd562d6c44d68a998224e0bbb17933b624a
> > >>Author: Steffen Prohaska <prohaska@zib.de>
> > >>Date: Mon Oct 8 08:25:47 2007 +0200
> > >>
> > >> git-gui: offer a list of recent repositories on startup
> > >
> > >May I suggest not putting this list into ~/.gitconfig, but rather
> > >~/.gitguirc? It is not really a user-specific git configuration...
> >
> > git-gui already stores other options as global variables gui.*.
> > (see git-gui/lib/option.tcl). I just added gui.recentrepo. The
> > list of recent repos should go to wherever git-gui stores its options.
> >
> > Right now this is in ~/.gitconfig, if I understand correctly. Shawn?
>
> Yes, that's correct.
>
> An item on my todo list (see todo branch in git-gui.git) is to move
> this into a ~/.gitguiconfig or something like that, but I was going
> to keep it as a git-config style file so git-config can be used to
> process its contents.
>
> Until that task is complete I'd rather keep all of the "gui" options
> in ~/.gitconfig (global) or .git/config (per-repository). When I
> split stuff out to git-gui specific files I'll have to migrate the
> entire "gui" section at once.
FWIW I was only concerned about the recent repos, since strictly speaking,
they are not options to git-gui... But I do not care deeply.
Ciao,
Dscho
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox