Hello, this is my question: Recently, two of our translation team members (I and another member) accidentaly worked on the same .po file. I didn't notice that he has already "Take"n the file. Sometime after, I did a "cvs up" and our translations didn't match. So I had some lines in the file which pointed my version and his versio delimited by ">>>>> his trans ===== my trans <<<<<<" and so on. It was hard to remove them manually, since a lot of work has been done. I solved this by deleting the .po file and did a "cvs up" again, which downloaded his version only. Is there a way to overwrite my changes when updating using some cvs commands?
Thanks
On Tue, 2004-07-27 at 03:22, Томислав Марковски wrote:
Hello, this is my question: Recently, two of our translation team members (I and another member) accidentaly worked on the same .po file. I didn't notice that he has already "Take"n the file. Sometime after, I did a "cvs up" and our translations didn't match. So I had some lines in the file which pointed my version and his versio delimited by ">>>>> his trans ===== my trans <<<<<<" and so on. It was hard to remove them manually, since a lot of work has been done. I solved this by deleting the .po file and did a "cvs up" again, which downloaded his version only. Is there a way to overwrite my changes when updating using some cvs commands?
Thanks
Hi,
CVS was designed to help developers working on the same file at the same time. Concurrency is the key in CVS.
There were problems with your translation because the wrong operation was done. Both translators "uploaded" without checking the existence of changes in CVS repository.
To avoid conflicts, the right procedure is:
1. checkout a module/file 2. work on the module/file and make all desired changes 3. compare modified module/file with latest version in CVS 4. if someone made changes in CVS after the file was checked out, perform a merge operation 5. commit modified/merged module/file to CVS repository
Step 4 is the one you didn't do.
There are very nice graphical tools that can be used with CVS. Eclipse (http://www.eclipse.org) will let you know when someone committed a file before you finished your changes. It can also assist you performing the necessary merge, avoiding those >>>>>, ==== and <<<< that ruined your file.
As a matter of fact, it wasn't necessary at all to add take/release mechanism in the web site to avoid concurrent translations. CVS can handle that.
Hope this helps, Rodolfo
On Tue, 2004-07-27 at 08:20, Томислав Марковски wrote:
Step 4 is the one you didn't do.
How do you merge?
I use Eclipse for all CVS access. When a conflict is found, I open the file in a compare editor and copy the relevant changes from CVS to the local version. Once everything is cleared, I mark the file as merged and then commit.
If you are not working within a comfortable graphical tool, you can verify if there are conflicts using "cvs -n" option before committing. In case of conflicts, you can use "cvs rdiff" and "cvs diff" to compare your local copy against the one in the repository.
If you detect a conflict, you can checkout the offending module from CVS and do a split diff with VIM. It will highlight the differences and will help you detect what needs review.
Anyway, it's a lot easier to use a graphical tool.
Regards, Rodolfo
Rodolfo M. Raya wrote:
Anyway, it's a lot easier to use a graphical tool.
Yeah, it is. But I was wondering if there was an automated way to resolve conflicts. Searching through the manual, I found that this has to be done by hand, which is very tiresome if many strings have conflicts. Thanks for your help, anyway.
On dt, 2004-07-27 at 13:57, Томислав Марковски wrote:
Rodolfo M. Raya wrote:
Anyway, it's a lot easier to use a graphical tool.
nooooo! 8)
Yeah, it is. But I was wondering if there was an automated way to resolve conflicts. Searching through the manual, I found that this has to be done by hand, which is very tiresome if many strings have conflicts. Thanks for your help, anyway.
I use msgmerge:
$ cvs update old.po $ msgmerge new.po old.po (this will output to standard output, you can use "-o output_file" too)
CVS doesn't know a thing about the structure of a PO file, but msgmerge does, so you can rely better on it.
/Josep
Hi,
If you are using KBabel; Setting => Dictionary setting => PO compendium Set your .po file as it's path. Close KBable once, restart and open his file downloaded from cvs. You can see your translation (per msgid) in the serching tab located in right hand side. Highlight the serching result and click "Copy serching result into msgstr" button in the tool bar. Since exact matching (100%) with msgid appearing at the top highlighted in the tab, only you have to do is click "Copy serching result into msgstr" for each string. eg. you have 50 changes, click 50 times. This also allows you to compare his translation conflicted and decide which is prefarable for you.
Finally you commit the file. Hope this help.
Noriko
Томислав Марковски wrote:
Hello, this is my question: Recently, two of our translation team members (I and another member) accidentaly worked on the same .po file. I didn't notice that he has already "Take"n the file. Sometime after, I did a "cvs up" and our translations didn't match. So I had some lines in the file which pointed my version and his versio delimited by ">>>>> his trans ===== my trans <<<<<<" and so on. It was hard to remove them manually, since a lot of work has been done. I solved this by deleting the .po file and did a "cvs up" again, which downloaded his version only. Is there a way to overwrite my changes when updating using some cvs commands?
Thanks
-- Fedora-trans-list mailing list Fedora-trans-list@redhat.com http://www.redhat.com/mailman/listinfo/fedora-trans-list
On сре, 2004-07-28 at 04:49, Noriko Mizumoto wrote:
If you are using KBabel; Setting => Dictionary setting => PO compendium Set your .po file as it's path. Close KBable once, restart and open his file downloaded from cvs. You can see your translation (per msgid) in the serching tab located in right hand side. Highlight the serching result and click "Copy serching result into msgstr" button in the tool bar. Since exact matching (100%) with msgid appearing at the top highlighted in the tab, only you have to do is click "Copy serching result into msgstr" for each string. eg. you have 50 changes, click 50 times. This also allows you to compare his translation conflicted and decide which is prefarable for you.
Thanks a lot. I guess this is what I was looking for.