]> source.dussan.org Git - jgit.git/commit
Introduce core.trustLooseRefStat config 16/1177316/7
authorKaushik Lingarkar <quic_kaushikl@quicinc.com>
Thu, 22 Feb 2024 23:29:48 +0000 (15:29 -0800)
committerMatthias Sohn <matthias.sohn@sap.com>
Mon, 4 Mar 2024 23:17:47 +0000 (00:17 +0100)
commit21f7fdff79ce2863aba40bc2b676059884a3a8e9
treebaab6bd9cfe000d524fd4fdb9dc18994c1a66c79
parent1a654d3db6e5bd667dd5218a55084545538519a2
Introduce core.trustLooseRefStat config

With repositories on NFS, JGit can read an old value of a loose ref
or miss the existence of a loose ref if file attributes of the loose
ref or its parent directories are cached by NFS. Introduce a new config
'core.trustLooseRefStat' that will optionally refresh file attributes of
the loose ref (at least on some NFS clients).

Possible values for this new config are:

* always: Trust loose ref file attributes (default)
* after_open: Similar to 'always', but refresh the file attributes of
              the loose ref and its parent directories before trusting
              it

The default is set to always trust the file attributes as after_open is
known to degrade performance.

In a subsequent change, SnapshottingRefDirectory will be updated to
cache the directories that were refreshed to avoid duplicate work and
thereby improve performance to some extent for the after_open setting.

Change-Id: I9dfaeaf5307b2b51ce6ee4bfd9e0678786685fcf
Signed-off-by: Kaushik Lingarkar <quic_kaushikl@quicinc.com>
Documentation/config-options.md
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java
org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java
org.eclipse.jgit/src/org/eclipse/jgit/lib/CoreConfig.java