From owner-dev-commits-src-main@freebsd.org Thu Apr 29 15:21:45 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2496B62DE7C; Thu, 29 Apr 2021 15:21:45 +0000 (UTC) (envelope-from grembo@freebsd.org) Received: from mail.evolve.de (mail.evolve.de [213.239.217.29]) (using TLSv1.3 with cipher TLS_CHACHA20_POLY1305_SHA256 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA512 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mail.evolve.de", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FWK3X2RYCz4nHC; Thu, 29 Apr 2021 15:21:43 +0000 (UTC) (envelope-from grembo@freebsd.org) Received: by mail.evolve.de (OpenSMTPD) with ESMTP id 14a432a5; Thu, 29 Apr 2021 15:21:41 +0000 (UTC) Received: by mail.evolve.de (OpenSMTPD) with ESMTPSA id 40dcf863 (TLSv1.3:AEAD-CHACHA20-POLY1305-SHA256:256:NO); Thu, 29 Apr 2021 15:21:41 +0000 (UTC) Date: Thu, 29 Apr 2021 17:21:22 +0200 From: Michael Gmelin To: Cy Schubert Cc: Michael Gmelin , src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: Re: git: a0358e3d5184 - main - Synch index of contrib/bc with what is in workdir after cloning. Message-ID: <20210429172122.1751663f@bsd64.grem.de> In-Reply-To: <202104291455.13TEtxEg040285@slippy.cwsent.com> References: <202104291234.13TCYk5K092776@gitrepo.freebsd.org> <202104291353.13TDrIg3026309@slippy.cwsent.com> <20210429162959.16662d66@bsd64.grem.de> <202104291455.13TEtxEg040285@slippy.cwsent.com> X-Face: $wrgCtfdVw_H9WAY?S&9+/F"!41z'L$uo*WzT8miX?kZ~W~Lr5W7v?j0Sde\mwB&/ypo^}> +a'4xMc^^KroE~+v^&^#[B">soBo1y6(TW6#UZiC]o>C6`ej+i Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAJFBMVEWJBwe5BQDl LASZU0/LTEWEfHbyj0Txi32+sKrp1Mv944X8/fm1rS+cAAAACXBIWXMAAAsTAAAL EwEAmpwYAAAAB3RJTUUH3wESCxwC7OBhbgAAACFpVFh0Q29tbWVudAAAAAAAQ3Jl YXRlZCB3aXRoIFRoZSBHSU1QbbCXAAAAAghJREFUOMu11DFvEzEUAGCfEhBVFzuq AKkLd0O6VrIQsLXVSZXoWE5N1K3DobBBA9fQpRWc8OkWouaIjedWKiyREOKs+3PY fvalCNjgLVHeF7/3bMtBzV8C/VsQ8tecEgCcDgrzjekwKZ7TwsJZd/ywEKwwP+ZM 8P3drTsAwWn2mpWuDDuYiK1bFs6De0KUUFw0tWxm+D4AIhuuvZqtyWYeO7jQ4Aea 7jUqI+ixhQoHex4WshEvSXdood7stlv4oSuFOC4tqGcr0NjEqXgV4mMJO38nld4+ xKNxRDon7khyKVqY7YR4d+Cg0OMrkWXZOM7YDkEfKiilCn1qYv4mighZiynuHHOA Wq9QJq+BIES7lMFUtcikMnkDGHUoncA+uHgrP0ctIEqfwLHzeSo+eUA66AqzwN6n 2ZHJhw6Qh/PoyC/QENyEyC/AyNjq74Bs+3UH0xYwzDUC4B97HgLocg1QLYgDDO1v f3UX9Y307Ew4AHh67YAFFsxEpkXwpXY3eIgMhAAE3R19L919nNnuD2wlPcDE3UeT L2ytEICQib9BXgS2fU8PrD82ToYO1OEmMSnYTjSqSv9wdC0tPYC+rQRQD9ESnldF CyqfmiYW+tlALt8gH2xrMdC/youbjzPXEun+/ReXsMCDyve3dZc09fn2Oas8oXGc Jj6/fOeK5UmSMPmf/jL+GD8BEj0k/Fn6IO4AAAAASUVORK5CYII= MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 4FWK3X2RYCz4nHC X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [0.00 / 15.00]; local_wl_from(0.00)[freebsd.org]; ASN(0.00)[asn:24940, ipnet:213.239.192.0/18, country:DE] X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Apr 2021 15:21:45 -0000 On Thu, 29 Apr 2021 07:55:58 -0700 Cy Schubert wrote: > In message <20210429162959.16662d66@bsd64.grem.de>, Michael Gmelin > writes: > > > > > > > > On Thu, 29 Apr 2021 06:53:18 -0700 > > Cy Schubert wrote: > > > > > In message <202104291234.13TCYk5K092776@gitrepo.freebsd.org>, > > > Michael Gmelin wr > > > ites: > > > > The branch main has been updated by grembo (ports committer): > > > > > > > > URL: > > > > https://cgit.FreeBSD.org/src/commit/?id=a0358e3d5184950b4316f105eb292cba > > > > fdea208b > > > > > > > > commit a0358e3d5184950b4316f105eb292cbafdea208b > > > > Author: Michael Gmelin > > > > AuthorDate: 2021-04-29 12:29:04 +0000 > > > > Commit: Michael Gmelin > > > > CommitDate: 2021-04-29 12:33:56 +0000 > > > > > > > > Synch index of contrib/bc with what is in workdir after > > > > cloning. > > > > From a workdir perspective this should be a no-op. > > > > See also: > > > > https://lists.freebsd.org/pipermail/freebsd-current/2021-April/079569 > > > > > > .htm > > > > l > > > > --- > > > > contrib/bc/bc.vcxproj | 554 > > > > ++++++++++++++++++++------------------- -- > > > > contrib/bc/bc.vcxproj.filters | 362 > > > > +++++++++++++-------------- contrib/bc/bcl.vcxproj | > > > > 320 ++++++++++++------------ contrib/bc/bcl.vcxproj.filters | > > > > 190 +++++++------- 4 files changed, 713 insertions(+), 713 > > > > deletions(-) > > > > > > Whatever was done here I cannot rebase from main to my local > > > branches. The files remain modified. The only recourse so far was > > > to delete the local branch and start over. I've done this to one > > > inconsequential branch so far but hopefully someone can suggest a > > > solution. > > > > Can you show an example of how this fails for you (especially the > > error messages)? > > slippy$ git pull -r --all > Fetching freebsd > remote: Enumerating objects: 9, done. > remote: Counting objects: 100% (9/9), done. > remote: Compressing objects: 100% (9/9), done. > remote: Total 9 (delta 3), reused 0 (delta 0), pack-reused 0 > Unpacking objects: 100% (9/9), 12.42 KiB | 111.00 KiB/s, done. > From https://git.freebsd.org/src > 59b3b210a69e..d87ee7b97fe8 stable/13 -> freebsd/stable/13 > Already up to date. > slippy$ git co komquats > Switched to branch 'komquats' > slippy$ git st > On branch komquats > Changes not staged for commit: > (use "git add ..." to update what will be committed) > (use "git restore ..." to discard changes in working > directory) modified: contrib/bc/bc.vcxproj > modified: contrib/bc/bc.vcxproj.filters > modified: contrib/bc/bcl.vcxproj > modified: contrib/bc/bcl.vcxproj.filters > > Untracked files: > (use "git add ..." to include in what will be committed) > sys/i386/conf/IPFILTER > usr.sbin/ufdformat/ > > no changes added to commit (use "git add" and/or "git commit -a") > slippy$ git rebase main > error: cannot rebase: You have unstaged changes. > error: Please commit or stash them. > slippy$ git stash push -m foobar > Saved working directory and index state On komquats: foobar > slippy$ git rebase main > error: cannot rebase: You have unstaged changes. > error: Please commit or stash them. > slippy$ git st > On branch komquats > Changes not staged for commit: > (use "git add ..." to update what will be committed) > (use "git restore ..." to discard changes in working > directory) modified: contrib/bc/bc.vcxproj > modified: contrib/bc/bc.vcxproj.filters > modified: contrib/bc/bcl.vcxproj > modified: contrib/bc/bcl.vcxproj.filters > > Untracked files: > (use "git add ..." to include in what will be committed) > sys/i386/conf/IPFILTER > usr.sbin/ufdformat/ > > no changes added to commit (use "git add" and/or "git commit -a") > slippy$ git stash push -m foobar > Saved working directory and index state On komquats: foobar > slippy$ git st > On branch komquats > Changes not staged for commit: > (use "git add ..." to update what will be committed) > (use "git restore ..." to discard changes in working > directory) modified: contrib/bc/bc.vcxproj > modified: contrib/bc/bc.vcxproj.filters > modified: contrib/bc/bcl.vcxproj > modified: contrib/bc/bcl.vcxproj.filters > > Untracked files: > (use "git add ..." to include in what will be committed) > sys/i386/conf/IPFILTER > usr.sbin/ufdformat/ > > no changes added to commit (use "git add" and/or "git commit -a") > slippy$ > > rm the files, switch branch to main, rebase again, remove the branch, > and start over was the only solution. > > So far this affected only one branch. My other branches are so far > unaffected. > > As no other branch is affected it appears this was local to this one > branch. The branch is (was) approximately four months old. Recreating > it, which wasn't difficult, resolved the issue. > > This is the first time I've had any git problems of this nature here > at FreeBSD. I've (we've) had many at $JOB because of git-lfs, causing > similar looking issues. But that's a whole different kettle of fish. > (I'm the only one at $JOB who uses git on a UNIX-like system while > everyone else uses Visual Studio.) > > > > > > > > > git restore the files, git rm the files, rm the files, git stash > > > push, all don't remove them from the branch following rebase. And > > > subsequent rebase to main will fail. main is ok though. > > > > > > What is it that you did to sync the index? > > > > Like in the mail thread linked in the git comment, theoretically a > > noop: > > > > git clone https://git@repo.freebsd.org/src.git > > cd src > > touch contrib/bc/*vcx* > > git commit -a > > git push > > > > It's a problem caused by .gitattributes being checked in after the > > *vcx* files were checked in (again, see the email thread and "man > > 1 gitattributes"). > > > > If it was for me, I would remove the .gitattributes eol specs, they > > shouldn't be necessary for our purposes. > > It's probably growing pains. > > It appears only one branch, probably not surprisingly my most used > branch, was the only one affected. > Hi Cy, To add more details and an explanation of what you experienced: The bc*vcx* project files were first checked in on April 6th in 7e5c51e523, containing CRLF line breaks. Back then, the attributes were: $ git ls-files --eol contrib/bc/bc.vcxproj i/crlf w/crlf attr/ contrib/bc/bc.vcxproj Now, in 8ea9013512 the .gitattributes file was added, containing: *.vcxproj eol=crlf *.vcxproj.filters eol=crlf *.sln eol= crlf This implicitly changed the the files to being "text": $ git ls-files --eol contrib/bc/bc.vcxproj i/crlf w/crlf attr/text eol=crlf contrib/bc/bc.vcxproj But the checked-in files still had CRLF in it (which is incompatible with being text). This introduced problems to the repo as described in https://lists.freebsd.org/pipermail/freebsd-current/2021-April/079569.html (basically, as soon as the files are touched, they appear as changed). You can find a good description of this general problem here: https://marc.info/?l=git&m=154484903528621&w=2 I'm not sure what a real solution to fix history would look like - technically I guess that the files should have been renormalized before committing when .gitattributes was added. As a workaround, adding this line to .git/info/attributes works: contrib/bc/bc*.vcx* -text This should allow you to merge your various branches without issues. Best Michael p.s. @Cy to demonstrate the original problem, try: git checkout a4b5f7ba3e touch contrib/bc/*vcx* git status -s This shows: $ git status -s M contrib/bc/bc.vcxproj M contrib/bc/bc.vcxproj.filters M contrib/bc/bcl.vcxproj M contrib/bc/bcl.vcxproj.filters This might look familiar to you: This is the problem you were seeing while rebasing - because these files were affected by my commit, the effect is the same as "touch contrib/bc/*vcx*" had above. When applying the workaround: echo "contrib/bc/bc*.vcx* -text" >>.git/info/attributes the problem disappears: $ git status HEAD detached at a4b5f7ba3e9 nothing to commit, working tree clean Note that this is cached, so if you remove the line from .git/info/attributes, it stays clean until you touch the files again (can be quite confusing). -- Michael Gmelin