threads / discuss / 23270

Dealing with mac linefeeds in git repository

Subject: Dealing with mac linefeeds in git repository

## tl;dr

3 messages between Mar 31, 2010 and Apr 1, 2010.

replies: 2people: 2as markdown or json

jussi.sirpoma@sks.fi· Mar 31, 2010, 13:07 UTC · lore
I am running cygwin git version 1.6.4.2.

Some of the source code for our projects is encoded in mac linefeeds due to proprietary software platform. My current solution is to flag those files tu use no linefeed conversion and to use separate diff program by having this in .gitattributes:

*.BA -crlf diff=winmerge
I also have these crlf settings enabled:

core.autocrlf=true core.safecrlf=true

This solution works, but is not optimal as git cannot follow the changed lines, produce annotations or diffs. Now I am wondering if I could make git work with a little different configuration:

* The *.BA files with mac linefeeds would be stored with normal linux 
linefeeds
* The files would be converted on checkout to mac linefeeds the same way 
as core.autcrlf works
Is this doable or even a good approach?
- Jussi Sirpoma
Ilari Liusvaara· Mar 31, 2010, 14:16 UTC · re: jussi.sirpoma@sks.fi · lore

Re: Dealing with mac linefeeds in git repository

On Wed, Mar 31, 2010 at 04:07:40PM +0300, jussi.sirpoma@sks.fi wrote:
Show 7 quoted lines
> I am running cygwin git version 1.6.4.2.
> 
> Some of the source code for our projects is encoded in mac linefeeds due 
> to proprietary
> software platform. My current solution is to flag those files tu use no 
> linefeed conversion and
> to use separate diff program by having this in .gitattributes:
Show 10 quoted lines
> annotations or diffs. Now I am wondering if I could make git work with a 
> little different 
> configuration:
> 
> * The *.BA files with mac linefeeds would be stored with normal linux 
> linefeeds
> * The files would be converted on checkout to mac linefeeds the same way 
> as core.autcrlf works
> 
> Is this doable or even a good approach?
 
AFAIK, its doable. One can specify filter programs to be executed when
checking out / adding files. That program could do CR <-> LF translation.
See filter attribute in man gitattributes.
-Ilari
jussi.sirpoma@sks.fi· Apr 1, 2010, 13:19 UTC · re: Ilari Liusvaara · lore

Re: Dealing with mac linefeeds in git repository

Thank you Ilari,
The filter approach seems to work nicely.

git config --global filter.maclinefeed.smudge 'tr \\n \\r' git config --global filter.maclinefeed.clean 'tr \\r \\n'

With suitable filter and -crlf settings in .gitattributes,
- Jussi Sirpoma
From:
Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
To:
jussi.sirpoma@sks.fi
Cc:
git@vger.kernel.org
Date:
31.03.2010 17:14
Subject:
Re: Dealing with mac linefeeds in git repository
Sent by:
git-owner@vger.kernel.org
On Wed, Mar 31, 2010 at 04:07:40PM +0300, jussi.sirpoma@sks.fi wrote:
> I am running cygwin git version 1.6.4.2.
> 
> Some of the source code for our projects is encoded in mac linefeeds due 
> to proprietary
> software platform. My current solution is to flag those files tu use no 
> linefeed conversion and
> to use separate diff program by having this in .gitattributes:
> annotations or diffs. Now I am wondering if I could make git work with a 
Show 6 quoted lines
> little different 
> configuration:
> 
> * The *.BA files with mac linefeeds would be stored with normal linux 
> linefeeds
> * The files would be converted on checkout to mac linefeeds the same way 
> as core.autcrlf works
> 
> Is this doable or even a good approach?
 
AFAIK, its doable. One can specify filter programs to be executed when
checking out / adding files. That program could do CR <-> LF translation.
See filter attribute in man gitattributes.
-Ilari

← back to recent threads