# Can git ignore parts of files

5 messages from 2008-11-14 to 2008-11-16. Participants: Alan, Francis Galiegue, Elijah Newren, Daniel Barkalow.
Thread: https://gitlist.dev/t/16332

## Alan, 2008-11-14 19:17

Subject: Can git ignore parts of files
Message-ID: <1226690252.6176.9.camel@rotwang.fnordora.org>
URL: https://gitlist.dev/e/1226690252.6176.9.camel%40rotwang.fnordora.org

```
I have kind of an odd problem that is causing me grief in git.  I figure
someone has a good solution here.  (Or not, they will soon.)

I have a couple of kernel .config files that are checked into git.  They
are used to test kernel configurations for the nightly builds where I
work.

We have a bunch of kernel developers working on drivers.  When they add
a new driver, they add in the options in the test file to make it
compile in the test builds.

The problem is that the kernel config file has a timestamp at the top of
the file that is generated by "make oldconfig" or "make config".  Other
than removing the timestamp each time manually, is there a way to get
git to ignore the timestamp on a merge?

What happens is that the authors submit the changes on a branch in most
cases.  Sometimes they have a version of that file that is quite out of
date.  When I go to merge, that one file gives me grief 95% of the time.

Is there an easy way around this?  Am I approaching the problem wrong?
Is there a better way to do this?

```

## Francis Galiegue, 2008-11-14 19:33

Subject: Re: Can git ignore parts of files
Message-ID: <200811142033.51019.fg@one2team.net>
URL: https://gitlist.dev/e/200811142033.51019.fg%40one2team.net
In-Reply-To: <1226690252.6176.9.camel@rotwang.fnordora.org>

```
Le Friday 14 November 2008 20:17:32 Alan, vous avez écrit :
> I have kind of an odd problem that is causing me grief in git.  I figure
> someone has a good solution here.  (Or not, they will soon.)
>
> I have a couple of kernel .config files that are checked into git.  They
> are used to test kernel configurations for the nightly builds where I
> work.
>
> We have a bunch of kernel developers working on drivers.  When they add
> a new driver, they add in the options in the test file to make it
> compile in the test builds.
>
> The problem is that the kernel config file has a timestamp at the top of
> the file that is generated by "make oldconfig" or "make config".  Other
> than removing the timestamp each time manually, is there a way to get
> git to ignore the timestamp on a merge?
>
> What happens is that the authors submit the changes on a branch in most
> cases.  Sometimes they have a version of that file that is quite out of
> date.  When I go to merge, that one file gives me grief 95% of the time.
>
> Is there an easy way around this?  Am I approaching the problem wrong?
> Is there a better way to do this?
>

Do they ever touch to the kernel core? You say that they are developing 
drivers, they basically use core kernel interfaces but not modify them right?

For quite a few years now, the kernel build system has allowed one to build 
drivers out of the kernel tree (but _using_ the kernel tree) fairly easily. 
Why not go this route? You won't have any conflict problems anymore, _and_ 
you can maintain (and update) your kernel tree regularly.

-- 
fge

```

## Alan, 2008-11-14 19:58

Subject: Re: Can git ignore parts of files
Message-ID: <1226692725.6176.10.camel@rotwang.fnordora.org>
URL: https://gitlist.dev/e/1226692725.6176.10.camel%40rotwang.fnordora.org
In-Reply-To: <200811142033.51019.fg@one2team.net>

