Re: Ambigious messages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx> 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




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux