| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a performance test for the new core.fsmonitor facility using the
sample query-fsmonitor hook.
This is WIP code for the reasons explained in the setup comments,
unfortunately the perf code doesn't easily allow you to run different
setup code for different versions you're testing. This test will stop
working if the fsmonitor is merged into the master branch.
Output against linxu.git:
$ GIT_PERF_REPEAT_COUNT=10 GIT_PERF_LARGE_REPO=~/g/linux GIT_PERF_MAKE_OPTS='-j8' ./run origin/master avar/fsmonitor ./p7519-fsmonitor.sh
[...]
Test origin/master avar/fsmonitor
-----------------------------------------------------------------------
7519.2: status (first) 0.08(0.04+0.09) 0.12(0.07+0.10) +50.0%
7519.3: status (subsequent) 0.08(0.04+0.09) 0.12(0.06+0.11) +50.0%
7519.4: status -uno 0.02(0.02+0.05) 0.06(0.05+0.06) +200.0%
7519.5: status -uall 0.08(0.06+0.07) 0.12(0.07+0.10) +50.0%
And against a larger in-house monorepo I have here, with the same
options (except the repo path):
Test origin/master avar/fsmonitor
-----------------------------------------------------------------------
7519.2: status (first) 0.20(0.11+0.18) 0.27(0.15+0.21) +35.0%
7519.3: status (subsequent) 0.20(0.11+0.18) 0.27(0.15+0.21) +35.0%
7519.4: status -uno 0.04(0.03+0.10) 0.22(0.08+0.12) +450.0%
7519.5: status -uall 0.20(0.13+0.16) 0.27(0.18+0.19) +35.0%
Against linux.git with a hack to flush the FS cache (on Linux) before
running the first 'git status', only running one test so the result
isn't discarded as the slowest of N:
$ GIT_PERF_REPEAT_COUNT=1 GIT_PERF_LARGE_REPO=~/g/linux GIT_PERF_MAKE_COMMAND='sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches >/dev/null && make -j8' ./run origin/master avar/fsmonitor ./p7519-fsmonitor.sh
[...]
Test origin/master avar/fsmonitor
------------------------------------------------------------------------
7519.2: status (first) 0.30(0.18+0.10) 8.26(0.22+0.10) +2653.3%
7519.3: status (subsequent) 0.08(0.04+0.08) 0.81(0.09+0.07) +912.5%
7519.4: status -uno 0.02(0.01+0.06) 0.08(0.04+0.07) +300.0%
7519.5: status -uall 0.08(0.06+0.07) 0.15(0.08+0.09) +87.5%
Now obviously due to 1 run that has a lot of noise, but I would expect
that first invocation to be blindingly fast since watchman has info on
what files were modified since the cache was flushed.
The same on the large monorepo noted above:
Test origin/master avar/fsmonitor
-----------------------------------------------------------------------
7519.2: status (first) 0.59(0.28+0.24) 0.93(0.35+0.19) +57.6%
7519.3: status (subsequent) 0.20(0.10+0.19) 0.28(0.16+0.20) +40.0%
7519.4: status -uno 0.04(0.04+0.09) 0.11(0.08+0.12) +175.0%
7519.5: status -uall 0.29(0.11+0.18) 0.40(0.16+0.19) +37.9%
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This hook script integrates the new fsmonitor capabilities of git with
the cross platform Watchman file watching service. To use the script:
Download and install Watchman from https://facebook.github.io/watchman/
and instruct Watchman to watch your working directory for changes
('watchman watch-project /usr/src/git').
Rename the sample integration hook from query-fsmonitor.sample to
query-fsmonitor.
Configure git to use the extension ('git config core.fsmonitor true')
and optionally turn on the untracked cache for optimal performance
('git config core.untrackedcache true').
Signed-off-by: Ben Peart <benpeart@microsoft.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
|
|
|
|
|
|
|
| |
This includes the core.fsmonitor setting, the query-fsmonitor hook,
and the fsmonitor index extension.
Signed-off-by: Ben Peart <benpeart@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add test cases that ensure status results are correct when using the new
fsmonitor extension. Test untracked, modified, and new files by
ensuring the results are identical to when not using the extension.
Add a test to ensure updates to the index properly mark corresponding
entries in the index extension as dirty so that the status is correct
after commands that modify the index but don't trigger changes in the
working directory.
Add a test that verifies that if the fsmonitor extension doesn't tell
git about a change, it doesn't discover it on its own. This ensures
git is honoring the extension and that we get the performance benefits
desired.
All test hooks output a marker file that is used to ensure the hook
was actually used to generate the test results.
Signed-off-by: Ben Peart <benpeart@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
detecting new or changed files.
When the index is read from disk, the query-fsmonitor index extension is
used to flag the last known potentially dirty index and untracked cache
entries.
If git finds out some entries are 'fsmonitor-dirty', but are really
unchanged (e.g. the file was changed, then reverted back), then Git will
clear the marking in the extension. If git adds or updates an index
entry, it is marked 'fsmonitor-dirty' to ensure it is checked for
changes in the working directory.
Before the 'fsmonitor-dirty' flags are used to limit the scope of the
files to be checked, the query-fsmonitor hook proc is called with the
time the index was last updated. The hook proc returns the list of
files changed since that last updated time and the list of
potentially dirty entries is updated to reflect the current state.
refresh_index() and valid_cached_dir() are updated so that any entry not
flagged as potentially dirty is not checked as it cannot have any
changes.
Signed-off-by: Ben Peart <benpeart@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
|
|
|
|
|
|
|
|
| |
Remove the static qualifier from lookup_untracked() and make it
available to other modules by exporting it from dir.h. This will be
used later when we need to find entries to mark 'fsmonitor dirty.'
Signed-off-by: Ben Peart <benpeart@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
|
|
|
|
|
|
|
| |
Add a new get_be64 macro to enable 64 bit endian conversions on memory
that may or may not be aligned.
Signed-off-by: Ben Peart <benpeart@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
|
|
|
| |
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
l10n for Git 2.13.0 round 2.1
* tag 'l10n-2.13.0-rnd2.1' of git://github.com/git-l10n/git-po:
l10n: zh_CN: for git v2.13.0 l10n round 2
l10n: sv.po: Update Swedish translation (3195t0f0u)
l10n: zh_CN: review for git v2.13.0 l10n round 1
l10n: Update Catalan translation
l10n: bg.po: Updated Bulgarian translation (3195t)
l10n: fr.po v2.13 rnd 2
l10n: de.po: translate 4 new messages
l10n: de.po: update German translation
l10n: de.po: lower case after semi-colon
l10n: vi.po(3195t): Update translation for v2.13.0 round 2
l10n: git.pot: v2.13.0 round 2 (4 new, 7 removed)
l10n: zh_CN: for git v2.13.0 l10n round 1
l10n: fr.po v2.13 round 1
l10n: pt_PT: update Portuguese translation
l10n: bg.po: Updated Bulgarian translation (3201t)
l10n: vi.po(3198t): Updated Vietnamese translation for v2.13.0-rc0
l10n: sv.po: Update Swedish translation (3199t0f0u)
l10n: git.pot: v2.13.0 round 1 (96 new, 37 removed)
|
| |\
| | |
| | |
| | |
| | | |
* 'master' of git://github.com/nafmo/git-l10n-sv:
l10n: sv.po: Update Swedish translation (3195t0f0u)
|
| | |
| | |
| | |
| | | |
Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
|
| |/
| |
| |
| |
| |
| | |
Translate 4 messages (3195t0f0u) for git v2.13.0-rc2.
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Ray Chen <oldsharp@gmail.com>
|
| |\
| | |
| | |
| | |
| | | |
* 'master' of https://github.com/vnwildman/git:
l10n: vi.po(3195t): Update translation for v2.13.0 round 2
|
| | |
| | |
| | |
| | | |
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Jordi Mas <jmas@softcatala.org>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Alexander Shopov <ash@kambanaria.org>
|
| |\ \
| | | |
| | | |
| | | |
| | | | |
* 'fr_l10n_v2.13_rnd2' of git://github.com/jnavila/git:
l10n: fr.po v2.13 rnd 2
|
| | |/
| | |
| | |
| | | |
Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Translate 4 new messages came from git.pot update in 28e1aaa48 (l10n:
git.pot: v2.13.0 round 2 (4 new, 7 removed)).
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Matthias Rüster <matthias.ruester@gmail.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Translate 96 new messages came from git.pot update in dfc182b (l10n:
git.pot: v2.13.0 round 1 (96 new, 37 removed)).
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Matthias Rüster <matthias.ruester@gmail.com>
|
| |/
| |
| |
| |
| | |
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
|
| |
| |
| |
| |
| |
| | |
Generate po/git.pot from v2.13.0-rc2 for git v2.13.0 l10n round 2.
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* 'master' of git://github.com/git-l10n/git-po:
l10n: zh_CN: for git v2.13.0 l10n round 1
l10n: fr.po v2.13 round 1
l10n: pt_PT: update Portuguese translation
l10n: bg.po: Updated Bulgarian translation (3201t)
l10n: vi.po(3198t): Updated Vietnamese translation for v2.13.0-rc0
l10n: sv.po: Update Swedish translation (3199t0f0u)
l10n: git.pot: v2.13.0 round 1 (96 new, 37 removed)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Translate 96 messages (3198t0f0u) for git v2.13.0-rc0.
Reviewed-by: 依云 <lilydjwg@gmail.com>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
|
| | |\
| | | |
| | | |
| | | |
| | | | |
* 'fr_l10n_v2.13_rnd1' of git://github.com/jnavila/git:
l10n: fr.po v2.13 round 1
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Alexander Shopov <ash@kambanaria.org>
|
| | |\ \
| | | | |
| | | | |
| | | | |
| | | | | |
* 'master' of https://github.com/vnwildman/git:
l10n: vi.po(3198t): Updated Vietnamese translation for v2.13.0-rc0
|
| | | |/
| | | |
| | | |
| | | | |
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
|
| | |/
| | |
| | |
| | | |
Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Generate po/git.pot from v2.13.0-rc0 for git v2.13.0 l10n round 1.
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
|
|\ \ \
| | | |
| | | |
| | | | |
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
| |\ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
| | |\ \ \ |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
| | | |\ \ \ |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
| | | | |\ \ \ |
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
| | | | | |\ \ \ |
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
| | | | | | |\ \ \ |
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
| | | | | | | |\ \ \ |
|
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
| | | | | | | | |\ \ \ |
|