Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- fsmonitor.c | 6 ++++++ t/t3011-ls-files-json.sh | 14 +++++++++++++- t/t3011/fsmonitor (new) | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 1 deletion(-) diff --git a/fsmonitor.c b/fsmonitor.c index 1dee0aded1..5ed55ad176 100644 --- a/fsmonitor.c +++ b/fsmonitor.c @@ -3,6 +3,7 @@ #include "dir.h" #include "ewah/ewok.h" #include "fsmonitor.h" +#include "json-writer.h" #include "run-command.h" #include "strbuf.h" @@ -50,6 +51,11 @@ int read_fsmonitor_extension(struct index_state *istate, const void *data, } istate->fsmonitor_dirty = fsmonitor_dirty; + if (istate->jw) { + jw_object_intmax(istate->jw, "version", hdr_version); + jw_object_intmax(istate->jw, "last_update", istate->fsmonitor_last_update); + jw_object_ewah(istate->jw, "dirty", fsmonitor_dirty); + } trace_printf_key(&trace_fsmonitor, "read fsmonitor extension successful"); return 0; } diff --git a/t/t3011-ls-files-json.sh b/t/t3011-ls-files-json.sh index dbb572ce9d..25215f83ae 100755 --- a/t/t3011-ls-files-json.sh +++ b/t/t3011-ls-files-json.sh @@ -36,7 +36,7 @@ test_expect_success 'setup' ' git add -N ita && strip_number ctime_sec ctime_nsec mtime_sec mtime_nsec && - strip_number device inode uid gid file_offset ext_size && + strip_number device inode uid gid file_offset ext_size last_update && strip_string oid ident ' @@ -58,4 +58,16 @@ test_expect_success 'ls-files --json, split index' ' ) ' +test_expect_success 'ls-files --json, fsmonitor extension ' ' + git init fsmonitor && + ( + cd fsmonitor && + echo one >one && + git add one && + git update-index --fsmonitor && + cp ../filter.sed . && + compare_json fsmonitor + ) +' + test_done diff --git a/t/t3011/fsmonitor b/t/t3011/fsmonitor new file mode 100644 index 0000000000..17f2d4a664 --- /dev/null +++ b/t/t3011/fsmonitor @@ -0,0 +1,38 @@ +{ + "version": 2, + "oid": <string>, + "mtime_sec": <number>, + "mtime_nsec": <number>, + "entries": [ + { + "id": 0, + "name": "one", + "mode": "100644", + "flags": 0, + "oid": <string>, + "stat": { + "ctime_sec": <number>, + "ctime_nsec": <number>, + "mtime_sec": <number>, + "mtime_nsec": <number>, + "device": <number>, + "inode": <number>, + "uid": <number>, + "gid": <number>, + "size": 4 + }, + "file_offset": <number> + } + ], + "extensions": { + "FSMN": { + "file_offset": <number>, + "ext_size": <number>, + "version": 1, + "last_update": <number>, + "dirty": [ + 0 + ] + } + } +} -- 2.22.0.rc0.322.g2b0371e29a