```
On Fri, 2008-11-14 at 20:33 +0100, Francis Galiegue wrote:
> Le Friday 14 November 2008 20:17:32 Alan, vous avez écrit :
> > I have kind of an odd problem that is causing me grief in git.  I figure
> > someone has a good solution here.  (Or not, they will soon.)
> >
> > I have a couple of kernel .config files that are checked into git.  They
> > are used to test kernel configurations for the nightly builds where I
> > work.
> >
> > We have a bunch of kernel developers working on drivers.  When they add
> > a new driver, they add in the options in the test file to make it
> > compile in the test builds.
> >
> > The problem is that the kernel config file has a timestamp at the top of
> > the file that is generated by "make oldconfig" or "make config".  Other
> > than removing the timestamp each time manually, is there a way to get
> > git to ignore the timestamp on a merge?
> >
> > What happens is that the authors submit the changes on a branch in most
> > cases.  Sometimes they have a version of that file that is quite out of
> > date.  When I go to merge, that one file gives me grief 95% of the time.
> >
> > Is there an easy way around this?  Am I approaching the problem wrong?
> > Is there a better way to do this?
> >
> 
> Do they ever touch to the kernel core? You say that they are developing 
> drivers, they basically use core kernel interfaces but not modify them right?
> 
> For quite a few years now, the kernel build system has allowed one to build 
> drivers out of the kernel tree (but _using_ the kernel tree) fairly easily. 
> Why not go this route? You won't have any conflict problems anymore, _and_ 
> you can maintain (and update) your kernel tree regularly.

Because these will go into core at some later date.  (I work for Intel.)

```

## Elijah Newren, 2008-11-14 20:06

Subject: Re: Can git ignore parts of files
Message-ID: <51419b2c0811141206s2fcedfa4udc609702299cc366@mail.gmail.com>
URL: https://gitlist.dev/e/51419b2c0811141206s2fcedfa4udc609702299cc366%40mail.gmail.com
In-Reply-To: <1226690252.6176.9.camel@rotwang.fnordora.org>

```
On Fri, Nov 14, 2008 at 12:17 PM, Alan <alan@clueserver.org> wrote:
> I have kind of an odd problem that is causing me grief in git.  I figure
> someone has a good solution here.  (Or not, they will soon.)
>
> I have a couple of kernel .config files that are checked into git.  They
> are used to test kernel configurations for the nightly builds where I
> work.
>
> We have a bunch of kernel developers working on drivers.  When they add
> a new driver, they add in the options in the test file to make it
> compile in the test builds.
>
> The problem is that the kernel config file has a timestamp at the top of
> the file that is generated by "make oldconfig" or "make config".  Other
> than removing the timestamp each time manually, is there a way to get
> git to ignore the timestamp on a merge?
>
> What happens is that the authors submit the changes on a branch in most
> cases.  Sometimes they have a version of that file that is quite out of
> date.  When I go to merge, that one file gives me grief 95% of the time.
>
> Is there an easy way around this?  Am I approaching the problem wrong?
> Is there a better way to do this?

Someone wrote a special merge algorithm to handle similar conflicts in
tracked ChangeLog files (see
http://www.mail-archive.com/bug-gnulib@gnu.org/msg09183.html).
Perhaps you could write a similar merge algorithm and use it?

Hope that helps,
Elijah

```

## Daniel Barkalow, 2008-11-16 08:37

Subject: Re: Can git ignore parts of files
Message-ID: <alpine.LNX.1.00.0811160331110.19665@iabervon.org>
URL: https://gitlist.dev/e/alpine.LNX.1.00.0811160331110.19665%40iabervon.org
In-Reply-To: <1226690252.6176.9.camel@rotwang.fnordora.org>

```
On Fri, 14 Nov 2008, Alan wrote:

> I have kind of an odd problem that is causing me grief in git.  I figure
> someone has a good solution here.  (Or not, they will soon.)
> 
> I have a couple of kernel .config files that are checked into git.  They
> are used to test kernel configurations for the nightly builds where I
> work.
> 
> We have a bunch of kernel developers working on drivers.  When they add
> a new driver, they add in the options in the test file to make it
> compile in the test builds.
> 
> The problem is that the kernel config file has a timestamp at the top of
> the file that is generated by "make oldconfig" or "make config".  Other
> than removing the timestamp each time manually, is there a way to get
> git to ignore the timestamp on a merge?

Try the "clean"/"smudge" filter feature documented in gitattributes(5). 
You should be able to use that to remove the timestamp automatically.

	-Daniel
*This .sig left intentionally blank*

```
