I think I have identified an obscure bug. I have a reproducible test case.
I am trying to come up with enough of a test case that can be used for
finding and fixing the issue.

I have a set of patches. They are diffs. Some have whitespace issues.
(Which I believe triggers the bug.)

The patches go on top of the linux-stable kernel at version 3.12.17. They
apply with no real problems. (There was a minor issue, but I don't believe
it has anything to do with this bug. It was to deal with a patch later on
in the patch set.)

Each patch is added and committed as a separate commit.

I am then doing a fast-forward rebase on the branch to 3.12.45.

The first 24 patches apply cleanly. The 25th has merge conflicts. One of
the files it conflicts on is one that is added by patch 4. That should not
happen.

If I remove the following settings from my ~/.gitconfig, the rebase works
correctly.

[apply]
        whitespace = fix

[core]
        whitespace = trailing-space,space-before-tab,indent-with-non-tab

The diff with the --check option shows the following on the file:

arch/x86/pci/intel_media_proc_gen3.c:427: space before tab in indent.
+               pci_direct_conf1.read(0, 1,
PCI_DEVFN(av_dev_reg_fixups_ce2600[i].dev,
arch/x86/pci/intel_media_proc_gen3.c:428: space before tab in indent.
+               av_dev_reg_fixups_ce2600[i].func),
av_dev_reg_fixups_ce2600[i].reg, 4,
arch/x86/pci/intel_media_proc_gen3.c:914: indent with spaces.
+        *table = flash_layout_table;
arch/x86/pci/intel_media_proc_gen3.c:915: indent with spaces.
+        *len = flash_layout_table_length;
arch/x86/pci/intel_media_proc_gen3.c:916: indent with spaces.
+        return 0;
arch/x86/pci/intel_media_proc_gen3.c:956: space before tab in indent.
+                       raw_pci_ops = &ce_soc_pci_conf;
arch/x86/pci/intel_media_proc_gen3.c:968: space before tab in indent.
+               raw_pci_ops = &ce_soc_pci_conf;
arch/x86/pci/intel_media_proc_gen3.c:984: space before tab in indent.
+               pci_direct_conf1.write(0, 0, 0, 0xd0, 4, 0x060040f0);
arch/x86/pci/intel_media_proc_gen3.c:989: space before tab in indent.
+               raw_pci_ops = &ce_soc_pci_conf;


What I believe is happening is that the patches get readded to the HEAD of
3.12.45 and gets corrected for whitespace. When it gets to the next
occurrence of the file, it is compared before the whitespace gets
corrected. (I don't know if this is the actual cause, but it seems
likely.)

If I comment out the above config lines, the rebase works as expected.

It is only this one file that triggers it. I am trying to figure out a
small test case that triggers it without including all 50+ patches.

Ideas?





--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to