sublimehq / sublime_merge

Issue tracker for Sublime Merge
https://www.sublimemerge.com
273 stars 14 forks source link

Attempting to stage files within a directory that contains a `.git` dir (i.e., another git repository) fails silently #1813

Open aremmell opened 10 months ago

aremmell commented 10 months ago

Version info

Description

I tried to stage a bunch of files that I had added to a tools/foo directory inside an existing repository, but they would just stay in untracked files.

I attempted this several times before resorting to a manual git add tools/foo which gave me a warning that I added a git repository (I had forgotten that directory was its own repository).

So I did a rm -rf tools/foo/.git and tried to stage again. This time it worked.

If it helps, I am on a new branch I created with Repository->Create branch and this is the first git operation I've attempted since.

Steps to reproduce

Steps to reproduce the behavior:

  1. Drop a directory that is itself a git repository into a sub-folder of an open repository which you just created and switched to a new branch on
  2. Try to stage the files by selecting all of them, and right-clicking and choosing 'Stage selected' from the menu

Expected behavior

Files are staged, or an error message appears indicating a problem.

Debug Information

=== App Version Information === Build: 2091

=== Git Version Information === Using Git: git (system) git version 2.42.0 PATH: :/Applications/Sublime Text.app/Contents/SharedSupport/bin (from shell) environment variables loaded using: /bin/zsh -l

=== Browse Page Information === HEAD: f8ebecf6498d1837b05f471f30d66413636c0d55 Is in merge: 0 Is in cherry_pick: 0 Is in rebase: 0 Is in revert: 0

=== Git Status Information ===

A files/I/was/able/to/stage/after/deleting/.git A files/I/was/able/to/stage/after/deleting/.git A files/I/was/able/to/stage/after/deleting/.git A files/I/was/able/to/stage/after/deleting/.git A files/I/was/able/to/stage/after/deleting/.git A files/I/was/able/to/stage/after/deleting/.git A files/I/was/able/to/stage/after/deleting/.git ?? files/I/added/somewhere/else/but/didnt/ (parent directory)

=== Our Status Information ===

A files/I/was/able/to/stage/after/deleting/.git A files/I/was/able/to/stage/after/deleting/.git A files/I/was/able/to/stage/after/deleting/.git A files/I/was/able/to/stage/after/deleting/.git A files/I/was/able/to/stage/after/deleting/.git A files/I/was/able/to/stage/after/deleting/.git A files/I/was/able/to/stage/after/deleting/.git ?? files/I/added/somewhere/else/but/didnt/stage ?? files/I/added/somewhere/else/but/didnt/stage ?? files/I/added/somewhere/else/but/didnt/stage ?? files/I/added/somewhere/else/but/didnt/stage ?? files/I/added/somewhere/else/but/didnt/stage ?? files/I/added/somewhere/else/but/didnt/stage ?? files/I/added/somewhere/else/but/didnt/stage ?? files/I/added/somewhere/else/but/didnt/stage

=== Git Config Information === branch.master.merge=refs/heads/master branch.master.remote=origin commit.gpgsign=true core.bare=false core.editor=nano core.filemode=true core.ignorecase=true core.logallrefupdates=true core.precomposeunicode=true core.repositoryformatversion=0 credential.helper=osxkeychain gpg.format=ssh gpg.ssh.allowedsignersfile=~/.ssh/allowed_signers gpg.ssh.program=/Applications/1Password.app/Contents/MacOS/op-ssh-sign remote.origin.fetch=+refs/heads/:refs/remotes/origin/ remote.origin.url=\<redacted> user.email=\<redacted> user.name=\<redacted> user.signingkey=\<redacted>

=== Our Config Information === Git Config Path Information Using config path: /etc/gitconfig Using config path: /Users/ryan/.config/git/config Using config path: /Users/ryan/.gitconfig Using config path: /Users/ryan/Documents/src//.git/config

Our config output is different to the Git config output branch.master.merge=refs/heads/master branch.master.remote=origin commit.gpgsign=true core.bare=false core.editor=nano core.filemode=true core.ignorecase=true core.logallrefupdates=true core.precomposeunicode=true core.repositoryformatversion=0 gpg.format=ssh gpg.ssh.allowedsignersfile=~/.ssh/allowed_signers gpg.ssh.program=/Applications/1Password.app/Contents/MacOS/op-ssh-sign remote.origin.fetch=+refs/heads/:refs/remotes/origin/ remote.origin.url=\<redacted> user.email=\<redacted> user.name=\<redacted> user.signingkey=\<redacted>

=== Git Attributes Information === git check_attr --all output

=== Our Modified Files Newline Normalisation and EOL Information ===

=== Our Modified Files Flag Information === Ignoring symlinks: 0