Git development
 help / color / mirror / Atom feed
* [PATCH] Change double quotes to single quotes in message
From: Jari Aalto @ 2009-03-21  9:08 UTC (permalink / raw)
  To: git


>From 6daec692a39a1ecf0452f1ad1eb7ba6fbf5661c9 Mon Sep 17 00:00:00 2001
From: Jari Aalto <jari.aalto@cante.net>
Date: Sat, 21 Mar 2009 11:00:54 +0200
Subject: [PATCH] Change double quotes to single quotes in message

This helps selecting the text inside quotes by using mouse double-click
action (e.g. in Putty). Functions affected: update_refs_for_switch(),
update_refs_for_switch() and cmd_checkout().
---
 builtin-checkout.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/builtin-checkout.c b/builtin-checkout.c
index 9fdfc58..49daade 100644
--- a/builtin-checkout.c
+++ b/builtin-checkout.c
@@ -503,10 +503,10 @@ static void update_refs_for_switch(struct checkout_opts *opts,
 		create_symref("HEAD", new->path, msg.buf);
 		if (!opts->quiet) {
 			if (old->path && !strcmp(new->path, old->path))
-				fprintf(stderr, "Already on \"%s\"\n",
+				fprintf(stderr, "Already on '%s'\n",
 					new->name);
 			else
-				fprintf(stderr, "Switched to%s branch \"%s\"\n",
+				fprintf(stderr, "Switched to%s branch '%s'\n",
 					opts->new_branch ? " a new" : "",
 					new->name);
 		}
@@ -515,7 +515,7 @@ static void update_refs_for_switch(struct checkout_opts *opts,
 			   REF_NODEREF, DIE_ON_ERR);
 		if (!opts->quiet) {
 			if (old->path)
-				fprintf(stderr, "Note: moving to \"%s\" which isn't a local branch\nIf you want to create a new branch from this checkout, you may do so\n(now or later) by using -b with the checkout command again. Example:\n  git checkout -b <new_branch_name>\n", new->name);
+				fprintf(stderr, "Note: moving to '%s' which isn't a local branch\nIf you want to create a new branch from this checkout, you may do so\n(now or later) by using -b with the checkout command again. Example:\n  git checkout -b <new_branch_name>\n", new->name);
 			describe_detached_head("HEAD is now at", new->commit);
 		}
 	}
-- 
1.6.1.3

^ permalink raw reply related

* [PATCH 2/2] Re: git-gui: some French translation enhancements
From: Nicolas Sebrecht @ 2009-03-21  9:33 UTC (permalink / raw)
  To: Shawn O. Pearce
  Cc: Christian Couder, Git List, Sam Hocevar, Alexandre Bourget,
	Nicolas Sebrecht
In-Reply-To: <20090320150336.GA23521@spearce.org>


On Fri, Mar 20, 2009 at 08:03:36AM -0700, Shawn O. Pearce wrote:

> It would really help me if translation patches didn't require me
> to hand-edit them.  My email client mangles them bad enough as
> it is, and I can only read English, so its very likely I'd wind
> up mangling a translation of "revert" into "your cow ate my pig,
> please give me your truck as payment".

Yes, I'm going to work that way. I'll provide a new (complete) version
of this topic when most french people here will agree with proposed
patches.

-- 
Nicolas Sebrecht

^ permalink raw reply

* [PATCH 2/2] Re: git-gui: some French translation enhancements
From: Nicolas Sebrecht @ 2009-03-21 10:14 UTC (permalink / raw)
  To: Alexandre Bourget
  Cc: Mike Hommey, Nicolas Sebrecht, Git List, Sam Hocevar,
	Christian Couder
In-Reply-To: <1237559694.25283.46.camel@alexandre-desktop>


On Fri, Mar 20, 2009 at 10:34:54AM -0400, Alexandre Bourget wrote:                                                                                                           
>
> Le vendredi 20 mars 2009 à 08:13 +0100, Mike Hommey a écrit :
> > On Fri, Mar 20, 2009 at 01:54:02AM +0100, Nicolas Sebrecht wrote:
> > IMHO, we should find a better way to say that than to use the "index"
> > word at all. This obviously applies to all uses of "index" in french
> > where we avoided it in english.
> >
> > OTOH, the best I can find for "staging area" is "zone de préparation",
> > and that doesn't help finding a word for stage and unstage.
>
> "zone de préparation" sounds good to me.

I'm not sure we are doing more good than bad. The "index" is a
technical's Git word which has its own sense in Git.

We could provide a pure "only french terms" translation but I'm not sure
it's the best way to work in software translation.

"Index" is a one of theses terms having a "special meaning in place".
It stands in English for "staging area" and could have the same meaning
in french mainly because we don't have a good french word to that
special use case.

"Index" as-is in the french po is NOT a non-sense. Also, french people
newbie in Git would easily find help for the index (most websites are in
english).

-- 
Nicolas Sebrecht

^ permalink raw reply

* [PATCH 2/2] Re: git-gui: some French translation enhancements
From: Nicolas Sebrecht @ 2009-03-21 10:27 UTC (permalink / raw)
  To: Alexandre Bourget
  Cc: Mike Hommey, Nicolas Sebrecht, Git List, Sam Hocevar,
	Christian Couder
In-Reply-To: <1237559694.25283.46.camel@alexandre-desktop>


On Fri, Mar 20, 2009 at 10:34:54AM -0400, Alexandre Bourget wrote:

> Hmm.. if you look at the git-gui program, when we use "Revert", it's not
> always the usage of the git-revert command that is invoked.
> 
> Most of the time, it's the equivalent of running "git reset --hard", or
> "git checkout path/filename.ext" (in fact, it uses git-checkout-index,
> see git-gui/lib/index.tcl::revert_helper..).
> 
> That is true for example in the "Commit" menu, 3rd to last item, which
> reads in french "Inverser les modifications" or "Révoker les
> modifications" as I modified it at some point.
> 
> What happens here, is really not inversion of modifications; we're just
> wiping out all changes from the working dir, back to HEAD. Several of
> the translated messages are used in *that* context. 

Good point. Thanks.

-- 
Nicolas Sebrecht

^ permalink raw reply

* Re: [PATCH] documentation: Makefile accounts for SHELL_PATH setting
From: Ben Walton @ 2009-03-21 11:38 UTC (permalink / raw)
  To: Jeff King; +Cc: GIT List
In-Reply-To: <20090321032240.GA31547@coredump.intra.peff.net>

[-- Attachment #1: Type: text/plain, Size: 2007 bytes --]

Excerpts from Jeff King's message of Fri Mar 20 23:22:40 -0400 2009:
> > +#retain original (but broken) behaviour if SHELL_PATH isn't overridden
> > +ifndef SHELL_PATH
> > +    SHELL_PATH = sh
> > +endif
> 
> The Makefile in t/Makefile does:
> 
>   SHELL_PATH ?= $(SHELL)
> 
> which I think makes more sense (and yes, yours actually keeps the
> existing behavior, but it's probably better to inherit from SHELL in
> case it is set to something more useful).

I used the ifndef/endif setup becuase that's how the PERL_PATH was set
and also becuase I think it's slightly more explicit.  I'm ok with ?=
though too.  I had considered using $(SHELL), but discarded it because
it veered from the current behaviour.  I agree that $(SHELL) is likely
better than sh though.

> >  install-html: html
> > -    sh ./install-webdoc.sh $(DESTDIR)$(htmldir)
> > +    $(SHELL_PATH) ./install-webdoc.sh $(DESTDIR)$(htmldir)
> 
> You need a SHELL_PATH_SQ to handle paths with spaces; see t/Makefile for
> an example.

Ok.  I'll look at this and implement the _SQ bits too to make it safer
and more general.

> I wonder if both subdirs should simply be pulling from
> GIT-BUILD-OPTIONS, though, which would allow this to use the specified
> SHELL_PATH:
> 
>   $ make SHELL_PATH=whatever
>   $ cd Documentation && make
> 
> but maybe it is not worth caring about (since it may complicate building
> Documentation if you _haven't_ build the actual code).

In my case, I'm using the configure script and then running make,
which sees the Documentation/Makefile source in the ../config.mak
files, so there may be some variance between pure make and make +
autoconf in this respect.  I hadn't looked at it in that light.
Should this be reconciled too?

I'm away today, but will try to correct this patch when I get home.

Thanks
-Ben
-- 
Ben Walton
Systems Programmer - CHASS
University of Toronto
C:416.407.5610 | W:416.978.4302

GPG Key Id: 8E89F6D2; Key Server: pgp.mit.edu
Contact me to arrange for a CAcert assurance meeting.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply

* [PATCH] Respect core.autocrlf when preparing temporary files for external diff
From: Johannes Schindelin @ 2009-03-21 11:42 UTC (permalink / raw)
  To: git, gitster; +Cc: Sebastian Schuberth
In-Reply-To: <cover.1237635609u.git.johannes.schindelin@gmx.de>

When preparing temporary files for an external diff, the files should be
handled as if they were worktree files.

This makes things consistent for the case when one side of the diff was
found in the current working directory (and therefore creating a temporary
file could be avoided altogether).

This fixes msysGit issue 177.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 diff.c                   |   13 ++++++++++---
 t/t4020-diff-external.sh |   16 ++++++++++++++++
 2 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/diff.c b/diff.c
index 75d9fab..699ae6a 100644
--- a/diff.c
+++ b/diff.c
@@ -1946,17 +1946,23 @@ void diff_free_filespec_data(struct diff_filespec *s)
 	s->cnt_data = NULL;
 }
 
-static void prep_temp_blob(struct diff_tempfile *temp,
+static void prep_temp_blob(const char *path, struct diff_tempfile *temp,
 			   void *blob,
 			   unsigned long size,
 			   const unsigned char *sha1,
 			   int mode)
 {
 	int fd;
+	struct strbuf buf = STRBUF_INIT;
 
 	fd = git_mkstemp(temp->tmp_path, PATH_MAX, ".diff_XXXXXX");
 	if (fd < 0)
 		die("unable to create temp-file: %s", strerror(errno));
+	if (convert_to_working_tree(path,
+			(const char *)blob, (size_t)size, &buf)) {
+		blob = buf.buf;
+		size = buf.len;
+	}
 	if (write_in_full(fd, blob, size) != size)
 		die("unable to write temp-file");
 	close(fd);
@@ -1964,6 +1970,7 @@ static void prep_temp_blob(struct diff_tempfile *temp,
 	strcpy(temp->hex, sha1_to_hex(sha1));
 	temp->hex[40] = 0;
 	sprintf(temp->mode, "%06o", mode);
+	strbuf_release(&buf);
 }
 
 static struct diff_tempfile *prepare_temp_file(const char *name,
@@ -2004,7 +2011,7 @@ static struct diff_tempfile *prepare_temp_file(const char *name,
 				die("readlink(%s)", name);
 			if (ret == sizeof(buf))
 				die("symlink too long: %s", name);
-			prep_temp_blob(temp, buf, ret,
+			prep_temp_blob(name, temp, buf, ret,
 				       (one->sha1_valid ?
 					one->sha1 : null_sha1),
 				       (one->sha1_valid ?
@@ -2030,7 +2037,7 @@ static struct diff_tempfile *prepare_temp_file(const char *name,
 	else {
 		if (diff_populate_filespec(one, 0))
 			die("cannot read data blob for %s", one->path);
-		prep_temp_blob(temp, one->data, one->size,
+		prep_temp_blob(name, temp, one->data, one->size,
 			       one->sha1, one->mode);
 	}
 	return temp;
diff --git a/t/t4020-diff-external.sh b/t/t4020-diff-external.sh
index 281680d..f8c99f1 100755
--- a/t/t4020-diff-external.sh
+++ b/t/t4020-diff-external.sh
@@ -136,4 +136,20 @@ test_expect_success 'GIT_EXTERNAL_DIFF with more than one changed files' '
 	GIT_EXTERNAL_DIFF=echo git diff
 '
 
+echo "#!$SHELL_PATH" >fake-diff.sh
+cat >> fake-diff.sh <<\EOF
+cat $2 >> crlfed.txt
+EOF
+chmod a+x fake-diff.sh
+
+keep_only_cr () {
+	tr -dc '\015'
+}
+
+test_expect_success 'external diff with autocrlf = true' '
+	git config core.autocrlf true &&
+	GIT_EXTERNAL_DIFF=./fake-diff.sh git diff &&
+	test $(wc -l < crlfed.txt) = $(cat crlfed.txt | keep_only_cr | wc -c)
+'
+
 test_done
-- 
1.6.2.1.493.g67cf3

^ permalink raw reply related

* Re: [PATCH v4] Introduce %<branch> as shortcut to the tracked branch
From: Julian Phillips @ 2009-03-21 13:24 UTC (permalink / raw)
  To: Andreas Gruenbacher
  Cc: Junio C Hamano, Johannes Schindelin, Shawn O. Pearce, Petr Baudis,
	B.Steinbrink, git
In-Reply-To: <200903210135.33729.agruen@suse.de>

On Sat, 21 Mar 2009, Andreas Gruenbacher wrote:

> On Saturday, 21 March 2009 0:08:42 Julian Phillips wrote:
>> How about adding a generic escape hatch, that would cover this and
>> future extensions?
>>
>> Let a ref that starts with a single quote be taken as given and not
>> processed.  You have to escape it to get it past the shell, but that makes
>> it rather unlikely that anyone has used a name that starts with a quote -
>> and if they have you can still use this mechanism to rename it.
>
> To me the most obvious escape sequence would be \x for disabling whatever
> special meaning x has (for non-alphabetic x). With quoting you likely
> eventually end up needing  \' in some cases anyway...

Except that \ is the escape character for the shell too ... and that can 
get very confusing.  Haven't you ever spent too long trying to figure out 
how many \s you needed to get the command to work properly?

-- 
Julian

  ---
I'm still waiting for the advent of the computer science groupie.

^ permalink raw reply

* Re: [PATCH v4] Introduce %<branch> as shortcut to the tracked branch
From: Julian Phillips @ 2009-03-21 13:28 UTC (permalink / raw)
  To: Andreas Gruenbacher
  Cc: Junio C Hamano, Johannes Schindelin, Shawn O. Pearce, Petr Baudis,
	B.Steinbrink, git
In-Reply-To: <alpine.LNX.2.00.0903211323010.20272@reaper.quantumfyre.co.uk>

On Sat, 21 Mar 2009, Julian Phillips wrote:

> On Sat, 21 Mar 2009, Andreas Gruenbacher wrote:
>
>>  On Saturday, 21 March 2009 0:08:42 Julian Phillips wrote:
>> >  How about adding a generic escape hatch, that would cover this and
>> >  future extensions?
>> > 
>> >  Let a ref that starts with a single quote be taken as given and not
>> >  processed.  You have to escape it to get it past the shell, but that 
>> >  makes
>> >  it rather unlikely that anyone has used a name that starts with a quote 
>> >  -
>> >  and if they have you can still use this mechanism to rename it.
>>
>>  To me the most obvious escape sequence would be \x for disabling whatever
>>  special meaning x has (for non-alphabetic x). With quoting you likely
>>  eventually end up needing  \' in some cases anyway...
>
> Except that \ is the escape character for the shell too ... and that can get 
> very confusing.  Haven't you ever spent too long trying to figure out how 
> many \s you needed to get the command to work properly?

Having said that, the actual character used doesn't really matter.  That's 
just a what colour do you want your shed type detail ...

-- 
Julian

  ---
BOFH Excuse #118:

the router thinks its a printer.

^ permalink raw reply

* [PATCH v2 1/2] git-gui: various French translation fixes
From: Nicolas Sebrecht @ 2009-03-21 14:47 UTC (permalink / raw)
  To: spearce; +Cc: alexandre.bourget, mh, sam, chriscool, nico, git,
	Nicolas Sebrecht
In-Reply-To: <20090321102748.GC12971@vidovic>


From: Sam Hocevar <sam@zoy.org>

Mostly grammar, spelling and typography fixes, but also a few wording
enhancements here and there.

Signed-off-by: Sam Hocevar <sam@zoy.org>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
---
 po/fr.po |  196 +++++++++++++++++++++++++++++++-------------------------------
 1 files changed, 98 insertions(+), 98 deletions(-)

diff --git a/po/fr.po b/po/fr.po
index 45773ab..eb5f68e 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -62,7 +62,7 @@ msgstr ""
 "\n"
 "%s nécessite au moins Git 1.5.0.\n"
 "\n"
-"Peut'on considérer que '%s' est en version 1.5.0 ?\n"
+"Peut-on considérer que '%s' est en version 1.5.0 ?\n"
 
 #: git-gui.sh:1062
 msgid "Git directory not found:"
@@ -82,7 +82,7 @@ msgstr "Aucun répertoire de travail"
 
 #: git-gui.sh:1247 lib/checkout_op.tcl:305
 msgid "Refreshing file status..."
-msgstr "Rafraichissement du status des fichiers..."
+msgstr "Rafraîchissement du statut des fichiers..."
 
 #: git-gui.sh:1303
 msgid "Scanning for modified files ..."
@@ -163,7 +163,7 @@ msgstr "Dépôt"
 
 #: git-gui.sh:2281
 msgid "Edit"
-msgstr "Edition"
+msgstr "Édition"
 
 #: git-gui.sh:2283 lib/choose_rev.tcl:561
 msgid "Branch"
@@ -199,7 +199,7 @@ msgstr "Naviguer dans la branche..."
 
 #: git-gui.sh:2316
 msgid "Visualize Current Branch's History"
-msgstr "Visualiser historique branche courante"
+msgstr "Visualiser l'historique de la branche courante"
 
 #: git-gui.sh:2320
 msgid "Visualize All Branch History"
@@ -208,12 +208,12 @@ msgstr "Voir l'historique de toutes les branches"
 #: git-gui.sh:2327
 #, tcl-format
 msgid "Browse %s's Files"
-msgstr "Naviguer l'arborescence de %s"
+msgstr "Parcourir l'arborescence de %s"
 
 #: git-gui.sh:2329
 #, tcl-format
 msgid "Visualize %s's History"
-msgstr "Voir l'historique de la branche: %s"
+msgstr "Voir l'historique de la branche : %s"
 
 #: git-gui.sh:2334 lib/database.tcl:27 lib/database.tcl:67
 msgid "Database Statistics"
@@ -230,7 +230,7 @@ msgstr "Vérifier le dépôt"
 #: git-gui.sh:2347 git-gui.sh:2351 git-gui.sh:2355 lib/shortcut.tcl:7
 #: lib/shortcut.tcl:39 lib/shortcut.tcl:71
 msgid "Create Desktop Icon"
-msgstr "Créer icône sur bureau"
+msgstr "Créer une icône sur le bureau"
 
 #: git-gui.sh:2363 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191
 msgid "Quit"
@@ -320,7 +320,7 @@ msgstr "Désindexer"
 
 #: git-gui.sh:2484 lib/index.tcl:410
 msgid "Revert Changes"
-msgstr "Annuler les modifications (revert)"
+msgstr "Révoquer les modifications"
 
 #: git-gui.sh:2491 git-gui.sh:3069
 msgid "Show Less Context"
@@ -382,7 +382,7 @@ msgstr "Documentation en ligne"
 
 #: git-gui.sh:2614 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56
 msgid "Show SSH Key"
-msgstr "Montrer clé SSH"
+msgstr "Montrer la clé SSH"
 
 #: git-gui.sh:2707
 #, tcl-format
@@ -445,7 +445,7 @@ msgstr "Fichier :"
 
 #: git-gui.sh:3078
 msgid "Refresh"
-msgstr "Rafraichir"
+msgstr "Rafraîchir"
 
 #: git-gui.sh:3099
 msgid "Decrease Font Size"
@@ -457,7 +457,7 @@ msgstr "Agrandir la police"
 
 #: git-gui.sh:3111 lib/blame.tcl:281
 msgid "Encoding"
-msgstr "Encodage"
+msgstr "Codage des caractères"
 
 #: git-gui.sh:3122
 msgid "Apply/Reverse Hunk"
@@ -469,7 +469,7 @@ msgstr "Appliquer/Inverser la ligne"
 
 #: git-gui.sh:3137
 msgid "Run Merge Tool"
-msgstr "Lancer outil de merge"
+msgstr "Lancer l'outil de fusion"
 
 #: git-gui.sh:3142
 msgid "Use Remote Version"
@@ -527,7 +527,7 @@ msgid ""
 "Tcl binary distributed by Cygwin."
 msgstr ""
 "\n"
-"Ceci est du à un problème connu avec\n"
+"Ceci est dû à un problème connu avec\n"
 "le binaire Tcl distribué par Cygwin."
 
 #: git-gui.sh:3336
@@ -630,11 +630,11 @@ msgstr "Fichier original :"
 
 #: lib/blame.tcl:1021
 msgid "Cannot find HEAD commit:"
-msgstr "Impossible de trouver le commit HEAD:"
+msgstr "Impossible de trouver le commit HEAD :"
 
 #: lib/blame.tcl:1076
 msgid "Cannot find parent commit:"
-msgstr "Impossible de trouver le commit parent:"
+msgstr "Impossible de trouver le commit parent :"
 
 #: lib/blame.tcl:1091
 msgid "Unable to display parent"
@@ -646,7 +646,7 @@ msgstr "Erreur lors du chargement des différences :"
 
 #: lib/blame.tcl:1232
 msgid "Originally By:"
-msgstr "A l'origine par :"
+msgstr "À l'origine par :"
 
 #: lib/blame.tcl:1238
 msgid "In File:"
@@ -691,11 +691,11 @@ msgstr "Détacher de la branche locale"
 
 #: lib/branch_create.tcl:22
 msgid "Create Branch"
-msgstr "Créer branche"
+msgstr "Créer une branche"
 
 #: lib/branch_create.tcl:27
 msgid "Create New Branch"
-msgstr "Créer nouvelle branche"
+msgstr "Créer une nouvelle branche"
 
 #: lib/branch_create.tcl:31 lib/choose_repository.tcl:377
 msgid "Create"
@@ -719,7 +719,7 @@ msgstr "Révision initiale"
 
 #: lib/branch_create.tcl:72
 msgid "Update Existing Branch:"
-msgstr "Mettre à jour branche existante :"
+msgstr "Mettre à jour une branche existante :"
 
 #: lib/branch_create.tcl:75
 msgid "No"
@@ -727,7 +727,7 @@ msgstr "Non"
 
 #: lib/branch_create.tcl:80
 msgid "Fast Forward Only"
-msgstr "Mise-à-jour rectiligne seulement (fast-forward)"
+msgstr "Mise à jour rectiligne seulement (fast-forward)"
 
 #: lib/branch_create.tcl:85 lib/checkout_op.tcl:536
 msgid "Reset"
@@ -769,7 +769,7 @@ msgstr "Branches locales"
 
 #: lib/branch_delete.tcl:52
 msgid "Delete Only If Merged Into"
-msgstr "Supprimer seulement si fusionnée dans:"
+msgstr "Supprimer seulement si fusionnée dans :"
 
 #: lib/branch_delete.tcl:54
 msgid "Always (Do not perform merge test.)"
@@ -786,7 +786,7 @@ msgid ""
 "\n"
 " Delete the selected branches?"
 msgstr ""
-"Récupérer des branches supprimées est difficile.\n"
+"Il est difficile de récupérer des branches supprimées.\n"
 "\n"
 "Supprimer les branches sélectionnées ?"
 
@@ -796,7 +796,7 @@ msgid ""
 "Failed to delete branches:\n"
 "%s"
 msgstr ""
-"La suppression des branches suivantes a échouée :\n"
+"La suppression des branches suivantes a échoué :\n"
 "%s"
 
 #: lib/branch_rename.tcl:14 lib/branch_rename.tcl:22
@@ -902,11 +902,11 @@ msgstr "La stratégie de fusion '%s' n'est pas supportée."
 #: lib/checkout_op.tcl:261
 #, tcl-format
 msgid "Failed to update '%s'."
-msgstr "La mise à jour de '%s' a échouée."
+msgstr "La mise à jour de '%s' a échoué."
 
 #: lib/checkout_op.tcl:273
 msgid "Staging area (index) is already locked."
-msgstr "L'index (staging area) est déjà vérouillé"
+msgstr "L'index (staging area) est déjà verrouillé."
 
 #: lib/checkout_op.tcl:288
 msgid ""
@@ -918,7 +918,7 @@ msgid ""
 "The rescan will be automatically started now.\n"
 msgstr ""
 "L'état lors de la dernière synchronisation ne correspond plus à l'état du "
-"dépôt\n"
+"dépôt.\n"
 "\n"
 "Un autre programme Git a modifié ce dépôt depuis la dernière "
 "synchronisation. Une resynchronisation doit être effectuée avant de pouvoir "
@@ -956,9 +956,9 @@ msgid ""
 "If you wanted to be on a branch, create one now starting from 'This Detached "
 "Checkout'."
 msgstr ""
-"Vous n'êtes plus ur une branche locale.\n"
+"Vous n'êtes plus sur une branche locale.\n"
 "\n"
-"Si vous vouliez être sur une branche, créez en une maintenant en partant de "
+"Si vous vouliez être sur une branche, créez-en une maintenant en partant de "
 "'Cet emprunt détaché'."
 
 #: lib/checkout_op.tcl:468 lib/checkout_op.tcl:472
@@ -1000,7 +1000,7 @@ msgstr ""
 "mis à jour avec succès, mais la mise à jour d'un fichier interne à Git a "
 "échouée.\n"
 "\n"
-"Cela n'aurait pas du se produire. %s va abandonner et se terminer."
+"Cela n'aurait pas dû se produire. %s va abandonner et se terminer."
 
 #: lib/choose_font.tcl:39
 msgid "Select"
@@ -1023,8 +1023,8 @@ msgid ""
 "This is example text.\n"
 "If you like this text, it can be your font."
 msgstr ""
-"C'est un texte d'exemple.\n"
-"Si vous aimez ce texte, vous pouvez choisir cette police"
+"Ceci est un texte d'exemple.\n"
+"Si vous aimez ce texte, vous pouvez choisir cette police."
 
 #: lib/choose_repository.tcl:28
 msgid "Git Gui"
@@ -1040,7 +1040,7 @@ msgstr "Nouveau..."
 
 #: lib/choose_repository.tcl:100 lib/choose_repository.tcl:465
 msgid "Clone Existing Repository"
-msgstr "Cloner dépôt existant"
+msgstr "Cloner un dépôt existant"
 
 #: lib/choose_repository.tcl:106
 msgid "Clone..."
@@ -1048,7 +1048,7 @@ msgstr "Cloner..."
 
 #: lib/choose_repository.tcl:113 lib/choose_repository.tcl:983
 msgid "Open Existing Repository"
-msgstr "Ouvrir dépôt existant"
+msgstr "Ouvrir un dépôt existant"
 
 #: lib/choose_repository.tcl:119
 msgid "Open..."
@@ -1056,17 +1056,17 @@ msgstr "Ouvrir..."
 
 #: lib/choose_repository.tcl:132
 msgid "Recent Repositories"
-msgstr "Dépôt récemment utilisés"
+msgstr "Dépôts récemment utilisés"
 
 #: lib/choose_repository.tcl:138
 msgid "Open Recent Repository:"
-msgstr "Ouvrir dépôt récent :"
+msgstr "Ouvrir un dépôt récent :"
 
 #: lib/choose_repository.tcl:302 lib/choose_repository.tcl:309
 #: lib/choose_repository.tcl:316
 #, tcl-format
 msgid "Failed to create repository %s:"
-msgstr "La création du dépôt %s a échouée :"
+msgstr "La création du dépôt %s a échoué :"
 
 #: lib/choose_repository.tcl:387
 msgid "Directory:"
@@ -1093,11 +1093,11 @@ msgstr "Cloner"
 
 #: lib/choose_repository.tcl:473
 msgid "Source Location:"
-msgstr "Emplacement source:"
+msgstr "Emplacement source :"
 
 #: lib/choose_repository.tcl:484
 msgid "Target Directory:"
-msgstr "Répertoire cible:"
+msgstr "Répertoire cible :"
 
 #: lib/choose_repository.tcl:496
 msgid "Clone Type:"
@@ -1137,7 +1137,7 @@ msgstr "L'emplacement %s existe déjà."
 
 #: lib/choose_repository.tcl:622
 msgid "Failed to configure origin"
-msgstr "La configuration de l'origine a échouée."
+msgstr "La configuration de l'origine a échoué."
 
 #: lib/choose_repository.tcl:634
 msgid "Counting objects"
@@ -1242,7 +1242,7 @@ msgstr "fichiers"
 
 #: lib/choose_repository.tcl:962
 msgid "Initial file checkout failed."
-msgstr "Chargement initial du fichier échoué."
+msgstr "Le chargement initial du fichier a échoué."
 
 #: lib/choose_repository.tcl:978
 msgid "Open"
@@ -1292,7 +1292,7 @@ msgstr "L'expression de révision est vide."
 
 #: lib/choose_rev.tcl:531
 msgid "Updated"
-msgstr "Mise-à-jour:"
+msgstr "Mise à jour:"
 
 #: lib/choose_rev.tcl:559
 msgid "URL"
@@ -1320,8 +1320,8 @@ msgid ""
 msgstr ""
 "Impossible de corriger pendant une fusion.\n"
 "\n"
-"Vous êtes actuellement au milieu d'une fusion qui n'a pas été completement "
-"terminée. Vous ne pouvez pas corriger le commit précédant sauf si vous "
+"Vous êtes actuellement au milieu d'une fusion qui n'a pas été complètement "
+"terminée. Vous ne pouvez pas corriger le commit précédent sauf si vous "
 "abandonnez la fusion courante.\n"
 
 #: lib/commit.tcl:49
@@ -1409,7 +1409,7 @@ msgstr ""
 #: lib/commit.tcl:211
 #, tcl-format
 msgid "warning: Tcl does not support encoding '%s'."
-msgstr "attention : Tcl ne supporte pas l'encodage '%s'."
+msgstr "attention : Tcl ne supporte pas le codage '%s'."
 
 #: lib/commit.tcl:227
 msgid "Calling pre-commit hook..."
@@ -1469,12 +1469,12 @@ msgstr "commit-tree a échoué :"
 
 #: lib/commit.tcl:373
 msgid "update-ref failed:"
-msgstr "update-ref a échoué"
+msgstr "update-ref a échoué :"
 
 #: lib/commit.tcl:461
 #, tcl-format
 msgid "Created commit %s: %s"
-msgstr "Commit créé %s : %s"
+msgstr "Commit %s créé : %s"
 
 #: lib/console.tcl:59
 msgid "Working... please wait..."
@@ -1581,24 +1581,24 @@ msgid ""
 "LOCAL: deleted\n"
 "REMOTE:\n"
 msgstr ""
-"LOCAL: supprimé\n"
-"DISTANT:\n"
+"LOCAL : supprimé\n"
+"DISTANT :\n"
 
 #: lib/diff.tcl:125
 msgid ""
 "REMOTE: deleted\n"
 "LOCAL:\n"
 msgstr ""
-"DISTANT: supprimé\n"
-"LOCAL:\n"
+"DISTANT : supprimé\n"
+"LOCAL :\n"
 
 #: lib/diff.tcl:132
 msgid "LOCAL:\n"
-msgstr "LOCAL:\n"
+msgstr "LOCAL :\n"
 
 #: lib/diff.tcl:135
 msgid "REMOTE:\n"
-msgstr "DISTANT:\n"
+msgstr "DISTANT :\n"
 
 #: lib/diff.tcl:197 lib/diff.tcl:296
 #, tcl-format
@@ -1624,7 +1624,7 @@ msgid ""
 "* Showing only first %d bytes.\n"
 msgstr ""
 "* Le fichier non suivi fait %d octets.\n"
-"* On montre seulement les premiers %d octets.\n"
+"* Seuls les %d premiers octets sont montrés.\n"
 
 #: lib/diff.tcl:228
 #, tcl-format
@@ -1635,7 +1635,7 @@ msgid ""
 msgstr ""
 "\n"
 "* Fichier suivi raccourcis ici de %s.\n"
-"* Pour voir le fichier entier, utiliser un éditeur externe.\n"
+"* Pour voir le fichier entier, utilisez un éditeur externe.\n"
 
 #: lib/diff.tcl:436
 msgid "Failed to unstage selected hunk."
@@ -1680,7 +1680,7 @@ msgstr "Vous devez corriger les erreurs suivantes avant de pouvoir commiter."
 
 #: lib/index.tcl:6
 msgid "Unable to unlock the index."
-msgstr "Impossible de dévérouiller l'index."
+msgstr "Impossible de déverrouiller l'index."
 
 #: lib/index.tcl:15
 msgid "Index Error"
@@ -1700,12 +1700,12 @@ msgstr "Continuer"
 
 #: lib/index.tcl:31
 msgid "Unlock Index"
-msgstr "Déverouiller l'index"
+msgstr "Déverrouiller l'index"
 
 #: lib/index.tcl:287
 #, tcl-format
 msgid "Unstaging %s from commit"
-msgstr "Désindexation de: %s"
+msgstr "Désindexation de : %s"
 
 #: lib/index.tcl:326
 msgid "Ready to commit."
@@ -1719,18 +1719,18 @@ msgstr "Ajout de %s"
 #: lib/index.tcl:396
 #, tcl-format
 msgid "Revert changes in file %s?"
-msgstr "Annuler les modifications dans le fichier %s ? "
+msgstr "Révoquer les modifications dans le fichier %s ? "
 
 #: lib/index.tcl:398
 #, tcl-format
 msgid "Revert changes in these %i files?"
-msgstr "Annuler les modifications dans ces %i fichiers ?"
+msgstr "Révoquer les modifications dans ces %i fichiers ?"
 
 #: lib/index.tcl:406
 msgid "Any unstaged changes will be permanently lost by the revert."
 msgstr ""
 "Toutes les modifications non-indexées seront définitivement perdues par "
-"l'annulation."
+"la révocation."
 
 #: lib/index.tcl:409
 msgid "Do Nothing"
@@ -1738,12 +1738,12 @@ msgstr "Ne rien faire"
 
 #: lib/index.tcl:427
 msgid "Reverting selected files"
-msgstr "Annuler modifications dans fichiers selectionnés"
+msgstr "Révocation en cours des fichiers selectionnés"
 
 #: lib/index.tcl:431
 #, tcl-format
 msgid "Reverting %s"
-msgstr "Annulation des modifications dans %s"
+msgstr "Révocation en cours de %s"
 
 #: lib/merge.tcl:13
 msgid ""
@@ -1804,11 +1804,11 @@ msgid ""
 msgstr ""
 "Vous êtes au milieu d'une modification.\n"
 "\n"
-"Le fichier %s est modifié.\n"
+"Le fichier %s a été modifié.\n"
 "\n"
 "Vous devriez terminer le commit courant avant de lancer une fusion. En "
 "faisait comme cela, vous éviterez de devoir éventuellement abandonner une "
-"fusion ayant échouée.\n"
+"fusion ayant échoué.\n"
 
 #: lib/merge.tcl:107
 #, tcl-format
@@ -1826,7 +1826,7 @@ msgstr "La fusion s'est faite avec succès."
 
 #: lib/merge.tcl:133
 msgid "Merge failed.  Conflict resolution is required."
-msgstr "La fusion a echouée. Il est nécessaire de résoudre les conflicts."
+msgstr "La fusion a echoué. Il est nécessaire de résoudre les conflits."
 
 #: lib/merge.tcl:158
 #, tcl-format
@@ -1914,16 +1914,16 @@ msgid ""
 "\n"
 "This operation can be undone only by restarting the merge."
 msgstr ""
-"Noter que le diff ne montre que les modifications en conflict.\n"
+"Noter que le diff ne montre que les modifications en conflit.\n"
 "\n"
 "%s sera écrasé.\n"
 "\n"
-"Cette opération ne peut être défaite qu'en relançant la fusion."
+"Cette opération ne peut être inversée qu'en relançant la fusion."
 
 #: lib/mergetool.tcl:45
 #, tcl-format
 msgid "File %s seems to have unresolved conflicts, still stage?"
-msgstr "Le fichier %s semble avoir des conflicts non résolus, indéxer quand même ?"
+msgstr "Le fichier %s semble avoir des conflits non résolus, indexer quand même ?"
 
 #: lib/mergetool.tcl:60
 #, tcl-format
@@ -1932,11 +1932,11 @@ msgstr "Ajouter une résolution pour %s"
 
 #: lib/mergetool.tcl:141
 msgid "Cannot resolve deletion or link conflicts using a tool"
-msgstr "Impossible de résoudre la suppression ou de relier des conflicts en utilisant un outil"
+msgstr "Impossible de résoudre la suppression ou de relier des conflits en utilisant un outil"
 
 #: lib/mergetool.tcl:146
 msgid "Conflict file does not exist"
-msgstr "Le fichier en conflict n'existe pas."
+msgstr "Le fichier en conflit n'existe pas."
 
 #: lib/mergetool.tcl:264
 #, tcl-format
@@ -1958,7 +1958,7 @@ msgid ""
 "Error retrieving versions:\n"
 "%s"
 msgstr ""
-"Erreur lors de la récupération des versions:\n"
+"Erreur lors de la récupération des versions :\n"
 "%s"
 
 #: lib/mergetool.tcl:343
@@ -1968,7 +1968,7 @@ msgid ""
 "\n"
 "%s"
 msgstr ""
-"Impossible de lancer l'outil de fusion:\n"
+"Impossible de lancer l'outil de fusion :\n"
 "\n"
 "%s"
 
@@ -1983,12 +1983,12 @@ msgstr "L'outil de fusion a échoué."
 #: lib/option.tcl:11
 #, tcl-format
 msgid "Invalid global encoding '%s'"
-msgstr "Encodage global invalide '%s'"
+msgstr "Codage global '%s' invalide"
 
 #: lib/option.tcl:19
 #, tcl-format
 msgid "Invalid repo encoding '%s'"
-msgstr "Encodage de dépôt invalide '%s'"
+msgstr "Codage de dépôt '%s' invalide"
 
 #: lib/option.tcl:117
 msgid "Restore Defaults"
@@ -2001,7 +2001,7 @@ msgstr "Sauvegarder"
 #: lib/option.tcl:131
 #, tcl-format
 msgid "%s Repository"
-msgstr "Dépôt: %s"
+msgstr "Dépôt : %s"
 
 #: lib/option.tcl:132
 msgid "Global (All Repositories)"
@@ -2069,7 +2069,7 @@ msgstr "Nouveau modèle de nom de branche"
 
 #: lib/option.tcl:155
 msgid "Default File Contents Encoding"
-msgstr "Encodage du contenu des fichiers par défaut"
+msgstr "Codage du contenu des fichiers par défaut"
 
 #: lib/option.tcl:203
 msgid "Change"
@@ -2098,11 +2098,11 @@ msgstr "Préférences"
 
 #: lib/option.tcl:314
 msgid "Failed to completely save options:"
-msgstr "La sauvegarde complète des options a échouée :"
+msgstr "La sauvegarde complète des options a échoué :"
 
 #: lib/remote.tcl:163
 msgid "Remove Remote"
-msgstr "Supprimer dépôt distant"
+msgstr "Supprimer un dépôt distant"
 
 #: lib/remote.tcl:168
 msgid "Prune from"
@@ -2118,11 +2118,11 @@ msgstr "Pousser vers"
 
 #: lib/remote_add.tcl:19
 msgid "Add Remote"
-msgstr "Ajouter dépôt distant"
+msgstr "Ajouter un dépôt distant"
 
 #: lib/remote_add.tcl:24
 msgid "Add New Remote"
-msgstr "Ajouter nouveau dépôt distant"
+msgstr "Ajouter un nouveau dépôt distant"
 
 #: lib/remote_add.tcl:28 lib/tools_dlg.tcl:36
 msgid "Add"
@@ -2134,7 +2134,7 @@ msgstr "Détails des dépôts distants"
 
 #: lib/remote_add.tcl:50
 msgid "Location:"
-msgstr "Emplacement:"
+msgstr "Emplacement :"
 
 #: lib/remote_add.tcl:62
 msgid "Further Action"
@@ -2146,7 +2146,7 @@ msgstr "Récupérer immédiatement"
 
 #: lib/remote_add.tcl:71
 msgid "Initialize Remote Repository and Push"
-msgstr "Initialiser dépôt distant et pousser"
+msgstr "Initialiser un dépôt distant et pousser"
 
 #: lib/remote_add.tcl:77
 msgid "Do Nothing Else Now"
@@ -2193,7 +2193,7 @@ msgstr "Mise en place de %s (à %s)"
 
 #: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34
 msgid "Delete Branch Remotely"
-msgstr "Supprimer branche à distance"
+msgstr "Supprimer une branche à distance"
 
 #: lib/remote_branch_delete.tcl:47
 msgid "From Repository"
@@ -2244,7 +2244,7 @@ msgid ""
 "One or more of the merge tests failed because you have not fetched the "
 "necessary commits.  Try fetching from %s first."
 msgstr ""
-"Une ou plusieurs des tests de fusion ont échoués parce que vous n'avez pas "
+"Un ou plusieurs des tests de fusion ont échoué parce que vous n'avez pas "
 "récupéré les commits nécessaires. Essayez de récupéré à partir de %s d'abord."
 
 #: lib/remote_branch_delete.tcl:207
@@ -2257,14 +2257,14 @@ msgid ""
 "\n"
 "Delete the selected branches?"
 msgstr ""
-"Récupérer des branches supprimées est difficile.\n"
+"Il est difficile de récupérer des branches supprimées.\n"
 "\n"
-"Souhaitez vous supprimer les branches sélectionnées ?"
+"Supprimer les branches sélectionnées ?"
 
 #: lib/remote_branch_delete.tcl:226
 #, tcl-format
 msgid "Deleting branches from %s"
-msgstr "Supprimer les branches de %s"
+msgstr "Suppression des branches de %s"
 
 #: lib/remote_branch_delete.tcl:286
 msgid "No repository selected."
@@ -2285,7 +2285,7 @@ msgstr "Suivant"
 
 #: lib/search.tcl:24
 msgid "Prev"
-msgstr "Précédant"
+msgstr "Précédent"
 
 #: lib/search.tcl:25
 msgid "Case-Sensitive"
@@ -2293,7 +2293,7 @@ msgstr "Sensible à la casse"
 
 #: lib/shortcut.tcl:20 lib/shortcut.tcl:61
 msgid "Cannot write shortcut:"
-msgstr "Impossible d'écrire le raccourcis :"
+msgstr "Impossible d'écrire le raccourci :"
 
 #: lib/shortcut.tcl:136
 msgid "Cannot write icon:"
@@ -2318,7 +2318,7 @@ msgstr "Réinitialisation du dictionnaire à %s."
 
 #: lib/spellcheck.tcl:73
 msgid "Spell checker silently failed on startup"
-msgstr "La vérification d'orthographe a échouée silentieusement au démarrage"
+msgstr "La vérification d'orthographe a échoué silencieusement au démarrage"
 
 #: lib/spellcheck.tcl:80
 msgid "Unrecognized spell checker"
@@ -2351,11 +2351,11 @@ msgstr "Générer une clé"
 
 #: lib/sshkey.tcl:56
 msgid "Copy To Clipboard"
-msgstr "Copier dans le presse papier"
+msgstr "Copier dans le presse-papier"
 
 #: lib/sshkey.tcl:70
 msgid "Your OpenSSH Public Key"
-msgstr "Votre clé publique Open SSH"
+msgstr "Votre clé publique OpenSSH"
 
 #: lib/sshkey.tcl:78
 msgid "Generating..."
@@ -2368,7 +2368,7 @@ msgid ""
 "\n"
 "%s"
 msgstr ""
-"Impossible de lancer ssh-keygen:\n"
+"Impossible de lancer ssh-keygen :\n"
 "\n"
 "%s"
 
@@ -2398,7 +2398,7 @@ msgstr "Lancer %s nécessite qu'un fichier soit sélectionné."
 #: lib/tools.tcl:90
 #, tcl-format
 msgid "Are you sure you want to run %s?"
-msgstr "Êtes vous sûr de vouloir lancer %s ?"
+msgstr "Êtes-vous sûr de vouloir lancer %s ?"
 
 #: lib/tools.tcl:110
 #, tcl-format
@@ -2422,11 +2422,11 @@ msgstr "L'outil a échoué : %s"
 
 #: lib/tools_dlg.tcl:22
 msgid "Add Tool"
-msgstr "Ajouter outil"
+msgstr "Ajouter un outil"
 
 #: lib/tools_dlg.tcl:28
 msgid "Add New Tool Command"
-msgstr "Ajouter nouvelle commande d'outil"
+msgstr "Ajouter une nouvelle commande d'outil"
 
 #: lib/tools_dlg.tcl:33
 msgid "Add globally"
@@ -2438,7 +2438,7 @@ msgstr "Détails sur l'outil"
 
 #: lib/tools_dlg.tcl:48
 msgid "Use '/' separators to create a submenu tree:"
-msgstr "Utiliser les séparateurs '/' pour créer un arbre de sous menus :"
+msgstr "Utiliser les séparateurs '/' pour créer un arbre de sous-menus :"
 
 #: lib/tools_dlg.tcl:61
 msgid "Command:"
@@ -2479,7 +2479,7 @@ msgid ""
 "Could not add tool:\n"
 "%s"
 msgstr ""
-"Impossible d'ajouter l'outil:\n"
+"Impossible d'ajouter l'outil :\n"
 "%s"
 
 #: lib/tools_dlg.tcl:190
-- 
1.6.2.169.g92418

^ permalink raw reply related

* [PATCH v2 2/2] git-gui: impove some French translations
From: Nicolas Sebrecht @ 2009-03-21 14:47 UTC (permalink / raw)
  To: spearce; +Cc: alexandre.bourget, mh, sam, chriscool, nico, git,
	Nicolas Sebrecht
In-Reply-To: <20090321102748.GC12971@vidovic>



Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
---
 po/fr.po |   47 ++++++++++++++++++++++-------------------------
 1 files changed, 22 insertions(+), 25 deletions(-)

diff --git a/po/fr.po b/po/fr.po
index eb5f68e..15f326f 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -106,7 +106,7 @@ msgstr "Non modifié"
 
 #: git-gui.sh:1821
 msgid "Modified, not staged"
-msgstr "Modifié, pas indexé"
+msgstr "Modifié, non indexé"
 
 #: git-gui.sh:1822 git-gui.sh:1830
 msgid "Staged for commit"
@@ -171,7 +171,7 @@ msgstr "Branche"
 
 #: git-gui.sh:2286 lib/choose_rev.tcl:548
 msgid "Commit@@noun"
-msgstr "Commit"
+msgstr "Commit@@noun"
 
 #: git-gui.sh:2289 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
 msgid "Merge"
@@ -195,7 +195,7 @@ msgstr "Naviguer dans la branche courante"
 
 #: git-gui.sh:2311
 msgid "Browse Branch Files..."
-msgstr "Naviguer dans la branche..."
+msgstr "Naviguer dans une branche..."
 
 #: git-gui.sh:2316
 msgid "Visualize Current Branch's History"
@@ -304,7 +304,7 @@ msgstr "Corriger dernier commit"
 
 #: git-gui.sh:2461 git-gui.sh:2825 lib/remote_branch_delete.tcl:99
 msgid "Rescan"
-msgstr "Recharger modifs."
+msgstr "Recharger les modifications"
 
 #: git-gui.sh:2467
 msgid "Stage To Commit"
@@ -312,11 +312,11 @@ msgstr "Indexer"
 
 #: git-gui.sh:2473
 msgid "Stage Changed Files To Commit"
-msgstr "Indexer toutes modifications"
+msgstr "Indexer toutes les modifications"
 
 #: git-gui.sh:2479
 msgid "Unstage From Commit"
-msgstr "Désindexer"
+msgstr "Enlever de l'index"
 
 #: git-gui.sh:2484 lib/index.tcl:410
 msgid "Revert Changes"
@@ -397,15 +397,15 @@ msgstr "Branche courante :"
 
 #: git-gui.sh:2761
 msgid "Staged Changes (Will Commit)"
-msgstr "Modifs. indexées (pour commit)"
+msgstr "Modifications indexées (à commiter)"
 
 #: git-gui.sh:2781
 msgid "Unstaged Changes"
-msgstr "Modifs. non indexées"
+msgstr "Modifications non indexées"
 
 #: git-gui.sh:2831
 msgid "Stage Changed"
-msgstr "Indexer modifs."
+msgstr "Indexer les modifications"
 
 #: git-gui.sh:2850 lib/transport.tcl:93 lib/transport.tcl:182
 msgid "Push"
@@ -485,11 +485,11 @@ msgstr "Revenir à la version de base"
 
 #: git-gui.sh:3169
 msgid "Unstage Hunk From Commit"
-msgstr "Désindexer la section"
+msgstr "Enlever la section de l'index"
 
 #: git-gui.sh:3170
 msgid "Unstage Line From Commit"
-msgstr "Désindexer la ligne"
+msgstr "Enlever la ligne de l'index"
 
 #: git-gui.sh:3172
 msgid "Stage Hunk For Commit"
@@ -711,7 +711,7 @@ msgstr "Nom :"
 
 #: lib/branch_create.tcl:58
 msgid "Match Tracking Branch Name"
-msgstr "Trouver nom de branche de suivi"
+msgstr "Correspond au nom de la branche de suivi"
 
 #: lib/branch_create.tcl:66
 msgid "Starting Revision"
@@ -1109,7 +1109,7 @@ msgstr "Standard (rapide, semi-redondant, liens durs)"
 
 #: lib/choose_repository.tcl:508
 msgid "Full Copy (Slower, Redundant Backup)"
-msgstr "Copy complète (plus lent, sauvegarde redondante)"
+msgstr "Copie complète (plus lent, sauvegarde redondante)"
 
 #: lib/choose_repository.tcl:514
 msgid "Shared (Fastest, Not Recommended, No Backup)"
@@ -1284,7 +1284,7 @@ msgstr "Révision invalide : %s"
 
 #: lib/choose_rev.tcl:338
 msgid "No revision selected."
-msgstr "Pas de révision selectionnée."
+msgstr "Pas de révision sélectionnée."
 
 #: lib/choose_rev.tcl:346
 msgid "Revision expression is empty."
@@ -1534,12 +1534,10 @@ msgid ""
 "\n"
 "Compress the database now?"
 msgstr ""
-"Ce dépôt comprend actuellement environ %i objets ayant leur fichier "
-"particulier.\n"
+"Ce dépôt comprend actuellement environ %i objets inutilisés.\n"
 "\n"
 "Pour conserver une performance optimale, il est fortement recommandé de "
-"comprimer la base quand plus de %i objets ayant leur fichier particulier "
-"existent.\n"
+"comprimer la base quand plus de %i objets inutilisés existent.\n"
 "\n"
 "Comprimer la base maintenant ?"
 
@@ -1705,7 +1703,7 @@ msgstr "Déverrouiller l'index"
 #: lib/index.tcl:287
 #, tcl-format
 msgid "Unstaging %s from commit"
-msgstr "Désindexation de : %s"
+msgstr "Enlève %s de l'index"
 
 #: lib/index.tcl:326
 msgid "Ready to commit."
@@ -1729,8 +1727,7 @@ msgstr "Révoquer les modifications dans ces %i fichiers ?"
 #: lib/index.tcl:406
 msgid "Any unstaged changes will be permanently lost by the revert."
 msgstr ""
-"Toutes les modifications non-indexées seront définitivement perdues par "
-"la révocation."
+"Toutes les modifications non-indexées seront définitivement perdues."
 
 #: lib/index.tcl:409
 msgid "Do Nothing"
@@ -1738,7 +1735,7 @@ msgstr "Ne rien faire"
 
 #: lib/index.tcl:427
 msgid "Reverting selected files"
-msgstr "Révocation en cours des fichiers selectionnés"
+msgstr "Révocation en cours des fichiers sélectionnés"
 
 #: lib/index.tcl:431
 #, tcl-format
@@ -1918,7 +1915,7 @@ msgstr ""
 "\n"
 "%s sera écrasé.\n"
 "\n"
-"Cette opération ne peut être inversée qu'en relançant la fusion."
+"Cette opération ne peut être annulée qu'en relançant la fusion."
 
 #: lib/mergetool.tcl:45
 #, tcl-format
@@ -2245,7 +2242,7 @@ msgid ""
 "necessary commits.  Try fetching from %s first."
 msgstr ""
 "Un ou plusieurs des tests de fusion ont échoué parce que vous n'avez pas "
-"récupéré les commits nécessaires. Essayez de récupéré à partir de %s d'abord."
+"récupéré les commits nécessaires. Essayez de récupérer à partir de %s d'abord."
 
 #: lib/remote_branch_delete.tcl:207
 msgid "Please select one or more branches to delete."
@@ -2462,7 +2459,7 @@ msgstr "Ne pas montrer la fenêtre de sortie des commandes"
 
 #: lib/tools_dlg.tcl:97
 msgid "Run only if a diff is selected ($FILENAME not empty)"
-msgstr "Lancer seulement si un diff est selectionné ($FILENAME non vide)"
+msgstr "Lancer seulement si un diff est sélectionné ($FILENAME non vide)"
 
 #: lib/tools_dlg.tcl:121
 msgid "Please supply a name for the tool."
-- 
1.6.2.169.g92418

^ permalink raw reply related

* Implementing stat() with FindFirstFile()
From: Magnus Bäck @ 2009-03-21 15:47 UTC (permalink / raw)
  To: git

Is there any reason why compat/win32.h uses GetFileAttributesEx()
instead of FindFirstFile() to implement the stat() call on Windows?
The current implementation requires each queried file to be opened
and closed while FindFirstFile() only reads the directory.

I made a couple of test programs that stat()ed the 176k files on my
disk and got the following best times with GetFileAttributesEx() and
FindFirstFile() respectively:

./getfattr.exe < filelist.txt  1.31s user 9.72s system 27% cpu 40.424 total
./findfirst.exe < filelist.txt  1.92s user 13.98s system 95% cpu 16.681 total

I searched the archive and found a couple of threads touching upon the
subject, but nothing conclusive.

I have a (trivial) patch ready if such a change would be interesting.

-- 
Magnus Bäck
baeck@swipnet.se

^ permalink raw reply

* Re: What's cooking in git.git (Mar 2009, #06; Sat, 21)
From: Wincent Colaiuta @ 2009-03-21 16:20 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git
In-Reply-To: <7vk56jfgt2.fsf@gitster.siamese.dyndns.org>

El 21/3/2009, a las 8:58, Junio C Hamano escribió:

> * da/difftool (Thu Mar 19 01:25:25 2009 -0700) 1 commit
> - difftool: move 'git-difftool' out of contrib

Before this one goes any further, I noticed that nobody replied to my  
email on this thread a few days ago:

http://article.gmane.org/gmane.comp.version-control.git/113609

My concern was:

> Given that git-difftool shares basically all the same options as  
> "git diff", I think a good long-term plan would be looking at adding  
> the "--tool" option to "git diff" itself so that users wouldn't have  
> to learn a new subcommand, just a new option.


What do people think?

Cheers,
Wincent

^ permalink raw reply

* Re: [PATCH] Respect core.autocrlf when preparing temporary files for   external diff
From: Michael J Gruber @ 2009-03-21 17:02 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git, gitster, Sebastian Schuberth
In-Reply-To: <8cb424b16f21164ddc26d0be3f6f7727254b3506.1237635609u.git.johannes.schindelin@gmx.de>

Johannes Schindelin venit, vidit, dixit 21.03.2009 12:42:
> When preparing temporary files for an external diff, the files should be
> handled as if they were worktree files.
> 
> This makes things consistent for the case when one side of the diff was
> found in the current working directory (and therefore creating a temporary
> file could be avoided altogether).
> 
> This fixes msysGit issue 177.
> 
> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> ---
>  diff.c                   |   13 ++++++++++---
>  t/t4020-diff-external.sh |   16 ++++++++++++++++
>  2 files changed, 26 insertions(+), 3 deletions(-)
> 
> diff --git a/diff.c b/diff.c
> index 75d9fab..699ae6a 100644
> --- a/diff.c
> +++ b/diff.c
> @@ -1946,17 +1946,23 @@ void diff_free_filespec_data(struct diff_filespec *s)
>  	s->cnt_data = NULL;
>  }
>  
> -static void prep_temp_blob(struct diff_tempfile *temp,
> +static void prep_temp_blob(const char *path, struct diff_tempfile *temp,
>  			   void *blob,
>  			   unsigned long size,
>  			   const unsigned char *sha1,
>  			   int mode)
>  {
>  	int fd;
> +	struct strbuf buf = STRBUF_INIT;
>  
>  	fd = git_mkstemp(temp->tmp_path, PATH_MAX, ".diff_XXXXXX");
>  	if (fd < 0)
>  		die("unable to create temp-file: %s", strerror(errno));
> +	if (convert_to_working_tree(path,
> +			(const char *)blob, (size_t)size, &buf)) {
> +		blob = buf.buf;
> +		size = buf.len;
> +	}
>  	if (write_in_full(fd, blob, size) != size)
>  		die("unable to write temp-file");
>  	close(fd);
> @@ -1964,6 +1970,7 @@ static void prep_temp_blob(struct diff_tempfile *temp,
>  	strcpy(temp->hex, sha1_to_hex(sha1));
>  	temp->hex[40] = 0;
>  	sprintf(temp->mode, "%06o", mode);
> +	strbuf_release(&buf);
>  }
>  
>  static struct diff_tempfile *prepare_temp_file(const char *name,
> @@ -2004,7 +2011,7 @@ static struct diff_tempfile *prepare_temp_file(const char *name,
>  				die("readlink(%s)", name);
>  			if (ret == sizeof(buf))
>  				die("symlink too long: %s", name);
> -			prep_temp_blob(temp, buf, ret,
> +			prep_temp_blob(name, temp, buf, ret,
>  				       (one->sha1_valid ?
>  					one->sha1 : null_sha1),
>  				       (one->sha1_valid ?
> @@ -2030,7 +2037,7 @@ static struct diff_tempfile *prepare_temp_file(const char *name,
>  	else {
>  		if (diff_populate_filespec(one, 0))
>  			die("cannot read data blob for %s", one->path);
> -		prep_temp_blob(temp, one->data, one->size,
> +		prep_temp_blob(name, temp, one->data, one->size,
>  			       one->sha1, one->mode);
>  	}
>  	return temp;
> diff --git a/t/t4020-diff-external.sh b/t/t4020-diff-external.sh
> index 281680d..f8c99f1 100755
> --- a/t/t4020-diff-external.sh
> +++ b/t/t4020-diff-external.sh
> @@ -136,4 +136,20 @@ test_expect_success 'GIT_EXTERNAL_DIFF with more than one changed files' '
>  	GIT_EXTERNAL_DIFF=echo git diff
>  '
>  
> +echo "#!$SHELL_PATH" >fake-diff.sh
> +cat >> fake-diff.sh <<\EOF
> +cat $2 >> crlfed.txt
> +EOF
> +chmod a+x fake-diff.sh
> +
> +keep_only_cr () {
> +	tr -dc '\015'
> +}
> +
> +test_expect_success 'external diff with autocrlf = true' '
> +	git config core.autocrlf true &&
> +	GIT_EXTERNAL_DIFF=./fake-diff.sh git diff &&
> +	test $(wc -l < crlfed.txt) = $(cat crlfed.txt | keep_only_cr | wc -c)
> +'
> +
>  test_done

Nice! This fixes also an issue I reported earlier: When
diff.foo.textconv is set, the textconv filter is fed with cleaned files
some times, with smudged files other times. Now it's always fed with
smudged files. Back then I even suspected crlf problems.

Michael

^ permalink raw reply

* How to go to git from svn without checkout
From: Mercedes6s @ 2009-03-21 17:02 UTC (permalink / raw)
  To: git


Hello.  I've been falling more and more in love with git and I want to move
our biggest project biggest it is my biggest pain over to git to make our
lives easier.  The problem is our project is about 50 gigs (A lot of media
files involved).  Also, we got developers all over the world that are
running on slow connections.  Some took a week to get the project up and
running in the first place.  Luckily, they are only isolated instances. 
What I'm wondering is can I have all of them turn their projects into git
repositories locally and have all of them sync with a master repository once
they are done.  The actual project is only about 500 megs and the changes
are probably only a few K since they keep their projects up to date, so
that's more acceptable, but I don't want them to bring down all those media
files again and I doubt they will be willing to do it.  Is this possible,
and how would I do it?  

thanks
-- 
View this message in context: http://www.nabble.com/How-to-go-to-git-from-svn-without-checkout-tp22638146p22638146.html
Sent from the git mailing list archive at Nabble.com.

^ permalink raw reply

* Re: [PATCH 2/2] Re: git-gui: some French translation enhancements
From: Mike Hommey @ 2009-03-21 17:26 UTC (permalink / raw)
  To: Nicolas Sebrecht
  Cc: Alexandre Bourget, Git List, Sam Hocevar, Christian Couder
In-Reply-To: <20090321101426.GB12971@vidovic>

On Sat, Mar 21, 2009 at 11:14:26AM +0100, Nicolas Sebrecht wrote:
> 
> On Fri, Mar 20, 2009 at 10:34:54AM -0400, Alexandre Bourget wrote:                                                                                                           
> >
> > Le vendredi 20 mars 2009 à 08:13 +0100, Mike Hommey a écrit :
> > > On Fri, Mar 20, 2009 at 01:54:02AM +0100, Nicolas Sebrecht wrote:
> > > IMHO, we should find a better way to say that than to use the "index"
> > > word at all. This obviously applies to all uses of "index" in french
> > > where we avoided it in english.
> > >
> > > OTOH, the best I can find for "staging area" is "zone de préparation",
> > > and that doesn't help finding a word for stage and unstage.
> >
> > "zone de préparation" sounds good to me.
> 
> I'm not sure we are doing more good than bad. The "index" is a
> technical's Git word which has its own sense in Git.
> 
> We could provide a pure "only french terms" translation but I'm not sure
> it's the best way to work in software translation.
> 
> "Index" is a one of theses terms having a "special meaning in place".
> It stands in English for "staging area" and could have the same meaning
> in french mainly because we don't have a good french word to that
> special use case.
> 
> "Index" as-is in the french po is NOT a non-sense. Also, french people
> newbie in Git would easily find help for the index (most websites are in
> english).

Except that the english version tends to move away from the "index"
term, in favour of "staging area", if my understanding of what was said
at GitTogether is right.

Mike

^ permalink raw reply

* Google Summer of Code 2009: GIT
From: saurabh gupta @ 2009-03-21 17:36 UTC (permalink / raw)
  To: git, Junio C Hamano, david
In-Reply-To: <ab9fa62a0903211031l78c7afadg9409a544f2bda7db@mail.gmail.com>

hi,

On Fri, Mar 20, 2009 at 5:12 AM, Johannes Schindelin
<Johannes.Schindelin@gmx.de> wrote:
> Hi,
>
> On Fri, 20 Mar 2009, saurabh gupta wrote:
>
>> On Thu, Mar 19, 2009 at 4:46 AM, Johannes Schindelin
>> <Johannes.Schindelin@gmx.de> wrote:
>>
>> > For example, if we decide that OOXML is a must (as it is a proper
>> > standard, and many people will benefit from it), we will most likely
>> > end up in having to write a merge _driver_ (to handle those .zip
>> > files), _and_ a merge _helper_, although we can avoid writing our own
>> > GUI, as we can create an OOXML that has its own version of conflict
>> > markers.
>>
>> Well, for ODF type document, we can write a merge driver which will
>> change the xml file in an appropriate way that OO can understand it and
>> the user can see the merge result/conflict in a comfortable way. As
>> described by Junio, in this case, a dedicated merge helper is not needed
>> as OO can parse the markers made by merge-driver and provide the user to
>> resolve the conflict and register the changes to index.
>
> There is also the idea that OOffice has building blocks in place to help
> resolving merge conflicts.  For a successful application, you will have to
> show that you researched that option, and describe how well/badly it fits
> with the goal of the project.

Exactly, I will have to do some research on it and I will come back to
you as I get over with my college's mid-semester exams (this week
more).

>> > - knowing what data types we want to support _at the least_, and what
>> >   data  types we keep for the free skate,
>>
>> As of now, how about going for XML files. For this summer, we can go for
>> XML files and latex files can be handled later.
>
> If your goal is just XML files (without any more specific goal, like ODF
> or SVG), I am afraid that I think that project is not worth 4500 dollar
> from Google's pocket.  I mean, we are not talking peanuts here.

Well, I didn;t mean to say that we will end up in only having a merge
driver for xml after the summer. We will definitely make the driver in
such a way to use the maximum power of xml manipulation so that the
end application can understand it and user can get the conflict
results in a user friendly manner because the end-user application wil
be able to parse the merged xml file and will present the conflict
markers in the GUI form.


>
>> > - a clear picture of the user interface we want to be able to provide,
>>
>> In my opinion, we have following things to do:
>>
>> => while merging an ODF document, merge-driver will merge the file at
>> file level. If changes don't overlap, then it returns the result with
>> a success. For example, if the file is changed only on one side, then
>> the driver will simply add the new content.
>>
>> => If conflicts appear, then the merge driver will put the markers in
>> an appropriate manner which the end-user application (e.g. open
>> office) can understand and show the user. For example, the XML file of
>> that ODF document will be modified and OO can show it  to user in its
>> way. We will have to study about the OO style of version marking.
>> Another method is to implement the marker style in our own way. For
>> example, to show any marker, the XML file is modified so that user can
>> see markers like ">>>> " or "====" in openoffice....In this case, we
>> will have to just change the xml content in this way.
>
> That is correct, but I would appreciate a bit more definitive research
> _before_ the project proposal, as a sign that you are capable of working
> out the details of the project.

I do understand your point and will work this.

>> > - a timeline (weekly milestones should be fine, I guess) what should
>> >   be  achieved when, and
>>
>> Timeline can be decided once we reach some conclusion and the work which
>> needs to be done become clear to us.

I meant to say that time line can decided after the list of works is
decided and discussed. Of course, I will present the timeline in my
student application in GSoC 2009. :)

> Do not get me wrong, I want this project to succeed.

I will try my best.

> But on the other hand, I feel the obligation to be a bit demanding for the
> gracious donation of Google: we _do_ want to have something stunningly
> awesome at the end of the summer.
>
> And that means that I have to get the impression from the student proposal
> that something like that is at least _possible_.
>
> Ciao,
> Dscho
>



--
Saurabh Gupta
Senior,
NSIT,New Delhi, India

^ permalink raw reply

* Re: Google Summer of Code 2009: GIT
From: saurabh gupta @ 2009-03-21 17:38 UTC (permalink / raw)
  To: david; +Cc: Johannes Schindelin, Junio C Hamano, git
In-Reply-To: <alpine.DEB.1.10.0903201337060.16753@asgard.lang.hm>

hi,

On Sat, Mar 21, 2009 at 2:20 AM,  <david@lang.hm> wrote:
> On Fri, 20 Mar 2009, Johannes Schindelin wrote:
>
>> On Thu, 19 Mar 2009, david@lang.hm wrote:
>>
>>> On Fri, 20 Mar 2009, Johannes Schindelin wrote:
>>>
>>>> I'd rather have more file types supported that are useful for the
>>>> average user, than a generic XML merge driver that is useful to only a
>>>> handful of people.
>>>
>>> we are both after the same thing,
>>
>> Apparently not...
>>
>>> the most use to the average user.
>>>
>>> you look at SVG, ODF word, ODF spreadsheet, OOXML, etc as completely
>>> seperate things that should have support developed seperatly.
>>
>> No.  I look at SVG, ODF text, ODF spreadsheet, etc as things with
>> completely different user interfaces.
>>
>> And likewise, the merge _helper_, the very thing the user will get to see,
>> must have different user interfaces.
>
> I absolutly agree with this. the UI and merge _helper_ tools for these
> different file formats are completely different.
>
>> And I see much more potential for this project to fail in those different
>> user interfaces than something as _trivial_ (in relation) as XML merging.
>
> and the key thing that I am saying is that a properly done XML merge may
> eliminate the need to do _any_ development of a merge helper tool.

I also think that if xml file merging is done in a proper way and
according to the end-user editor, then it will not be needed to work
on the GUI part. For example, to merge the ODF files, we need to study
the merge conflict structure of Openoffice and will have to modify the
xml file in the same way so that OO can understand it. Similarly for
other file types.

>
> so rather than focusing on what the merge helper tool is going to be and
> what the UI for that is, I am focusing on the potential to eliminate any
> need to hae a specific helper tool by making it so that the marked up files
> can be manipulated with the existing tools for that file type.
>
> David Lang
>



-- 
Saurabh Gupta
Senior,
NSIT,New Delhi, India

^ permalink raw reply

* Disallow amending published commits?
From: James Pickens @ 2009-03-21 17:56 UTC (permalink / raw)
  To: Git ML

I wanted to have a pre-commit hook that would prevent users from
amending a commit that had already been published, but I couldn't
find any way in the pre-commit hook to figure out if --amend was
used.  Is there a way to do that?  Or any better way to disallow
amending published commits?

Thanks
James

^ permalink raw reply

* Re: Disallow amending published commits?
From: Peter Harris @ 2009-03-21 18:46 UTC (permalink / raw)
  To: James Pickens; +Cc: Git ML
In-Reply-To: <885649360903211056u38ff6cabxbe1a17d57faaa0c4@mail.gmail.com>

On Sat, Mar 21, 2009 at 1:56 PM, James Pickens wrote:
> I wanted to have a pre-commit hook that would prevent users from
> amending a commit that had already been published, but I couldn't
> find any way in the pre-commit hook to figure out if --amend was
> used.  Is there a way to do that?  Or any better way to disallow
> amending published commits?

An amended commit will have a new SHA1, and therefore git will treat
it as an entirely different commit. Trying to push an amended history
is 'non fast forward' in git terminology, since it involves a rewind
of existing history.

Set receive.denyNonFastForwards if you don't want people to be able to
amend (or otherwise rewind) published history.

Peter Harris

^ permalink raw reply

* Re: What's cooking in git.git (Mar 2009, #06; Sat, 21)
From: David Aguilar @ 2009-03-21 18:58 UTC (permalink / raw)
  To: Wincent Colaiuta; +Cc: Junio C Hamano, git
In-Reply-To: <0768D909-FCD5-4E5B-95A7-2602824FC431@wincent.com>

On  0, Wincent Colaiuta <win@wincent.com> wrote:
> El 21/3/2009, a las 8:58, Junio C Hamano escribió:
>
>> * da/difftool (Thu Mar 19 01:25:25 2009 -0700) 1 commit
>> - difftool: move 'git-difftool' out of contrib
>
> Before this one goes any further, I noticed that nobody replied to my  
> email on this thread a few days ago:
>
> http://article.gmane.org/gmane.comp.version-control.git/113609
>
> My concern was:
>
>> Given that git-difftool shares basically all the same options as "git 
>> diff", I think a good long-term plan would be looking at adding the 
>> "--tool" option to "git diff" itself so that users wouldn't have to 
>> learn a new subcommand, just a new option.
>
>
> What do people think?
>
> Cheers,
> Wincent

That could be interesting.  git-difftool is just a
frontend to git-diff so there isn't really any maintenance
worries about keeping the options in sync.  I do agree that
keeping things easy for users is a noble goal and that that
was your only concern.

git-difftool is pure porcelain, so I'm interested in how we
could implement this.  Right now the call stack is:

$ git difftool
... GIT_EXT_DIFF=git-difftool-helper
... git diff
... ... git-difftool-helper
... ... ... xxdiff


What should it look like instead?

Are you envisioning this (1):

$ git diff --tool
... --tool was passed, so set GIT_EXT_DIFF?
... git-difftool-helper
... ... xxdiff ...


Or do you mean this? (2):

$ git diff --tool=xxdiff
... --tool was passed, so set GIT_EXT_DIFF?
... git-difftool-helper
... ... xxdiff


Or even... (3):

$ git diff --tool
... --tool was passed, delegate to git-diff--tool,
...        remove --tool from *argv
... git-diff--tool
... GIT_EXT_DIFF=git-diff--tool-helper
... git-diff
... ... git-diff--tool-helper
... ... ... xxdiff ...

(git-diff calls itself in this scenario...)


Right now users only specify --tool=<tool> as an override.

The default behavior without --tool is:
- difftool looks up diff.tool and uses that value, or
- difftool makes a best guess based on the environ

Hmm.. if --tool supported both '--tool' and '--tool=<tool>'
then that could work.  That would make '--tool' both a switch
and an option-with-argument.  Is there anything in git that
does that?  I can imaging that being a little surprising from
a ui point of view, but it's not horrible.

What about the --no-prompt option?
Would we need that in git-diff too, or would we be able to
blindly pass it along to git-diff--tool without worrying that
git-diff would try to interpret it?

I personally like the separation of concerns --
git-diff is plumbing and git-difftool is porcelain.
But, I also agree with making it easier for users.


That said...  (off-topic)

I have a patch for difftool that lets you do stuff like this:

	$ git difftool Makefile~3
	$ git difftool Makefile~~~ Makefile~

That is *completely* the antithesis of git because git is not
file-centric.  Nonetheless, this is something people ask me
all the time and users really hate the "right" way to do it:

	$ git difftool \
		$(git log --pretty=format:%H -3 Makefile |
			tail -1) \
		-- Makefile


The point here is that since git-difftool is a frontend to
git-diff I was actually able to implement it without changing
any of the core git commands (or extend its revision syntax).
This is both good and bad.  It's good because users are much
happier using the extended file-rev syntax, and it's bad
because git-diff doesn't know about it.

What it illustrates, though, is that the separation of
concerns between the porcelain git-difftool and plumbing
git-diff is helpful specifically because it makes such things
possible.

The really cute thing, though, is that
	$ git difftool --no-ext-diff Makefile~3

...actually makes it so that git-diff understands the new
syntax.  It's quite a clever hack.  It's user-friendly
and extremely helpful, which is why I entertained the
notion of implementing it.  It basically transforms user intent
"give me Makefile from 3 changes ago back" into something that
git-diff understands, which is in my opinion the whole point of
porcelains.

That said.. it would be really user-friendly if diff and
friends understood the extended file-rev syntax directly, but
being that it overloads the '~' character and "looks" just
like a rev-parse revision specifier, I don't even know if its:

	a. possible, or
	b. something we'd want given that git is
	   commit-centric, not file-centric.

I should really start a second thread about the file-rev
syntax because I made it out of thin air and it's exactly the
kind of thing that the wisdom of the list can help vet.


An interesting thing is that users have been mailing me
directly with questions about difftool and I really want to
use the full potential of the community, which I think will
come naturally with the move out of contrib.

So.. I agree in principle but also think it wouldn't hurt to
go forward with moving git-difftool out of contrib so that we
can get more user feedback.  I also think that a scheme most
similar to (3) above seems like an interesting way to go and
would be interested to hear if it's what you envisioned.


I hope I didn't just muddy the waters further =)

Have fun,

-- 

	David

^ permalink raw reply

* Re: [PATCH v2 1/2] git-gui: various French translation fixes
From: Christian Couder @ 2009-03-21 18:57 UTC (permalink / raw)
  To: Nicolas Sebrecht; +Cc: spearce, alexandre.bourget, mh, sam, nico, git
In-Reply-To: <7102a296e91c8602c200b1431a74c7eb6592146e.1237646585.git.nicolas.s-dev@laposte.net>

Le samedi 21 mars 2009, Nicolas Sebrecht a écrit :
> From: Sam Hocevar <sam@zoy.org>
>
> Mostly grammar, spelling and typography fixes, but also a few wording
> enhancements here and there.
>
> Signed-off-by: Sam Hocevar <sam@zoy.org>
> Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>

[...]

>  #: git-gui.sh:2484 lib/index.tcl:410
>  msgid "Revert Changes"
> -msgstr "Annuler les modifications (revert)"
> +msgstr "Révoquer les modifications"

Thanks but as I said in another email, I'd prefer a new patch from Sam 
without the changes like the above one, (But with "(revert)" removed.)

Regards,
Christian.

^ permalink raw reply

* Re: What's cooking in git.git (Mar 2009, #06; Sat, 21)
From: Junio C Hamano @ 2009-03-21 19:28 UTC (permalink / raw)
  To: Wincent Colaiuta; +Cc: git
In-Reply-To: <0768D909-FCD5-4E5B-95A7-2602824FC431@wincent.com>

Wincent Colaiuta <win@wincent.com> writes:

>> Given that git-difftool shares basically all the same options as
>> "git diff", I think a good long-term plan would be looking at adding
>> the "--tool" option to "git diff" itself so that users wouldn't have
>> to learn a new subcommand, just a new option.
>
> What do people think?

I am not "people" but since I was "To:"ed not "Cc:"ed...

I did not comment on it because personally I was not very interested in
it; admittedly, I do not use difftool myself, but:

 (1) "git diff --tool" is more to type than "git difftool"; and

 (2) it requires adding more code to "git diff" for a dubious benefit from
     end user's point of view.

"git diff" itself is already just a thin command dispatcher that calls
underlying vastly different modes operations, and it is designed that way
in order to make it easy to add a new totally different mode of operation.

We originally had four underlying modes of operation (index-with-worktree,
tree-with-tree, tree-with-worktree, and tree-with-index), and Dscho
managed to add random-file-with-random-file without disturbing existing
codepaths too much.

Even though it is a "thin" dispatcher, command line parsing is largely
done by "git diff" itself, and its results are fed to the underlying modes
of operations, for two reasons:

 (1) These "modes of operations" share large set of options (e.g. "-U20"
     works the same way no matter which mode you invoke); and

 (2) the dispatcher needs to inspect command line option and arguments to
     decide which mode to invoke anyway.

When an end user says "I want to compare two things with these settings
(e.g. use color, with 5 lines of context, only inside Documentation/howto
directory, detect renames with lower-than-usual threashold, ...)", the
mental model is same whether the two things being compared happens to be
index-vs-worktree or tree-vs-index from the end user's point of view.  It
makes a lot of sense for "git diff --options" to invoke both modes of
operations with a similar-looking command line.

Even though the --no-index mode of operation internally does not fit very
well compared to the original four modes from the implementation point of
view, it still naturally fits the end user's mental model and that is why
it is given as an option to "git diff".

Does "git difftool" fit well in the end user's mental model in a similar
way to "git diff"?  I somehow suspect it doesn't.  What does it mean to
give "-U8 --color --stat --summary -p --ignore-space-at-eol" options when
you invoke it, for example?

^ permalink raw reply

* Re: [PATCH] Respect core.autocrlf when preparing temporary files for external diff
From: Junio C Hamano @ 2009-03-21 19:35 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git, Sebastian Schuberth
In-Reply-To: <8cb424b16f21164ddc26d0be3f6f7727254b3506.1237635609u.git.johannes.schindelin@gmx.de>

Johannes Schindelin <johannes.schindelin@gmx.de> writes:

> When preparing temporary files for an external diff, the files should be
> handled as if they were worktree files.

I do not think so.  convert_to_working_tree() aka "smudge" means you would
be feeding crap like $Id$ expansion to the external diff, which we chose
not to do quite on purpose.

I think the right solution is to filter inside GIT_EXTERNAL_DIFF *if* the
diff tool you are dispatching into from the external diff script wants to
take smudged representation.  I know we don't have such a command right
now, but something like

	git filter --take-attr-for-path=$path --direction=out <clean >smudged
	git filter --take-attr-for-path=$path --direction=in >clean ><mudged

to invoke convert_to_working_tree() and convert_to_git() filters would be
sufficient.

^ permalink raw reply

* Re: Implementing stat() with FindFirstFile()
From: Johannes Sixt @ 2009-03-21 19:55 UTC (permalink / raw)
  To: Magnus Bäck; +Cc: git
In-Reply-To: <20090321154738.GA27249@jeeves.jpl.local>

On Samstag, 21. März 2009, Magnus Bäck wrote:
> Is there any reason why compat/win32.h uses GetFileAttributesEx()
> instead of FindFirstFile() to implement the stat() call on Windows?
> The current implementation requires each queried file to be opened
> and closed while FindFirstFile() only reads the directory.

There is: File times are extremely important for git. Unfortunately, MS's 
implementation of stat and utime are broken, and they do use FindFirstFile(). 
Read up on the topic here:

http://search.cpan.org/~shay/Win32-UTCFileTime-1.50/lib/Win32/UTCFileTime.pm

To quote the important sentence:

"The problem with Microsoft's stat(2) and utime(2) [...] is basically this: 
file times reported by stat(2) or stored by utime(2) may change by an hour as 
we move into or out of daylight saving time (DST) if the computer is set 
to "Automatically adjust clock for daylight saving changes" [...]."

Be sure to read section "Background Reference".

Besides that, our stat() implementation is already ca. twice as fast as 
MSVCRT's stat(). (Thank you, Marius!)

-- Hannes

^ permalink raw reply

* How to go to git from svn without checkout
From: Mercedes6s @ 2009-03-21 20:25 UTC (permalink / raw)
  To: git


Hello.  I've been falling more and more in love with git and I want to move
our biggest project because it is my biggest pain over to git to make our
lives easier.  The problem is our project is about 50 gigs (A lot of media
files involved).  Also, we got developers all over the world that are
running on slow connections.  Some took a week to get the project up and
running in the first place.  Luckily, they are only isolated instances. 
What I'm wondering is can I have all of them turn their projects into git
repositories locally and have all of them sync with a master repository once
they are done.  The actual project is only about 500 megs and the changes
are probably only a few K since they keep their projects up to date, so
that's more acceptable, but I don't want them to bring down all those media
files again and I doubt they will be willing to do it.  Is this possible,
and how would I do it?  

thanks
-- 
View this message in context: http://www.nabble.com/How-to-go-to-git-from-svn-without-checkout-tp22640020p22640020.html
Sent from the git mailing list archive at Nabble.com.

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox