git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH 10/25] gettextize: git-merge basic messages
Date: Thu, 2 Sep 2010 18:04:10 -0500	[thread overview]
Message-ID: <20100902230410.GA4850@burratino> (raw)
In-Reply-To: <AANLkTinvvZ9eVxQXafYBDfSe8ay11mFz4s1=mDozbs14@mail.gmail.com>

Ævar Arnfjörð Bjarmason wrote:

> I can't see why translations in the tree (in po/) should be any
> trouble at all for us. What sort of issues do you see that the sed.git
> model might solve?

Only two: log noise and the problem of what to base patches on.

As you noticed while gettextizing (which is pretty much a one-time
thing), it is not much fun to do work on strings that aren't even
going to be used.  So translators might want to work against "next",
or at least "master".  How do the translations get back to "maint"?
Someone has to backport them.  What happens when we merge back to
"master"?

Now multiply that by the number of translations.  Making messages
merge up nicely with git tools as they drift from topic to topic if
translators want to keep both "maint" and "master" translated would
require at least a nice custom merge driver.  

As we noticed before, the .po files are partially automatically
generated anyway.  Merging them as text makes about as much sense
as merging Word-generated .rtf files as text.  To avoid wasting time,
one wants to be able to work with their _content_.

What is that content?

It is a set of key/value pairs: for each string that appears in
the codebase (maybe together with disambiguating translators' notes),
what the translation is for it.  Merging that between branches of the
code base is utterly trivial: take the union.  Actually "merging" as
an operation here does not make sense.  It is not tied to the
development history at all!

Imagine v6.0.0 of git has message "foo".  v6.0.1 changes it to "bar"
because "foo" is not actually true yet, v6.1.0 changes it back to
"foo".  Imagine a linear development history.  Do we want translation
diffs like this:

 commit v6.0.0

 +"foo" is "hello" in language X

 commit v6.0.1

 -"foo" is "hello" in language X
 +"bar" is "goodbye" in language X

 commit v6.1

 -"bar" is "goodbye" in language X
 +"foo" is "hello" in language X

?  But what really happened is this:

 - add foo:hello to translation database
 - add bar:goodbye to translation database

I have been thinking about how to write a merge driver for .po files
(and avoid the tedious merge problems that e.g. the dpkg project runs
into periodically) but the idea of avoiding that altogether is very
appealing to me.

  reply	other threads:[~2010-09-02 23:06 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-01 20:43 [PATCH 00/13] gettextize the first 4 C mainporcelain common commands Ævar Arnfjörð Bjarmason
2010-09-01 20:43 ` [PATCH 01/13] git-clone: use builtin.h to get gettext.h Ævar Arnfjörð Bjarmason
2010-09-01 20:43 ` [PATCH 02/13] gettextize: git-clone basic messages Ævar Arnfjörð Bjarmason
2010-09-01 20:43 ` [PATCH 03/13] gettextize: git-clone "Cloning into" message Ævar Arnfjörð Bjarmason
2010-09-01 20:43 ` [PATCH 04/13] gettextize: git-add basic messages Ævar Arnfjörð Bjarmason
2010-09-01 20:43 ` [PATCH 05/13] gettextize: git-add refresh_index message Ævar Arnfjörð Bjarmason
2010-09-02  4:21   ` Jonathan Nieder
2010-09-01 20:43 ` [PATCH 06/13] gettextize: git-branch basic messages Ævar Arnfjörð Bjarmason
2010-09-01 20:43 ` [PATCH 07/13] gettextize: git-branch "remote branch '%s' not found" message Ævar Arnfjörð Bjarmason
2010-09-01 20:44 ` [PATCH 08/13] gettextize: git-branch "git branch -v" messages Ævar Arnfjörð Bjarmason
2010-09-01 20:44 ` [PATCH 09/13] gettextize: git-branch "(no branch)" message Ævar Arnfjörð Bjarmason
2010-09-01 20:44 ` [PATCH 10/13] gettextize: git-checkout: our/their version message Ævar Arnfjörð Bjarmason
2010-09-01 20:44 ` [PATCH 11/13] gettextize: git-checkout basic messages Ævar Arnfjörð Bjarmason
2010-09-01 20:44 ` [PATCH 12/13] gettextize: git-checkout describe_detached_head messages Ævar Arnfjörð Bjarmason
2010-09-01 20:44 ` [PATCH 13/13] gettextize: git-checkout "Switched to a .. branch" message Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 00/25] [CONTINUED] gettextize all C mainporcelain common commands Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 01/25] gettextize: git-commit basic messages Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 02/25] gettextize: git-commit formatting messages Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 03/25] gettextize: git-commit advice messages Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 04/25] gettextize: git-diff basic messages Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 05/25] gettextize: git-fetch " Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 06/25] gettextize: git-fetch formatting messages Ævar Arnfjörð Bjarmason
2010-09-02 19:59   ` Jonathan Nieder
2010-09-02 20:13     ` Ævar Arnfjörð Bjarmason
2010-09-02 20:28     ` Jeff King
2010-09-02 20:48       ` Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 07/25] gettextize: git-grep basic messages Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 08/25] gettextize: git-log " Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 09/25] gettextize: git-format-patch --cover-letter message Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 10/25] gettextize: git-merge basic messages Ævar Arnfjörð Bjarmason
2010-09-02 20:09   ` Jonathan Nieder
2010-09-02 20:30     ` Ævar Arnfjörð Bjarmason
2010-09-02 20:37       ` Jonathan Nieder
2010-09-02 20:54         ` Ævar Arnfjörð Bjarmason
2010-09-02 21:13           ` Jonathan Nieder
2010-09-02 22:45             ` Ævar Arnfjörð Bjarmason
2010-09-02 23:04               ` Jonathan Nieder [this message]
2010-09-03 12:13                 ` Ævar Arnfjörð Bjarmason
2010-09-03 17:51                   ` Jonathan Nieder
2010-09-03 18:06                     ` Ævar Arnfjörð Bjarmason
2010-09-03 13:01         ` Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 11/25] gettextize: git-merge "In-index merge" message Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 12/25] gettextize: git-merge "Merge made by %s." message Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 13/25] gettextize: git-merge remaining cmd_merge messages Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 14/25] gettextize: git-mv basic messages Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 15/25] gettextize: git-mv "bad" messages Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 16/25] gettextize: git-rm basic messages Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 17/25] builtin: use builtin.h in git-reset Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 18/25] gettextize: git-reset basic messages Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 19/25] gettextize: git-reset reset_type_names messages Ævar Arnfjörð Bjarmason
2010-09-15 11:17   ` Peter Krefting
2010-09-15 15:50     ` Thomas Rast
2010-09-02 19:40 ` [PATCH 20/25] gettextize: git-tag basic messages Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 21/25] gettextize: git-tag tag_template message Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 22/25] gettextize: git-push basic messages Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 23/25] builtin: use builtin.h in git-status Ævar Arnfjörð Bjarmason
2010-09-02 19:40 ` [PATCH 24/25] gettextize: git-status basic messages Ævar Arnfjörð Bjarmason
2010-09-02 20:28   ` Jonathan Nieder
2010-09-02 20:41     ` Ævar Arnfjörð Bjarmason
2010-09-02 20:47       ` Jonathan Nieder
2010-09-02 19:40 ` [PATCH 25/25] gettextize: git-status shortstatus messages Ævar Arnfjörð Bjarmason
2010-09-02 20:25   ` Jonathan Nieder
2010-09-02 20:34     ` Ævar Arnfjörð Bjarmason

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100902230410.GA4850@burratino \
    --to=jrnieder@gmail.com \
    --cc=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).