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

Hard reset does not change executable bit if it is the only change #138

Closed
HarrisonMc555 opened this issue Feb 6, 2025 · 1 comment
Closed
Assignees
Labels
bug Something isn't working
Milestone

Comments

@HarrisonMc555
Copy link

Version

7.1.0

Operating System

MacOS, Linux/Unix

Bug description

If you perform a hard reset and the only change for a file is the executable flag, then the file will not be modified in stage or on disk.

$ git init repo
$ echo 'echo hello' > script.sh
$ git add script.sh
$ git commit -m "Add script.sh"
$ commit_id="$(git rev-parse HEAD)"
$ git chmod +x script.sh
$ git add script.sh
$ git commit -m "Mark script.sh as executable"
$ jgit-reset-hard "$commit_id"
$ git status

Actual behavior

$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	modified:   script.sh

$ git diff --cached
diff --git a/script.sh b/script.sh
old mode 100644
new mode 100755

Expected behavior

$ git status
On branch master
nothing to commit, working tree clean

$ git diff --cached

$ git diff

Relevant log output

[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.util.ShutdownHook - register org.eclipse.jgit.util.FS$FileStoreAttributes$$Lambda$242/0x00000070012bcd20@282a6d6b with shutdown hook
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=null, size changed from -1 to 2164 bytes
[PerformHardReset.main()] DEBUG org.eclipse.jgit.util.SystemReader - loading config FileBasedConfig[/my/home/directory/.config/jgit/config]
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, create new FileSnapshot: lastRead=2025-02-06 15:01:00.391635000, lastModified=2025-02-06 14:10:23.687933142, size=2164, fileKey=(dev=1000011,ino=184009684)
[PerformHardReset.main()] DEBUG org.eclipse.jgit.util.FS - readpipe [/opt/homebrew/bin/git, --version],/opt/homebrew/bin
[PerformHardReset.main()] DEBUG org.eclipse.jgit.util.FS - readpipe may return 'git version 2.46.2'
[PerformHardReset.main()] DEBUG org.eclipse.jgit.util.FS - remaining output:

[PerformHardReset.main()] DEBUG org.eclipse.jgit.util.FS - readpipe [/opt/homebrew/bin/git, config, --system, --show-origin, --list, -z],/opt/homebrew/bin
[PerformHardReset.main()] DEBUG org.eclipse.jgit.util.FS - readpipe may return 'file:/opt/homebrew/etc/gitconfig�credential.helper'
[PerformHardReset.main()] DEBUG org.eclipse.jgit.util.FS - remaining output:

[PerformHardReset.main()] DEBUG org.eclipse.jgit.util.FS - osxkeychain�
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, isRacyClean=false, read=2025-02-06 15:01:00.391635000, lastModified=2025-02-06 14:10:23.687933142, delta=3036703701858 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=null, size changed from -1 to 35 bytes
[PerformHardReset.main()] DEBUG org.eclipse.jgit.util.SystemReader - loading config FileBasedConfig[/opt/homebrew/etc/gitconfig]
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, create new FileSnapshot: lastRead=2025-02-06 15:01:00.420747000, lastModified=2024-10-01 00:00:19.347920839, size=35, fileKey=(dev=1000011,ino=5777573)
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, isRacyClean=false, read=2025-02-06 15:01:00.391635000, lastModified=2025-02-06 14:10:23.687933142, delta=3036703701858 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.420747000, lastModified=2024-10-01 00:00:19.347920839, delta=11113241072826161 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=null, size changed from -1 to 0 bytes
[PerformHardReset.main()] DEBUG org.eclipse.jgit.util.SystemReader - loading config FileBasedConfig[/my/home/directory/.config/git/config]
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=null, size changed from -1 to 51 bytes
[PerformHardReset.main()] DEBUG org.eclipse.jgit.util.SystemReader - loading config UserConfigFile[/my/home/directory/.gitconfig]
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=null, size changed from -1 to 51 bytes
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, create new FileSnapshot: lastRead=2025-02-06 15:01:00.421594000, lastModified=2022-01-31 09:32:25.367234588, size=51, fileKey=(dev=1000011,ino=2563508)
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, create new FileSnapshot: lastRead=2025-02-06 15:01:00.426299000, lastModified=2025-02-06 14:54:35.019791197, size=137, fileKey=(dev=1000011,ino=184025403)
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, isRacyClean=false, read=2025-02-06 15:01:00.391635000, lastModified=2025-02-06 14:10:23.687933142, delta=3036703701858 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.420747000, lastModified=2024-10-01 00:00:19.347920839, delta=11113241072826161 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.421594000, lastModified=2022-01-31 09:32:25.367234588, delta=95232515054359412 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, isRacyClean=false, read=2025-02-06 15:01:00.426299000, lastModified=2025-02-06 14:54:35.019791197, delta=385406507803 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, isRacyClean=false, read=2025-02-06 15:01:00.391635000, lastModified=2025-02-06 14:10:23.687933142, delta=3036703701858 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.420747000, lastModified=2024-10-01 00:00:19.347920839, delta=11113241072826161 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.421594000, lastModified=2022-01-31 09:32:25.367234588, delta=95232515054359412 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, isRacyClean=false, read=2025-02-06 15:01:00.426299000, lastModified=2025-02-06 14:54:35.019791197, delta=385406507803 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, isRacyClean=false, read=2025-02-06 15:01:00.391635000, lastModified=2025-02-06 14:10:23.687933142, delta=3036703701858 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.420747000, lastModified=2024-10-01 00:00:19.347920839, delta=11113241072826161 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.421594000, lastModified=2022-01-31 09:32:25.367234588, delta=95232515054359412 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, isRacyClean=false, read=2025-02-06 15:01:00.426299000, lastModified=2025-02-06 14:54:35.019791197, delta=385406507803 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, isRacyClean=false, read=2025-02-06 15:01:00.391635000, lastModified=2025-02-06 14:10:23.687933142, delta=3036703701858 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.420747000, lastModified=2024-10-01 00:00:19.347920839, delta=11113241072826161 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.421594000, lastModified=2022-01-31 09:32:25.367234588, delta=95232515054359412 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, isRacyClean=false, read=2025-02-06 15:01:00.426299000, lastModified=2025-02-06 14:54:35.019791197, delta=385406507803 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/index, create new FileSnapshot: lastRead=2025-02-06 15:01:00.437932000, lastModified=2025-02-06 15:00:12.403936580, size=104, fileKey=(dev=1000011,ino=184027102)
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=null, size changed from -1 to 64 bytes
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/objects/pack, create new FileSnapshot: lastRead=2025-02-06 15:01:00.448096000, lastModified=2025-02-06 14:54:35.021886207, size=64, fileKey=(dev=1000011,ino=184025409)
[ForkJoinPool.commonPool-worker-3] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, isRacyClean=false, read=2025-02-06 15:01:00.391635000, lastModified=2025-02-06 14:10:23.687933142, delta=3036703701858 ns, racy<=2500000000 ns
[ForkJoinPool.commonPool-worker-3] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, is unmodified
[ForkJoinPool.commonPool-worker-3] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.420747000, lastModified=2024-10-01 00:00:19.347920839, delta=11113241072826161 ns, racy<=2500000000 ns
[ForkJoinPool.commonPool-worker-3] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, is unmodified
[ForkJoinPool.commonPool-worker-3] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.421594000, lastModified=2022-01-31 09:32:25.367234588, delta=95232515054359412 ns, racy<=2500000000 ns
[ForkJoinPool.commonPool-worker-3] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/objects/pack, isRacyClean=false, read=2025-02-06 15:01:00.448096000, lastModified=2025-02-06 14:54:35.021886207, delta=385426209793 ns, racy<=7500 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/objects/pack, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/HEAD, create new FileSnapshot: lastRead=2025-02-06 15:01:00.453030000, lastModified=2025-02-06 14:54:35.021578747, size=23, fileKey=(dev=1000011,ino=184025407)
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/refs/heads/master, create new FileSnapshot: lastRead=2025-02-06 15:01:00.454040000, lastModified=2025-02-06 14:54:36.551031656, size=41, fileKey=(dev=1000011,ino=184025459)
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, isRacyClean=false, read=2025-02-06 15:01:00.391635000, lastModified=2025-02-06 14:10:23.687933142, delta=3036703701858 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.420747000, lastModified=2024-10-01 00:00:19.347920839, delta=11113241072826161 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.421594000, lastModified=2022-01-31 09:32:25.367234588, delta=95232515054359412 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.util.ShutdownHook - register org.eclipse.jgit.internal.storage.file.LockFile$$Lambda$255/0x000000700131e000@2396b279 with shutdown hook
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/refs/heads/master, isRacyClean=false, read=2025-02-06 15:01:00.454040000, lastModified=2025-02-06 14:54:36.551031656, delta=383903008344 ns, racy<=7500 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/refs/heads/master, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.util.ShutdownHook - unregister org.eclipse.jgit.internal.storage.file.LockFile$$Lambda$255/0x000000700131e000@2396b279 from shutdown hook
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/HEAD, isRacyClean=false, read=2025-02-06 15:01:00.453030000, lastModified=2025-02-06 14:54:35.021578747, delta=385431451253 ns, racy<=7500 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/HEAD, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/refs/heads/master, isRacyClean=false, read=2025-02-06 15:01:00.454040000, lastModified=2025-02-06 14:54:36.551031656, delta=383903008344 ns, racy<=7500 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/refs/heads/master, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.util.ShutdownHook - register org.eclipse.jgit.internal.storage.file.LockFile$$Lambda$255/0x000000700131e000@79f98c2d with shutdown hook
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/index, create new FileSnapshot: lastRead=2025-02-06 15:01:00.460747000, lastModified=2025-02-06 15:00:12.403936580, size=104, fileKey=(dev=1000011,ino=184027102)
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/index, create new FileSnapshot: lastRead=2025-02-06 15:01:00.461038000, lastModified=2025-02-06 15:00:12.403936580, size=104, fileKey=(dev=1000011,ino=184027102)
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, isRacyClean=false, read=2025-02-06 15:01:00.391635000, lastModified=2025-02-06 14:10:23.687933142, delta=3036703701858 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.420747000, lastModified=2024-10-01 00:00:19.347920839, delta=11113241072826161 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.421594000, lastModified=2022-01-31 09:32:25.367234588, delta=95232515054359412 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, isRacyClean=false, read=2025-02-06 15:01:00.426299000, lastModified=2025-02-06 14:54:35.019791197, delta=385406507803 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, isRacyClean=false, read=2025-02-06 15:01:00.391635000, lastModified=2025-02-06 14:10:23.687933142, delta=3036703701858 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.420747000, lastModified=2024-10-01 00:00:19.347920839, delta=11113241072826161 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.421594000, lastModified=2022-01-31 09:32:25.367234588, delta=95232515054359412 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, isRacyClean=false, read=2025-02-06 15:01:00.426299000, lastModified=2025-02-06 14:54:35.019791197, delta=385406507803 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, isRacyClean=false, read=2025-02-06 15:01:00.391635000, lastModified=2025-02-06 14:10:23.687933142, delta=3036703701858 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.420747000, lastModified=2024-10-01 00:00:19.347920839, delta=11113241072826161 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.421594000, lastModified=2022-01-31 09:32:25.367234588, delta=95232515054359412 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, isRacyClean=false, read=2025-02-06 15:01:00.426299000, lastModified=2025-02-06 14:54:35.019791197, delta=385406507803 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, isRacyClean=false, read=2025-02-06 15:01:00.391635000, lastModified=2025-02-06 14:10:23.687933142, delta=3036703701858 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.420747000, lastModified=2024-10-01 00:00:19.347920839, delta=11113241072826161 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.421594000, lastModified=2022-01-31 09:32:25.367234588, delta=95232515054359412 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, isRacyClean=false, read=2025-02-06 15:01:00.426299000, lastModified=2025-02-06 14:54:35.019791197, delta=385406507803 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/objects/pack, isRacyClean=false, read=2025-02-06 15:01:00.448096000, lastModified=2025-02-06 14:54:35.021886207, delta=385426209793 ns, racy<=7500 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/objects/pack, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/index.lock, create new FileSnapshot: lastRead=2025-02-06 15:01:00.471216000, lastModified=2025-02-06 15:01:00.460306821, size=0, fileKey=(dev=1000011,ino=184027250)
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, isRacyClean=false, read=2025-02-06 15:01:00.391635000, lastModified=2025-02-06 14:10:23.687933142, delta=3036703701858 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.420747000, lastModified=2024-10-01 00:00:19.347920839, delta=11113241072826161 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.421594000, lastModified=2022-01-31 09:32:25.367234588, delta=95232515054359412 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, isRacyClean=false, read=2025-02-06 15:01:00.426299000, lastModified=2025-02-06 14:54:35.019791197, delta=385406507803 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.util.ShutdownHook - unregister org.eclipse.jgit.internal.storage.file.LockFile$$Lambda$255/0x000000700131e000@79f98c2d from shutdown hook
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/index.lock, create new FileSnapshot: lastRead=2025-02-06 15:01:00.471872000, lastModified=2025-02-06 15:01:00.471794288, size=104, fileKey=(dev=1000011,ino=184027250)
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, isRacyClean=false, read=2025-02-06 15:01:00.391635000, lastModified=2025-02-06 14:10:23.687933142, delta=3036703701858 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.420747000, lastModified=2024-10-01 00:00:19.347920839, delta=11113241072826161 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.421594000, lastModified=2022-01-31 09:32:25.367234588, delta=95232515054359412 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, isRacyClean=false, read=2025-02-06 15:01:00.426299000, lastModified=2025-02-06 14:54:35.019791197, delta=385406507803 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/HEAD, isRacyClean=false, read=2025-02-06 15:01:00.453030000, lastModified=2025-02-06 14:54:35.021578747, delta=385431451253 ns, racy<=7500 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/HEAD, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/refs/heads/master, isRacyClean=false, read=2025-02-06 15:01:00.454040000, lastModified=2025-02-06 14:54:36.551031656, delta=383903008344 ns, racy<=7500 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/refs/heads/master, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/index, create new FileSnapshot: lastRead=2025-02-06 15:01:00.477634000, lastModified=2025-02-06 15:01:00.471794288, size=104, fileKey=(dev=1000011,ino=184027250)
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/index, create new FileSnapshot: lastRead=2025-02-06 15:01:00.477701000, lastModified=2025-02-06 15:01:00.471794288, size=104, fileKey=(dev=1000011,ino=184027250)
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, isRacyClean=false, read=2025-02-06 15:01:00.391635000, lastModified=2025-02-06 14:10:23.687933142, delta=3036703701858 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.config/jgit/config, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.420747000, lastModified=2024-10-01 00:00:19.347920839, delta=11113241072826161 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/opt/homebrew/etc/gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, isRacyClean=false, read=2025-02-06 15:01:00.421594000, lastModified=2022-01-31 09:32:25.367234588, delta=95232515054359412 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=/my/home/directory/.gitconfig, is unmodified
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, isRacyClean=false, read=2025-02-06 15:01:00.426299000, lastModified=2025-02-06 14:54:35.019791197, delta=385406507803 ns, racy<=2500000000 ns
[PerformHardReset.main()] DEBUG org.eclipse.jgit.internal.storage.file.FileSnapshot - file=repo/.git/config, is unmodified

Other information

Here is a reproduction via Maven and a shell script (demo.sh). The only dependencies should be Java and Maven. It will create a Git directory named repo but will delete and re-create it every time.

jgit-problem-demo.zip

@HarrisonMc555 HarrisonMc555 changed the title Hard reset does not change executable bit Hard reset does not change executable bit if it is the only change Feb 6, 2025
@tomaswolf
Copy link
Contributor

Gerrit change 1208535 fixes this.

@tomaswolf tomaswolf self-assigned this Feb 8, 2025
@tomaswolf tomaswolf added the bug Something isn't working label Feb 8, 2025
@tomaswolf tomaswolf added this to the 7.2.0 milestone Feb 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants