All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Habenicht <daniel-habenicht@outlook.de>
To: "'brian m. carlson'" <sandals@crustytoothpaste.net>,
	"rsbecker@nexbridge.com" <rsbecker@nexbridge.com>
Cc: "git@vger.kernel.org" <git@vger.kernel.org>
Subject: Re: Bug Report
Date: Thu, 21 Apr 2022 13:20:37 +0000	[thread overview]
Message-ID: <AS1P190MB1750C249B4857371132C5DF0ECF49@AS1P190MB1750.EURP190.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <017001d85506$bee0adf0$3ca209d0$@nexbridge.com>

Hi Randall and Brian, 

thanks for the fast response. 
@Randall: I also tried it with autocrlf=input and it still reproduces. I included it in the reproduction. I also added more examples for confusing behaviour. 


Here is the full bug report: 
(You can view a Markdown rendered version of this reproduction at: https://github.com/DanielHabenicht/bug-reproduction.git-repo)

# Description 

When changing the `.gitattributes` file not all changes to the checked in files are apparent.
They only get updated on a new clone or when refreshing the index - that's somehow expected. 
But it creates confusion and unexpected behavior if they are not updated together with the `.gitattributes` changes. 
It can make easy changes between branches impossible, break the flow of squashing commits or lead to confusing state of everlasting uncommited change.
These edge cases for confusing behaviour I have added below. 

# Reproduction 

1. Checkout with the following `.gitconfig` settings set:

```gitconfig
# .gitconfig
[core]
    autocrlf = false
# Or
    autocrlf = input
```

2. Clone the repository
```bash
git clone https://github.com/DanielHabenicht/bug-reproduction.git-repo.git
```

3. `test.cs` should be shown as `modified`

> This is confusing to the user, he just checked the repo out and did not change a thing. At least there should be a warning?
   
```
git status
On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   test.cs

no changes added to commit (use "git add" and/or "git commit -a")
```

5. Running any git command like the ones below will not remove the changed file:

```bash
git rm --cached -r .
git reset --hard
git add --renormalize .
```

> This as well is very confusing and there is no indication on why this is happening and there are still modified files after everything should be reset. 
> Keep in mind that this could have happened in error and could be happening to a totally unrelated (to the inital `.gitattributes` change) user. 

6. Running `git diff` is even more confusing, and doing as the warning suggests (`warning: CRLF will be replaced by LF in test.cs. The file will have its original line endings in your working directory`) and replacing `CRLF` by `LF` does silence the warning but does not change the diff itself:

```diff
warning: CRLF will be replaced by LF in test.cs.
The file will have its original line endings in your working directory
diff --git b/test.cs a/test.cs
index 1e230ed..5464a2d 100644
--- b/test.cs
+++ a/test.cs
@@ -1,11 +1,11 @@
-using System.Diagnostics.CodeAnalysis;
-using System.Linq;
-using Xunit;
-using Moq;
-
-
-
-namespace Tests
-{
-
-}
+using System.Diagnostics.CodeAnalysis;^M
+using System.Linq;^M
+using Xunit;^M
+using Moq;^M
+^M
+^M
+^M
+namespace Tests^M
+{^M
+^M
+}^M
```

> This is showing the exact opposite of what git is really doing. Actually it replaces the line encoding of the index (i/crlf) with the right encoding (i/lf) (see **[1]**)
> From the git user perspective everything is in great shape, the file is LF, as it should be, but still git complains about a change that is not visible to the user without background knowledge about gitattributes and the git index. 

8. Try changing the branch to a modified copy with `git checkout some-changes` is not possible (also with the recommended command). The only solution would be to commit - nothing else helps (but thats not really a solution). : 

```bash
error: Your local changes to the following files would be overwritten by checkout:
        test.cs
Please commit your changes or stash them before you switch branches.
Aborting
```

> This makes changing branches harder, as it can't be force reset and git will always complain about files being overwritten.
> It also break the flow for squashing commits as you would need to manually intervene (and add a commit) if someone forgot to commit all files after a .gitattributes change and only recognized it at a later date.


**[1]**: I hope this answer explained it right to me: https://stackoverflow.com/a/71937898/9277073. 
But it is rather unintuitive to me, and possibly other users, as there seems to be a hidden middle layer leading to this problem. See the graph at the github repo)



Cheers,
Daniel




Daniel Habenicht


From: rsbecker@nexbridge.com <rsbecker@nexbridge.com>
Sent: Thursday, April 21, 2022 00:34
To: 'brian m. carlson' <sandals@crustytoothpaste.net>; 'Daniel Habenicht' <daniel-habenicht@outlook.de>
Cc: git@vger.kernel.org <git@vger.kernel.org>
Subject: RE: Bug Report 
 
On April 20, 2022 5:31 PM, brian m. carlson wrote:
>On 2022-04-20 at 19:45:32, Daniel Habenicht wrote:
>> Hi there,
>>
>> I think I found a bug or at least some unexpected behavior. Please
>> have a look at the following reproduction repo:
>>
>> https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDanielHabenicht%2Fbug-reproduction.git-repo%2Fblob%2Fmain&amp;data=05%7C01%7C%7C145ae6f595d54ac7b5fd08da231de43c%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637860908535410706%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=HXFm4sBZ5yQGQPkBlkzKhkgDJOXBqSlgETkrhGxgkmI%3D&amp;reserved=0
>> /README.md
>
>You're more likely to get someone to look at this if you post the actual text to the
>list.  While I might be willing to look at it on GitHub, other folks won't, and I
>probably won't get a chance to look at this issue anytime soon.

The only thing that I can see that is apparently a problem is that autocrlf=false is not documented in the config help, so it is not apparent what the expected result should be relative to the test case. That could be considered confusing. There could also be confusion relative to when the git diff was done relative to what is in the staging area given his test case. I think what Daniel may really want is to use autocrlf=input.

Daniel, please post your entire report to this list rather than using GitHub, links, or attachments. I happened to be on GitHub at that moment, so looked, but otherwise, I would not have specifically looked.

--Randall

--
Brief whoami: NonStop&UNIX developer since approximately
UNIX(421664400)
NonStop(211288444200000000)
-- In real life, I talk too much.

  reply	other threads:[~2022-04-21 13:20 UTC|newest]

Thread overview: 184+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-20 19:45 Bug Report Daniel Habenicht
2022-04-20 21:30 ` brian m. carlson
2022-04-20 22:34   ` rsbecker
2022-04-21 13:20     ` Daniel Habenicht [this message]
2022-04-21 14:39       ` Torsten Bögershausen
     [not found]         ` <AS1P190MB175022A7F1264807ECA464A8ECF49@AS1P190MB1750.EURP190.PROD.OUTLOOK.COM>
2022-04-21 17:52           ` Torsten Bögershausen
  -- strict thread matches above, loose matches on Subject: below --
2023-08-28 12:51 Bug report Dexter Pontañeles
2023-06-27 16:02 Bug Report Tiago d'Almeida
2022-12-28  2:43 Bug report Jensen Bean
2022-12-28  5:02 ` Eric Sunshine
2022-12-25 17:26 bug report Eyal Post
2022-12-25 18:12 ` Eric Sunshine
2022-12-08  5:29 Bug Report Jensen Bean
2022-12-08  8:31 ` Bagas Sanjaya
     [not found]   ` <CANqKdC-gHgQHn5DMoOREY52y7PpRLMpNAjX3qeA5iy9z_GXdzw@mail.gmail.com>
2022-12-26  2:15     ` Bagas Sanjaya
2022-11-19 20:20 Jensen Bean
2022-10-03 15:28 Bug report Alastair Douglas
2022-10-03 16:53 ` Junio C Hamano
2022-10-04 10:15   ` Alastair Douglas
2022-10-05  5:46     ` Junio C Hamano
2021-12-01 22:31 Bug Report Josh Rampersad
2021-11-12  4:22 bug report Theodore Li
2021-11-12  4:29 ` Junio C Hamano
2021-11-12  6:59   ` Theodore Li
2021-11-12 14:05     ` Paul Smith
2020-03-27 11:53 Bug Report James Yeoman
2020-03-27 12:59 ` Pratyush Yadav
2020-03-21  9:38 bug report aaa
2020-03-22  8:13 ` Leon Romanovsky
     [not found] <CA+2sEepTyrK-iH+VBHVF1i9DuYVzDkTNxuM0-yoWbkC9N4f8HA@mail.gmail.com>
2019-04-15 15:18 ` Nick Steinhauser
2018-09-08  9:50 Bug report 李 武刚
2018-09-19 20:46 ` Nicolas Iooss
2018-09-06 20:23 Jianliang Wu
2018-09-07  9:43 ` Luiz Augusto von Dentz
2017-08-30 21:25 Aleksandar Pavic
2017-08-31  6:36 ` Kevin Daudt
2017-08-31 14:19   ` Dov Grobgeld
2017-08-31 14:55     ` Aleksandar Pavic
2017-08-31 16:23   ` Stephan Beyer
2017-09-02  8:49 ` Jeff King
2016-12-22 20:07 Ing. Ricardo Brisighelli
2016-12-23 13:15 ` Wei Liu
2016-05-13  5:04 bug report 李本超
2016-05-13  5:23 ` Pranit Bauva
2016-05-13  5:58   ` 李本超
2016-05-13  6:37     ` Pranit Bauva
2016-05-13  6:57       ` 李本超
2016-05-13  7:10         ` Pranit Bauva
2016-05-13  7:41           ` 李本超
2016-05-13  8:10             ` Jeff King
2016-05-13 12:05               ` 李本超
2016-04-03  0:25 Bug Report Benjamin Sandeen
2016-04-03  2:20 ` Eric N. Vander Weele
2016-04-03  2:22 ` Jacob Keller
2015-05-11 16:57 Alex Newman
2015-05-11 17:14 ` David Ahern
2015-05-11 17:56   ` Alex Newman
2015-05-11 21:42     ` Arnaldo Carvalho de Melo
2015-01-27 14:43 bug report Albert Akhriev
2015-01-27 14:50 ` Jeff King
2014-08-05  5:08 Zhu, Zhengyun
2014-08-05 16:05 ` Vasily Tarasov
2013-05-24 22:32 Bug Report Rajiv Shah
2013-05-28 11:07 ` Bryn M. Reeves
     [not found] <CAC34_pT9zwZDnUjo1bTUZabD02M48=_+77-mNCA5adWTgxuYgg@mail.gmail.com>
2013-04-08  5:20 ` Kirk Fraser
2013-03-04  5:44 Roberto CORRADO
2012-10-05 10:13 Bug report Муковников Михаил
2012-10-05 10:32 ` Konstantin Khomoutov
2012-10-05 10:47   ` Carlos Martín Nieto
2012-10-05 11:03     ` Муковников Михаил
2012-10-05 10:52   ` Муковников Михаил
2012-10-04  4:35 John Whitney
2012-10-04 14:19 ` Phil Hord
2012-10-04 16:10   ` John Whitney
2012-10-06 13:31     ` Jeff King
2012-10-07  2:23       ` John Whitney
2012-10-07 23:52         ` Jeff King
2012-10-09 17:17           ` John Whitney
2012-10-09 19:00             ` John Whitney
2012-10-04 15:21 ` Andrew Wong
2012-10-04 16:16   ` John Whitney
2012-10-04 16:28     ` John Whitney
2012-10-04 17:01     ` Andrew Wong
2012-09-01 23:24 bug report Manoel Pedro
2012-08-20 22:31 Bug report mr.shroom
2012-08-20 22:43 ` Randy Dunlap
2012-08-20 23:16   ` Alan Cox
2012-08-21  9:37 ` Borislav Petkov
2012-08-01 10:46 artem rus
2011-10-28 15:55 Hendrik Knackstedt
2011-07-19 17:34 Bug Report Charles Opondo
2011-07-20 15:38 ` Bjorn Helgaas
2011-04-05  4:48 bug report Larry D'Anna
2011-04-05  6:17 ` Helmut Hullen
     [not found] <mailman.1.1244602801.14549.users@nilfs.org>
     [not found] ` <mailman.1.1244602801.14549.users-JrjvKiOkagjYtjvyW6yDsg@public.gmane.org>
2009-06-11 17:51   ` Bug Report Dipl.-Ing. Michael Niederle
2009-06-12  6:44     ` Ryusuke Konishi
2009-04-03 23:44 bug report Jeremy
2008-11-03 18:30 Todor Gyumyushev
2008-09-25 14:08 Todor Gyumyushev
2008-09-24  9:41 Todor Gyumyushev
2008-09-24 16:38 ` Simon Holm Thøgersen
2008-09-24 17:55   ` Todor Gyumyushev
2008-09-24 18:25     ` Simon Holm Thøgersen
2008-09-29  1:36       ` Tejun Heo
2008-09-29  8:30         ` Todor Gyumyushev
2008-09-30 11:47           ` Tejun Heo
2008-07-26 15:17 Bug report Jachin Spencer
2008-07-27  1:11 ` Pavel Roskin
2008-06-06 19:59 bug report Zsiros Attila
2008-06-07  1:44 ` Oliver Pinter
2008-06-07  1:45   ` Oliver Pinter
2008-06-07  5:56   ` Andrew Morton
2008-06-07  8:47     ` Ilpo Järvinen
2008-06-07 12:50       ` Oliver Pinter
2008-06-07 15:09         ` Phil Oester
2008-06-07 18:53           ` Oliver Pinter
2008-06-08 11:56             ` Zsiros Attila
2008-06-09 17:04               ` Oliver Pinter
2007-09-06 17:05 Bug Report Mark Goodall
2007-09-07  0:23 ` Barry Naujok
2007-09-18  2:27 ` Barry Naujok
2006-07-09  2:04 BUG report Antonio Mignolli
2006-07-12 10:56 ` Markus Rechberger
2005-10-21  8:42 bug report Ian Pratt
2005-10-21 11:28 ` David F Barrera
2005-10-20 16:47 Stephan Böni
2005-10-20 12:47 Stephan Böni
2005-10-20 15:28 ` David F Barrera
2005-05-26  1:09 Jerry DeLisle
2005-05-26  2:12 ` Jerry DeLisle
2005-04-11 14:07 Bug report studdugie
2005-04-11 15:30 ` Vladimir Saveliev
2005-04-12 13:57   ` studdugie
2005-04-13 12:49     ` Vladimir Saveliev
2005-04-14  4:45       ` David Masover
2005-04-14  9:15         ` Vladimir Saveliev
2004-12-25 13:00 Ioannis Fikouras
2004-11-14 12:38 Bug Report Alan Erola
2004-11-29 18:31 ` bug report Muhtar Mahsut
2004-11-30  0:39 ` Greg KH
2004-12-18 11:11 ` Brian Kreulen
2004-12-18 12:06 ` Brian Kreulen
2005-08-21 20:06 ` John Saylor
2005-08-21 20:45 ` Kay Sievers
2006-01-11 11:08 ` Michael Mey
2006-01-11 11:17 ` Kay Sievers
2004-03-03 10:47 Bug report Manivannan Shanmugam
2004-02-21  2:48 Grahame M. Kelly
2004-02-24  9:22 ` Vitaly Fertman
2004-01-13 19:09 BUG REPORT Luca T.
2004-01-13 21:18 ` David D. Huff Jr.
2004-01-14 10:17 ` Vitaly Fertman
2003-11-23  2:09 bug report Stephan Reichel
2003-11-23 12:19 ` Vitaly Fertman
2003-11-25  0:44   ` Stephan Reichel
2003-11-25  0:54     ` Carl-Daniel Hailfinger
2003-11-25 10:54     ` Vitaly Fertman
2003-11-23 12:20 ` Redeeman
2003-08-02 18:10 Russell Whitaker
     [not found] ` <3F424BB1.8050400@metavize.com>
2003-08-19 23:44   ` Russell Whitaker
2003-04-28 20:40 robs
2003-04-29  5:49 ` Oleg Drokin
2003-04-29  8:20   ` robs
2003-04-29  8:43     ` Oleg Drokin
2003-04-29  8:41   ` robs
2003-04-29  8:45     ` Oleg Drokin
2002-12-02 19:40 Howard Shane
2002-10-04 15:01 Sander Kamphuis
2002-10-04 15:32 ` Paulo Andre'
2002-10-04 15:35 ` Adrian Bunk
2002-07-12  5:12 Bug Report service
2002-04-24  9:15 bug report Pan,Gaoyong
2002-03-04 16:04 Vitaly Fertman
2001-11-27 15:04 Bug (?) report Matteo Sasso
2001-11-27 15:51 ` Tommy Reynolds
2001-11-10 19:01 Bug Report Logoth Dragon
2001-11-10 19:08 ` Alan Cox
2001-08-02  9:38 Bug report Daniel Glozman
2001-03-22 20:58 Craig Cummings
2001-03-22 21:43 ` Tim Walberg
2001-02-01 22:09 Anders S. Buch
2001-02-03  1:44 ` Jens Axboe
1999-06-07  8:54 Alexander Larsson
1999-06-07 13:53 ` Dan Malek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AS1P190MB1750C249B4857371132C5DF0ECF49@AS1P190MB1750.EURP190.PROD.OUTLOOK.COM \
    --to=daniel-habenicht@outlook.de \
    --cc=git@vger.kernel.org \
    --cc=rsbecker@nexbridge.com \
    --cc=sandals@crustytoothpaste.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.