> On Jun 28, 2018, at 4:34 PM, Jeff King <p...@peff.net> wrote:
>
> On Thu, Jun 28, 2018 at 02:44:47AM +0000, brian m. carlson wrote:
>
>> On Wed, Jun 27, 2018 at 07:54:52AM +0000, Steve Groeger wrote:
>>> We have common code that is supposed to be usable across different
>>> platforms and hence different file encodings. With the full support of the
>>> working-tree-encoding in the latest version of git on all platforms, how do
>>> we have files converted to different encodings on different platforms?
>>> I could not find anything that would allow us to say 'if platform = z/OS
>>> then encoding=EBCDIC else encoding=ASCII'. Is there a way this can be
>>> done?
>>
>> I don't believe there is such functionality. Git doesn't have
>> attributes that are conditional on the platform in that sort of way.
>> You could use a smudge/clean filter and adjust the filter for the
>> platform you're on, which might meet your needs.
>
> We do have prior art in the line-ending code, though. There the
> attributes say either that a file needs a specific line-ending type
> (which is relatively rare), or that it should follow the system type,
> which is then set separately in the config.
>
> I have the impression that the working-tree-encoding stuff was made to
> handle the first case, but not the second. It doesn't seem like an
> outrageous thing to eventually add.
>
> (Though I agree that clean/smudge filters would work, and can even
> implement the existing working-tree-encoding feature, albeit less
> efficiently and conveniently).
Thanks for the suggestion Peff!
How about this:
1) We allow users to set the encoding "auto". Example:
*.txt working-tree-encoding=auto
2) We define a new variable `core.autoencoding`. By default the value is
UTF-8 (== no re-encoding) but user can set to any value in their Git config.
Example:
git config --global core.autoencoding UTF-16
All files marked with the value "auto" will use the encoding defined in
`core.autoencoding`.
Would that work?
@steve: Would that fix your problem?
- Lars