views:

178

answers:

2

I have a multi-column text file ( tab delimited ) that I use for localized text in my project.

I picked this format since it can easily be edited by anyone in most text editors (and excel too).

My makefile processes it into a bunch of defines and binary data for including directly into my app.

Do you know if SVN merge only does line by line merging or can it so sub-line merging too?

For example:

Original File ( untranslated ) contains:

DEFINE         ENGLISH  GERMAN   FRENCH
STRING_YES     YES      *YES*    *YES*
STRING_NO      NO       *NO*     *NO*

Then the french tranlator updates it:

DEFINE         ENGLISH  GERMAN   FRENCH
STRING_YES     YES      *YES*    OUI
STRING_NO      NO       *NO*     NON

Then the german tranlator updates it:

DEFINE         ENGLISH  GERMAN   FRENCH
STRING_YES     YES      JA       *YES*
STRING_NO      NO       NEIN     *NO*

Then they both merge the results back int SVN, so will they overwrite each others changes or can it handle mulitple changes on a line?

+3  A: 

It is line by line.

  1. The person who tries to commit later will get 'out of date' error, and when they try to update it, they will get a conflict in changed lines.
  2. Same with the merge. The one who merges later will have to sort out conflicts manually.
Alex B
is there any automated way in SVN for them to resolve the conflict without losing changes or manually copying the conflicted strings across?
KPexEA
Unfortunately, no. That's my major pain when merging vcproj file changes.
Alex B
A: 

SVN merge is line by line, so in the situation you outline, conflicts would be created and would have to be merged by hand. However, with decent merge tools, the translators themselves could probably handle this - the tools can show differences character by character.

TortoiseSVN is the de facto Windows SVN client, which includes TortoiseMerge (screenshot).

There are several merge tools in Linux, Meld being my current (gnome) favorite.

There are also several Mac clients that I'd expect to have this feature.

Nate Green