git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* Ambigious messages
@ 2021-07-31  8:46 Eugen Konkov
  2021-07-31 12:31 ` Ambigious messages (sparse checkout) Philip Oakley
  2021-08-01  0:27 ` Ambigious messages Elijah Newren
  0 siblings, 2 replies; 4+ messages in thread
From: Eugen Konkov @ 2021-07-31  8:46 UTC (permalink / raw)
  To: Git Mailing List

$ git checkout 51c7d41b82b5b
error: Your local changes to the following files would be overwritten by checkout:
       lib/Mojo/IOLoop/Stream.pm
Please commit your changes or stash them before you switch branches.
Aborting
$ git checkout lib/Mojo/IOLoop/Stream.pm
error: pathspec 'lib/Mojo/IOLoop/Stream.pm' did not match any file(s) known to git

$ git add lib/Mojo/IOLoop/Stream.pm
The following pathspecs didn't match any eligible path, but they do match index
entries outside the current sparse checkout:
lib/Mojo/IOLoop/Stream.pm
hint: Disable or modify the sparsity rules if you intend to update such entries.
hint: Disable this message with "git config advice.updateSparsePath false"

$ git --version
git version 2.32.0

Here I do not understand how to checkout to different commit
or how to commit the subject file

It would be nice to show hint about how to exlude this file from unindex


--
Best regards,
Eugen Konkov


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Ambigious messages (sparse checkout)
  2021-07-31  8:46 Ambigious messages Eugen Konkov
@ 2021-07-31 12:31 ` Philip Oakley
  2021-08-01  0:27 ` Ambigious messages Elijah Newren
  1 sibling, 0 replies; 4+ messages in thread
From: Philip Oakley @ 2021-07-31 12:31 UTC (permalink / raw)
  To: Eugen Konkov, Git Mailing List

Others may have mistaken this for spam - I nearly did.

On 31/07/2021 09:46, Eugen Konkov wrote:
> $ git checkout 51c7d41b82b5b
> error: Your local changes to the following files would be overwritten by checkout:
>        lib/Mojo/IOLoop/Stream.pm
> Please commit your changes or stash them before you switch branches.
> Aborting
> $ git checkout lib/Mojo/IOLoop/Stream.pm
> error: pathspec 'lib/Mojo/IOLoop/Stream.pm' did not match any file(s) known to git
>
> $ git add lib/Mojo/IOLoop/Stream.pm
> The following pathspecs didn't match any eligible path, but they do match index
> entries outside the current sparse checkout:

I strongly suspect it's a sparse checkout issue, given this message.

Others may be able to help better than I.

> lib/Mojo/IOLoop/Stream.pm
> hint: Disable or modify the sparsity rules if you intend to update such entries.
> hint: Disable this message with "git config advice.updateSparsePath false"
>
> $ git --version
> git version 2.32.0
>
> Here I do not understand how to checkout to different commit
> or how to commit the subject file
>
> It would be nice to show hint about how to exlude this file from unindex
>
>
> --
> Best regards,
> Eugen Konkov
>
--
Philip

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Ambigious messages
  2021-07-31  8:46 Ambigious messages Eugen Konkov
  2021-07-31 12:31 ` Ambigious messages (sparse checkout) Philip Oakley
@ 2021-08-01  0:27 ` Elijah Newren
  2021-08-02 13:48   ` Eugen Konkov
  1 sibling, 1 reply; 4+ messages in thread
From: Elijah Newren @ 2021-08-01  0:27 UTC (permalink / raw)
  To: Eugen Konkov; +Cc: Git Mailing List, Derrick Stolee

Hi Eugen,

On Sat, Jul 31, 2021 at 2:56 AM Eugen Konkov <kes-kes@yandex.ru> wrote:
>
> $ git checkout 51c7d41b82b5b
> error: Your local changes to the following files would be overwritten by checkout:
>        lib/Mojo/IOLoop/Stream.pm
> Please commit your changes or stash them before you switch branches.
> Aborting

The error seems quite reasonable to me...but can I ask how you got
into this state?

There's two ways I know of:

1) Setting a sparse-checkout to only have certain paths, and then
recreating a file outside the sparsity paths anyway.
2) Trying to adjust your sparse-checkout to have a different set of
paths, then hit Ctrl-C while it is in the middle of running.

Did you do one of these?  If not, what'd you do?  If so, which one?

I've only had confused users come to me when they did the latter; they
apparently assumed Ctrl-C would abort the operation and return to the
previous state, but it does not -- whatever was successfully checked
out before they hit Ctrl-C remains written to the working copy, but
the .git/info/sparse-checkout file is updated last so the system
continues assuming the old checkout.  I wonder if we need to add some
special Ctrl-C handling inside sparse-checkout adjustments or
something.

> $ git checkout lib/Mojo/IOLoop/Stream.pm
> error: pathspec 'lib/Mojo/IOLoop/Stream.pm' did not match any file(s) known to git

This error message is clearly suboptimal and should be improved.
Alternatively, though, we could perhaps change the behavior so that
when in a sparse-checkout and the file(s) that match are SKIP_WORKTREE
but present anyway, we could just remove the file from the working
copy (i.e. make it match the index).

> $ git add lib/Mojo/IOLoop/Stream.pm
> The following pathspecs didn't match any eligible path, but they do match index
> entries outside the current sparse checkout:
> lib/Mojo/IOLoop/Stream.pm
> hint: Disable or modify the sparsity rules if you intend to update such entries.
> hint: Disable this message with "git config advice.updateSparsePath false"

The error message is correct, but this is the case Stolee was talking
about recently where it'd be good to add an override to "git add" to
allow adding it anyway and add information about using that option to
this error message.

> $ git --version
> git version 2.32.0
>
> Here I do not understand how to checkout to different commit
> or how to commit the subject file

I'll give you three different ways you should be able to do it:

1. Since you wanted to just restore the file to the version in the
index (as per your `git checkout lib/Mojo/IOLoop/Stream.pm` command),
you can simply delete the file (`rm lib/Mojo/IOLoop/Stream.pm`) and
everything would be fine.

2. You could change your sparsity paths to include this file so it
doesn't think it should be excluded from the working tree, e.g. `git
sparse-checkout add lib/Mojo/IOLoop` or even `git sparse-checkout add
lib/Mojo/IOLoop/Stream.pm`.  That'd be most useful if you made
important edits to the file or want to continue editing the file and
committing changes in it.

3. You could just disable the sparse-checkout entirely (`git
sparse-checkout disable`).  That'd make it so you don't have to worry
about this path or any other being simultaneously excluded and present
in the working tree.  You should be able to fix things up normally.
And, if you want, when you're done fixing things up, then set up a
sparse-checkout again.


> It would be nice to show hint about how to exlude this file from unindex

Yes, we need to improve some error messages here (and perhaps tweak
some behavior as well).  Thanks for the report.

Elijah

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Ambigious messages
  2021-08-01  0:27 ` Ambigious messages Elijah Newren
@ 2021-08-02 13:48   ` Eugen Konkov
  0 siblings, 0 replies; 4+ messages in thread
From: Eugen Konkov @ 2021-08-02 13:48 UTC (permalink / raw)
  To: Elijah Newren; +Cc: Git Mailing List, Derrick Stolee

Hello Elijah,

Sunday, August 1, 2021, 3:27:07 AM, you wrote:

> Hi Eugen,

> On Sat, Jul 31, 2021 at 2:56 AM Eugen Konkov <kes-kes@yandex.ru> wrote:

>> $ git checkout 51c7d41b82b5b
>> error: Your local changes to the following files would be overwritten by checkout:
>>        lib/Mojo/IOLoop/Stream.pm
>> Please commit your changes or stash them before you switch branches.
>> Aborting

> The error seems quite reasonable to me...but can I ask how you got
> into this state?

> There's two ways I know of:

> 1) Setting a sparse-checkout to only have certain paths, and then
> recreating a file outside the sparsity paths anyway.
> 2) Trying to adjust your sparse-checkout to have a different set of
> paths, then hit Ctrl-C while it is in the middle of running.

> Did you do one of these?  If not, what'd you do?  If so, which one?

> I've only had confused users come to me when they did the latter; they
> apparently assumed Ctrl-C would abort the operation and return to the
> previous state, but it does not -- whatever was successfully checked
> out before they hit Ctrl-C remains written to the working copy, but
> the .git/info/sparse-checkout file is updated last so the system
> continues assuming the old checkout.  I wonder if we need to add some
> special Ctrl-C handling inside sparse-checkout adjustments or
> something.

>> $ git checkout lib/Mojo/IOLoop/Stream.pm
>> error: pathspec 'lib/Mojo/IOLoop/Stream.pm' did not match any file(s) known to git

> This error message is clearly suboptimal and should be improved.
> Alternatively, though, we could perhaps change the behavior so that
> when in a sparse-checkout and the file(s) that match are SKIP_WORKTREE
> but present anyway, we could just remove the file from the working
> copy (i.e. make it match the index).

>> $ git add lib/Mojo/IOLoop/Stream.pm
>> The following pathspecs didn't match any eligible path, but they do match index
>> entries outside the current sparse checkout:
>> lib/Mojo/IOLoop/Stream.pm
>> hint: Disable or modify the sparsity rules if you intend to update such entries.
>> hint: Disable this message with "git config advice.updateSparsePath false"

> The error message is correct, but this is the case Stolee was talking
> about recently where it'd be good to add an override to "git add" to
> allow adding it anyway and add information about using that option to
> this error message.

>> $ git --version
>> git version 2.32.0

>> Here I do not understand how to checkout to different commit
>> or how to commit the subject file

> I'll give you three different ways you should be able to do it:

> 1. Since you wanted to just restore the file to the version in the
> index (as per your `git checkout lib/Mojo/IOLoop/Stream.pm` command),
> you can simply delete the file (`rm lib/Mojo/IOLoop/Stream.pm`) and
> everything would be fine.

> 2. You could change your sparsity paths to include this file so it
> doesn't think it should be excluded from the working tree, e.g. `git
> sparse-checkout add lib/Mojo/IOLoop` or even `git sparse-checkout add
> lib/Mojo/IOLoop/Stream.pm`.  That'd be most useful if you made
> important edits to the file or want to continue editing the file and
> committing changes in it.

> 3. You could just disable the sparse-checkout entirely (`git
> sparse-checkout disable`).  That'd make it so you don't have to worry
> about this path or any other being simultaneously excluded and present
> in the working tree.  You should be able to fix things up normally.
> And, if you want, when you're done fixing things up, then set up a
> sparse-checkout again.


>> It would be nice to show hint about how to exlude this file from unindex

> Yes, we need to improve some error messages here (and perhaps tweak
> some behavior as well).  Thanks for the report.

>>Thanks for the report.
Thank you for the support!

> Did you do one of these?  If not, what'd you do?  If so, which one?
None  of  these.  I even do not remember sharp command how I fall into
this. This were two or three months ago... I just remember that I have
added this file to "ignore" it from tracking:

     git update-index --assume-unchanged lib/Mojo/IOLoop/Stream.pm

This feature is like: hide file from output.
Git  do something with this file so it is tracked in some way but just
is not displayed when `git status` command is done.

So it would be nice if I can do:

    git hide lib/Mojo/IOLoop/Stream.pm

and this file is hidden from output.
But `git status --verbose` will show it anyway. Compare:

git status

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
1       modified:   cpanfile.snapshot

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)
2       modified:   ext/Auth/Mojolicious/Plugin/Auth.pm
3       modified:   front/readme.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
4       .prove


git status --verbose
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
1       modified:   cpanfile.snapshot

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)
2       modified:   ext/Auth/Mojolicious/Plugin/Auth.pm
3       modified:   front/readme.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
4       .prove

Files hidden from output:
      (use "git unhide <file>...." to unhide these files)
5      lib/Mojo/IOLoop/Stream.pm


I   am   not   expert,   this  is just my user point of view. Probably
there  alredy  some exisisting interface. I just outline how it would be
handy from my point.

Also this topic seems hot: https://stackoverflow.com/questions/936249/how-to-stop-tracking-and-ignore-changes-to-a-file-in-git




-- 
Best regards,
Eugen Konkov


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-08-02 13:50 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-31  8:46 Ambigious messages Eugen Konkov
2021-07-31 12:31 ` Ambigious messages (sparse checkout) Philip Oakley
2021-08-01  0:27 ` Ambigious messages Elijah Newren
2021-08-02 13:48   ` Eugen Konkov

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).