Re: git merge and GNU gettext po files - how to avoid conflicts?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



David Bruce <davidstuartbruce@xxxxxxxxx> writes:

> First of all, is this list suitable for git usage questions as opposed
> to git development?  If not, what list is more appropriate?

Yes, it is appropriate list.
 
> Assuming this is an appropriate list, here is the issue:
> 
> The .po files used by gettext are largely human-generated, so they
> need to be under scm control.  However, they are also programatically
> altered when certain make targets are run.  When this happens, a line
> in the .po file gets updated with timestamp info (not talking about a
> filesystem timestamp here, but a change in the text file).  So, if two
> branches have been worked on for a while and the updated .po files
> have been committed in each branch, they will generate conflicts when
> a merge is attempted.  Since our programs have lots of translations,
> it is a pain to resolve all the conflicts by hand. What is a good way
> to avoid this in git? My thought would be:
> 1. generate a diff between the .po files in the po/ directories of the
> two branches, e.g.
> (assuming we are trying to merge a branch named "feature" back with master):
> git diff master feature po/*.po
> 
> and look to see if any differences are these innocuous, autogenerated
> differences.  Perhaps some other type of diff would be more useful,
> such as diffs from a common ancestor?
> 
> 2. If the diff shows that one of the branches has no changes in
> po/*.po that need to be kept, is there a way to tell git to "merge
> feature with master, but for po/*.po differences just use the file
> from feature instead of generating conflicts".  Or, should I just
> manually copy all the *.po files from one branch into the other branch
> and commit them prior to attempting the merge?

3. Create a merge driver intended specially for merging *.po files,
   just like there exists (in the wild) the strategy to merge ChangeLog
   files.  Then use gitattributes mechanism to associate this merge
   strategy with *.po files via `merge' attribute.

   But it might be not easy...

-- 
Jakub Narebski
Poland
ShadeHawk on #git
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]