Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[NBug] #11221

Closed
fschop opened this issue Sep 21, 2023 · 3 comments
Closed

[NBug] #11221

fschop opened this issue Sep 21, 2023 · 3 comments

Comments

@fschop
Copy link

fschop commented Sep 21, 2023

Environment

  • Git Extensions 4.1.0.16698
  • Build 1fe52a1
  • Git 2.41.0.windows.1
  • Microsoft Windows NT 10.0.19044.0
  • .NET 6.0.16
  • DPI 96dpi (no scaling)
  • Portable: False

Issue description

Exit code: 128
Command: C:\Program Files\Git\bin\git.exe
Arguments: remote
Working directory: D:\Werk\Git\DDE\

GitExtUtils.ExternalOperationException
 ---> System.Exception
   --- End of inner exception stack trace ---
   at async Task<ExecutionResult> GitCommands.ExecutableExtensions.ExecuteAsync(IExecutable executable, ArgumentString arguments, Action<StreamWriter> writeInput, Encoding outputEncoding, CommandCache cache, bool stripAnsiEscapeCodes, bool throwOnErrorExit, CancellationToken cancellationToken) in C:/projects/gitextensions/GitCommands/Git/ExecutableExtensions.cs:line 323
   at void Microsoft.VisualStudio.Threading.JoinableTask.CompleteOnCurrentThread()
   at T Microsoft.VisualStudio.Threading.JoinableTask<T>.CompleteOnCurrentThread()
   at T Microsoft.VisualStudio.Threading.JoinableTaskFactory.Run<T>(Func<Task<T>> asyncMethod, JoinableTaskCreationOptions creationOptions) x 2
   at ExecutionResult GitCommands.ExecutableExtensions.Execute(IExecutable executable, ArgumentString arguments, Action<StreamWriter> writeInput, Encoding outputEncoding, CommandCache cache, bool stripAnsiEscapeCodes, bool throwOnErrorExit, CancellationToken cancellationToken) in C:/projects/gitextensions/GitCommands/Git/ExecutableExtensions.cs:line 259
   at IReadOnlyList<string> GitCommands.GitModule.GetRemoteNames() in C:/projects/gitextensions/GitCommands/Git/GitModule.cs:line 2220
   at IReadOnlyList<IHostedRemote> GitExtensions.Plugins.GitHub3.GitHub3Plugin.GetHostedRemotesForModule()+Remotes() in C:/projects/gitextensions/Plugins/GitHub3/GitHub3Plugin.cs:line 235
   at new System.Collections.Generic.List<T>(IEnumerable<T> collection)
   at List<TSource> System.Linq.Enumerable.ToList<TSource>(IEnumerable<TSource> source)
   at IReadOnlyList<IHostedRemote> GitExtensions.Plugins.GitHub3.GitHub3Plugin.GetHostedRemotesForModule() in C:/projects/gitextensions/Plugins/GitHub3/GitHub3Plugin.cs:line 229
   at bool GitExtensions.Plugins.GitHub3.GitHub3Plugin.GitModuleIsRelevantToMe() in C:/projects/gitextensions/Plugins/GitHub3/GitHub3Plugin.cs:line 215
   at IRepositoryHostPlugin GitUI.PluginRegistry.TryGetGitHosterForModule(GitModule module)+(IRepositoryHostPlugin gitHoster) => { } in C:/projects/gitextensions/GitUI/Plugin/PluginRegistry.cs:line 59
   at TSource System.Linq.Enumerable.TryGetFirst<TSource>(IEnumerable<TSource> source, Func<TSource, bool> predicate, out bool found)
   at TSource System.Linq.Enumerable.FirstOrDefault<TSource>(IEnumerable<TSource> source, Func<TSource, bool> predicate)
   at IRepositoryHostPlugin GitUI.PluginRegistry.TryGetGitHosterForModule(GitModule module) in C:/projects/gitextensions/GitUI/Plugin/PluginRegistry.cs:line 59
   at void GitUI.CommandsDialogs.RevisionDiffControl.RegisterGitHostingPluginInBlameControl() in C:/projects/gitextensions/GitUI/CommandsDialogs/RevisionDiffControl.cs:line 1466
   at async GitUI.CommandsDialogs.FormBrowse(GitUICommands commands, BrowseArguments args)+(?) => { } in C:/projects/gitextensions/GitUI/CommandsDialogs/FormBrowse.cs:line 280
   at async void GitUI.TaskManager.FileAndForget(Task task, Func<Exception, bool> fileOnlyIf)+(?) => { } in C:/projects/gitextensions/GitExtUtils/GitUI/TaskManager.cs:line 29

Made a clone from a local repository to an USB disk drive (D:) on Windows, using command line (CMD shell): git clone -nocheckout c:\Git\DDE. Then tried to open the git clone on the D: drive with Git Extension, resulting in this exception.
The USB-drive is a FAT32 file system of about 2 TB size.
'git status' gives a fatal error:
fatal: detected dubious ownership in repository at 'D:/Werk/Git/DDE'
'D:/Werk/Git/DDE' is on a file system that does not record ownership

So apparently, FAT32 is not able to register ownship and therefore Git should not complain about owership and Git Extensions should not crash. Instead it should cope with the situation and offer a workaround (e.g. git config --global --add safe.directory D:/Werk/Git/DDE)

Steps to reproduce

Copy (or clone) as Git repository to a USB-drive with FAT32 file system.
Open the Git clone in Git Extensions. Git Extension with throw the exception.

git status on the Git clone shows:
D:\Werk\Git\DDE>git status
fatal: detected dubious ownership in repository at 'D:/Werk/Git/DDE'
'D:/Werk/Git/DDE' is on a file system that does not record ownership
To add an exception for this directory, call:

    git config --global --add safe.directory D:/Werk/Git/DDE

Did this work in previous version of GitExtensions?

No response

Diagnostics

No response

@duplicates-detector-bot
Copy link

Potential duplicates:

  • #6938
  • #10324
  • #10329
  • #10336
  • #10343
  • #10391
  • #10415
  • #10417
  • #10420
  • #10440
  • #10446
  • #10513
  • #10550
  • #10554
  • #10584
  • #10606
  • #10655
  • #10675
  • #10739
  • #10816
  • #10975
  • #11043
  • #11064
  • #11086

1 similar comment
@duplicates-detector-bot
Copy link

Potential duplicates:

  • #6938
  • #10324
  • #10329
  • #10336
  • #10343
  • #10391
  • #10415
  • #10417
  • #10420
  • #10440
  • #10446
  • #10513
  • #10550
  • #10554
  • #10584
  • #10606
  • #10655
  • #10675
  • #10739
  • #10816
  • #10975
  • #11043
  • #11064
  • #11086

@pmiossec
Copy link
Member

Fixed by #11062 ( Followup of #10436 due to a regression in the handling when fixing another issue). Waiting next release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants