# Filtering mode changes

3 messages from 2008-08-01 to 2008-08-01. Participants: Stefan Naewe, Matt Pearson, Santi Béjar.
Thread: https://gitlist.dev/t/14789

## Stefan Naewe, 2008-08-01 11:25

Subject: Filtering mode changes
Message-ID: <loom.20080801T111754-982@post.gmane.org>
URL: https://gitlist.dev/e/loom.20080801T111754-982%40post.gmane.org

```
Hi there.

Here's my story:

- I did some minor modifications to a repo that I want to 'give back'.
- I worked on my own branch (of course).
- I was stupid to edit the files (that live on a linux box) through a windows
  network share.
- When I created diffs (using 'git format-patch') to send send 'upstream', I 
  noticed that the edited files got their executable bit set (old mode 100644 ->
  new mode 100755)
- I created another commit to undo the mode changes.

My question:

Is there a way to create clean diffs (between master and my branch) that don't
contain the 'double mode change' (from 644 to 755 to 644) ? 

TIA

Stefan

```

## Matt Pearson, 2008-08-01 12:23

Subject: Re: Filtering mode changes
Message-ID: <706b4240808010523y33694ebfjad772ef26e015cbb@mail.gmail.com>
URL: https://gitlist.dev/e/706b4240808010523y33694ebfjad772ef26e015cbb%40mail.gmail.com
In-Reply-To: <loom.20080801T111754-982@post.gmane.org>

```
On Fri, Aug 1, 2008 at 7:25 AM, Stefan Naewe <stefan.naewe+git@gmail.com> wrote:
> Hi there.
>
> Here's my story:
>
> - I did some minor modifications to a repo that I want to 'give back'.
> - I worked on my own branch (of course).
> - I was stupid to edit the files (that live on a linux box) through a windows
>  network share.
> - When I created diffs (using 'git format-patch') to send send 'upstream', I
>  noticed that the edited files got their executable bit set (old mode 100644 ->
>  new mode 100755)
> - I created another commit to undo the mode changes.
>
> My question:
>
> Is there a way to create clean diffs (between master and my branch) that don't
> contain the 'double mode change' (from 644 to 755 to 644) ?
>

You probably want to use 'git rebase -i master' and the 'squash'
command to combine the changes into one. If multiple commits messed up
the permissions, use the 'edit' command and the rebase will stop after
the specified commits, allowing you to fix things up, then do 'git
commit --amend'. Use 'git rebase --continue' to continue fixing the
patches.

```

## Santi Béjar, 2008-08-01 12:32

Subject: Re: Filtering mode changes
Message-ID: <8aa486160808010532k3932979er1a457b0d627e988@mail.gmail.com>
URL: https://gitlist.dev/e/8aa486160808010532k3932979er1a457b0d627e988%40mail.gmail.com
In-Reply-To: <loom.20080801T111754-982@post.gmane.org>

```
On Fri, Aug 1, 2008 at 13:25, Stefan Naewe <stefan.naewe+git@gmail.com> wrote:
> Hi there.
>
> Here's my story:
>
> - I did some minor modifications to a repo that I want to 'give back'.
> - I worked on my own branch (of course).
> - I was stupid to edit the files (that live on a linux box) through a windows
>  network share.

Then, you should set core.fileMode to false.

> - When I created diffs (using 'git format-patch') to send send 'upstream', I
>  noticed that the edited files got their executable bit set (old mode 100644 ->
>  new mode 100755)

You can just edit the patches and remove the "old/new mode" lines.

> - I created another commit to undo the mode changes.

You can use "git rebase -i" and edit (or squash) the revision before
generating the patch.

Santi

```
