git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Git patch shows tab but files doesn't

From
Jeff King <peff@peff.net>
Date
Feb 12, 2016, 18:32 UTC
Message-ID
<20160212183238.GB19973@sigill.intra.peff.net>
In-Reply-To
<CAD6G_RTJuNsR6qawgco1H+ocKPThk1HsQLvhQigmzUb_c7UdaQ@mail.gmail.com>
On Fri, Feb 12, 2016 at 09:32:32PM +0530, Jagan Teki wrote:
Show 17 quoted lines
> Hi,
> 
> I edited a file as one space between #define and macro and tab space
> between macro and BIT value, similar as below.
> 
> #define USE_FSR           BIT(6)
> #define SNOR_WR         BIT(7)
> 
> Once I created the patch looks different as tab space between #define
> and macro and 2 tab spaces between macro and BIT value looks like it's
> added tab spaces while creating a patch as below.
> 
> +#define        USE_FSR                              BIT(6)
> +#define        SNOR_WR                            BIT(7)
> 
> Any help how to fix this, was it an issues with vim or do we have any
> git-config fixes for this?

It's hard to tell from your output, but you can often get tab realignment on your terminal when viewing a patch, because the tabs are shifted in by one character (the leading "+"). So if your terminal is showing (as most do) a tab as "skip to the next tabstop", then:

  1. The size of particular tabs may look quite different if they move
     from an exact tabstop to the next character (or vice versa).
     If the space between your "#define" and the macro name is actually
     a tab, then I'd expect it to exhibit this behavior with a tabstop
     of 8 (because #define is 7 chars).
  2. Spaces don't exhibit this, so two lines which _are_ aligned in the
     source for a specific tabstop may not be in the patch.

Piping the diff (and your file) through "cat -A" can often show more clearly what's going on.

-Peff
Previous: Jagan Teki
Message 2 of 2 in “Git patch shows tab but files doesn't”
  1. Jagan TekiFeb 12, 2016
  2. Jeff KingFeb 12, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.