git-commit-vandalism/builtin
Christian Couder 435ec090ec config: add core.untrackedCache
When we know that mtime on directory as given by the environment
is usable for the purpose of untracked cache, we may want the
untracked cache to be always used without any mtime test or
kernel name check being performed.

Also when we know that mtime is not usable for the purpose of
untracked cache, for example because the repo is shared over a
network file system, we may want the untracked-cache to be
automatically removed from the index.

Allow the user to express such preference by setting the
'core.untrackedCache' configuration variable, which can take
'keep', 'false', or 'true' and default to 'keep'.

When read_index_from() is called, it now adds or removes the
untracked cache in the index to respect the value of this
variable. So it does nothing if the value is `keep` or if the
variable is unset; it adds the untracked cache if the value is
`true`; and it removes the cache if the value is `false`.

`git update-index --[no-|force-]untracked-cache` still adds the
untracked cache to, or removes it, from the index, but this
shows a warning if it goes against the value of
core.untrackedCache, because the next time the index is read
the untracked cache will be added or removed if the
configuration is set to do so.

Also `--untracked-cache` used to check that the underlying
operating system and file system change `st_mtime` field of a
directory if files are added or deleted in that directory. But
because those tests take a long time, `--untracked-cache` no
longer performs them. Instead, there is now
`--test-untracked-cache` to perform the tests. This change
makes `--untracked-cache` the same as `--force-untracked-cache`.

This last change is backward incompatible and should be
mentioned in the release notes.

Helped-by: Duy Nguyen <pclouds@gmail.com>
Helped-by: Torsten Bögershausen <tboegi@web.de>
Helped-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>

read-cache: Duy'sfixup

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-01-27 12:30:00 -08:00
..
add.c Merge branch 'jc/add-u-A-default-to-top' into maint 2015-11-05 12:18:12 -08:00
am.c Convert struct object to object_id 2015-11-20 08:02:05 -05:00
annotate.c
apply.c apply: convert root string to strbuf 2015-10-05 11:08:04 -07:00
archive.c
bisect--helper.c
blame.c Merge branch 'bc/object-id' 2015-12-10 12:36:13 -08:00
branch.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
bundle.c
cat-file.c usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
check-attr.c usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
check-ignore.c usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
check-mailmap.c
check-ref-format.c
checkout-index.c
checkout.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
clean.c use strbuf_complete to conditionally append slash 2015-10-05 11:08:06 -07:00
clone.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
column.c
commit-tree.c Convert struct object to object_id 2015-11-20 08:02:05 -05:00
commit.c Merge branch 'bc/object-id' 2015-12-10 12:36:13 -08:00
config.c config: use xstrfmt in normalize_value 2015-09-25 10:18:18 -07:00
count-objects.c
credential.c
describe.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
diff-files.c
diff-index.c
diff-tree.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
diff.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
fast-export.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
fetch-pack.c add_sought_entry_mem: convert to struct object_id 2015-11-20 08:02:05 -05:00
fetch.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
fmt-merge-msg.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
for-each-ref.c ref-filter: add option to match literal pattern 2015-09-17 10:02:49 -07:00
fsck.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
gc.c Merge branch 'dk/gc-idx-wo-pack' 2015-11-20 06:55:34 -05:00
get-tar-commit-id.c usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
grep.c Merge branch 'bc/object-id' 2015-12-10 12:36:13 -08:00
hash-object.c usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
help.c convert strncpy to memcpy 2015-10-05 11:08:06 -07:00
index-pack.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
init-db.c initdb: make safe_create_dir public 2015-11-20 04:52:01 -05:00
interpret-trailers.c
log.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
ls-files.c
ls-remote.c Convert struct ref to use object_id. 2015-11-20 08:02:05 -05:00
ls-tree.c convert trivial sprintf / strcpy calls to xsnprintf 2015-09-25 10:18:18 -07:00
mailinfo.c mailinfo: libify 2015-10-21 15:59:34 -07:00
mailsplit.c mailsplit: make PATH_MAX buffers dynamic 2015-09-25 10:18:18 -07:00
merge-base.c Convert struct object to object_id 2015-11-20 08:02:05 -05:00
merge-file.c Merge branch 'jk/merge-file-exit-code' into maint 2015-11-03 15:32:41 -08:00
merge-index.c use sha1_to_hex_r() instead of strcpy 2015-10-05 11:08:05 -07:00
merge-ours.c
merge-recursive.c convert trivial sprintf / strcpy calls to xsnprintf 2015-09-25 10:18:18 -07:00
merge-tree.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
merge.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
mktag.c usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
mktree.c
mv.c
name-rev.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
notes.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
pack-objects.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
pack-redundant.c
pack-refs.c
patch-id.c usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
prune-packed.c
prune.c Merge branch 'jk/repository-extension' into maint 2015-11-03 15:32:25 -08:00
pull.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
push.c
read-tree.c convert trivial sprintf / strcpy calls to xsnprintf 2015-09-25 10:18:18 -07:00
receive-pack.c Convert struct ref to use object_id. 2015-11-20 08:02:05 -05:00
reflog.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
remote-ext.c remote-ext: simplify git pkt-line generation 2015-09-25 10:18:18 -07:00
remote-fd.c
remote.c ref_newer: convert to use struct object_id 2015-11-20 08:02:05 -05:00
repack.c Merge branch 'jk/repository-extension' into maint 2015-11-03 15:32:25 -08:00
replace.c Convert struct object to object_id 2015-11-20 08:02:05 -05:00
rerere.c Sync with 2.6.1 2015-10-05 13:20:08 -07:00
reset.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
rev-list.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
rev-parse.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
revert.c
rm.c
send-pack.c
shortlog.c Convert struct object to object_id 2015-11-20 08:02:05 -05:00
show-branch.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
show-ref.c show-ref: stop using PARSE_OPT_NO_INTERNAL_HELP 2015-11-20 08:02:07 -05:00
stripspace.c Merge branch 'jc/usage-stdin' into maint 2015-11-03 15:32:38 -08:00
submodule--helper.c
symbolic-ref.c
tag.c Merge branch 'kn/for-each-tag' 2015-10-26 15:55:22 -07:00
unpack-file.c convert trivial sprintf / strcpy calls to xsnprintf 2015-09-25 10:18:18 -07:00
unpack-objects.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
update-index.c config: add core.untrackedCache 2016-01-27 12:30:00 -08:00
update-ref.c
update-server-info.c
upload-archive.c upload-archive: convert sprintf to strbuf 2015-09-25 10:18:18 -07:00
var.c
verify-commit.c
verify-pack.c
verify-tag.c
worktree.c Convert struct object to object_id 2015-11-20 08:02:05 -05:00
write-tree.c