Translations/Specs/UpstreamImportIntoUbuntu/FixingIsImported/setCurrentTranslation

Not logged in - Log In / Register

Revision 4 as of 2010-03-25 22:48:46

Clear message

Setting a translation

Assumptions

We're not setting a translation that's identical to the current one.

We've checked that lock_timestamp is newer than the last update date.

A diverged message cannot be both the current Ubuntu message and the current upstream message. Those would be diverged in different templates.

When we look for an "identical" message, we look for ones that are either shared or diverged in the same template that we're looking at. We completely ignore messages that are diverged to other templates.

What happens to the existing current message

A: Deactivate & converge.

B: Deactivate.

What happens to the new current message

1. create TM 'new'

2. create TM 'new'

3. create TM 'new'

4. new.is_current = True

5. if new.is_current: pass

6. new.is_current = True

7. new.potemplate = None (watch for existing identical TM)

8. new.is_current = True

⊕. MERGING POLICY determines if we need to do:

Execution matrix

                +-------------------------------------+
                |     IDENTICAL EXISTING TM 'new'     |
                +------+--------+----------+----------+
                |      |        |          | upstream |
                | None | shared | diverged |  shared  |
 +---+----------+---------------+----------+----------+
 | C |  None    |  Z1⊕ |   Z4⊕  |    Z7⊕   |    Z4⊕   |
 | U +----------+------+--------+----------+----------+
 | R |  shared  |  B1  |   B4   |    B7    |    B4    |
 | R +----------+------+--------+----------+----------+
 | E | diverged |  A2  |   A5   |    A4    |    A5    |
 | N +----------+------+--------+----------+----------+
 | T | upstream |  B1⊕ |  B4⊕   |    B7⊕  |    ∅     |
 |   |  shared  |      |        |          |          |
 +---+----------+------+--------+----------+----------+

Notes

A diverged message can mask a similar shared message as well. We tried to take this into account throughout, and believe we covered it. Conditionals in the numbered parts ("what happens to the new current message") may warrant splitting rows or columns later.

Karma is being handled.