Hi everyone

(I'm including OOo here, because you might want to use Mercurial with Pootle)

The version control system in Pootle does not work well with distributed version control systems (git, Mercurial, Bazaar, Darcs).

We have a proposed solution and would like feedback.

**

When a user updates a file from version control in Pootle, Pootle:
1. loads the file into memory (call this A),
2. reverts the file to the version that was checked out from the version control repository,
3. updates the file from the version control repository,
4. loads the updated file into memory (call this B),
5. merges A and B based on translation unit changes,
6. stores the resulting file.

This system works for systems like CVS and Subversion, which allow individual files to be updated.

**

Now consider what happens if we have two modified files - file_1.po and file_2.po - in our Pootle project.

The user attempts to update file_1.po.

Pootle:
1. loads file_1.po into memory,
2. reverts file_1.po to the version that was checked out from the version control repository,
3. updates file_1.po from the version control repository,
4. BREAKS

This won't work, because file_2.po is modified; making it impossible to reliably pull new revisions from the version control repository.

**

Our solution is to keep two project directories:
1. The Pootle project directory,
2. The version control project directory.

In this way, Pootle will always be able to update the version control directory. It can also update individual files as the need arises.

**

This solution seems wasteful, but there is a good reason: at some point, we *might* (don't take this as a commitment) want to store the projects in a database. Then it will be necessary to have external version control directories to do merging.

**

Opinions? Alternative suggestions?

Cheers
Wynand

P.S. Suresh, I'm looking at your patch; in fact, I realized the issue when looking at the version control code.

begin:vcard
fn:Wynand Winterbach
n:Winterbach;Wynand
org:Translate.org.za
adr:Groenkloof;;63A Wenning Street;Pretoria;Gauteng;0181;South Africa
email;internet:[EMAIL PROTECTED]
title:Associate
tel;work:+27 12 460 1095
tel;fax:+27 12 460 1095
tel;cell:+27 84 268 5340
x-mozilla-html:FALSE
url:http://www.translate.org.za
version:2.1
end:vcard

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Translate-pootle mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/translate-pootle

Reply via email to