launchpad-dev team mailing list archive
-
launchpad-dev team
-
Mailing list archive
-
Message #03302
Re: UI RFD: branches that haven't been pushed to
У сре, 28. 04 2010. у 16:03 +1000, Martin Pool пише:
> To me, the translation exporter is creating a branch that can be
> looked at and or merged, in much the same way that a third-party
> contributor can do. It shouldn't be creating new empty branches and
> it shouldn't be writing in to branches owned by someone else.
Except it's very natural for people to want to not do anything and get
their translations in their own branches: and merging them by hand is
too much for some people (yes, just like people want to integrate tarmac
with Launchpad, they want other things to happen automatically).
Translation PO files might seem like actual source code, but they don't
really work well with version control. They have a lot of metadata
around useful data (translations) that may be changed and merging would
be a nightmare. For instance, every msgid in the PO file has a source
code reference which includes the line number where it appears. Add an
empty line to one of your source files, and that and all other
references to that file will change. You've got yourself a conflict (or
more often, a million of them).
> It should make its own branch and then invite people to look at it or
> merge from it. This seems to avoid many questions about users pushing
> to it etc.
So, translation exporter overwrites PO files in your target branch.
That saves you the trouble of having to worry about resolving conflicts
yourself because this is most likely how you'd resolve them anyway (by
just using a "better" copy to overwrite the existing file).
Thus, the question remains. If PO files were completely manually
maintained, it would have been much simpler. But they are instead a
mixture of generated data and human input.
Cheers,
Danilo
References