зеркало из https://github.com/microsoft/git.git
Merge branch 'kw/fsmonitor-watchman-fix'
The watchman integration for fsmonitor was racy, which has been corrected to be more conservative. * kw/fsmonitor-watchman-fix: fsmonitor: fix watchman integration
This commit is contained in:
Коммит
fc7b26c907
|
@ -23,7 +23,8 @@ my ($version, $time) = @ARGV;
|
||||||
|
|
||||||
if ($version == 1) {
|
if ($version == 1) {
|
||||||
# convert nanoseconds to seconds
|
# convert nanoseconds to seconds
|
||||||
$time = int $time / 1000000000;
|
# subtract one second to make sure watchman will return all changes
|
||||||
|
$time = int ($time / 1000000000) - 1;
|
||||||
} else {
|
} else {
|
||||||
die "Unsupported query-fsmonitor hook version '$version'.\n" .
|
die "Unsupported query-fsmonitor hook version '$version'.\n" .
|
||||||
"Falling back to scanning...\n";
|
"Falling back to scanning...\n";
|
||||||
|
@ -54,18 +55,12 @@ sub launch_watchman {
|
||||||
#
|
#
|
||||||
# To accomplish this, we're using the "since" generator to use the
|
# To accomplish this, we're using the "since" generator to use the
|
||||||
# recency index to select candidate nodes and "fields" to limit the
|
# recency index to select candidate nodes and "fields" to limit the
|
||||||
# output to file names only. Then we're using the "expression" term to
|
# output to file names only.
|
||||||
# further constrain the results.
|
|
||||||
#
|
|
||||||
# The category of transient files that we want to ignore will have a
|
|
||||||
# creation clock (cclock) newer than $time_t value and will also not
|
|
||||||
# currently exist.
|
|
||||||
|
|
||||||
my $query = <<" END";
|
my $query = <<" END";
|
||||||
["query", "$git_work_tree", {
|
["query", "$git_work_tree", {
|
||||||
"since": $time,
|
"since": $time,
|
||||||
"fields": ["name"],
|
"fields": ["name"]
|
||||||
"expression": ["not", ["allof", ["since", $time, "cclock"], ["not", "exists"]]]
|
|
||||||
}]
|
}]
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,8 @@ my ($version, $time) = @ARGV;
|
||||||
|
|
||||||
if ($version == 1) {
|
if ($version == 1) {
|
||||||
# convert nanoseconds to seconds
|
# convert nanoseconds to seconds
|
||||||
$time = int $time / 1000000000;
|
# subtract one second to make sure watchman will return all changes
|
||||||
|
$time = int ($time / 1000000000) - 1;
|
||||||
} else {
|
} else {
|
||||||
die "Unsupported query-fsmonitor hook version '$version'.\n" .
|
die "Unsupported query-fsmonitor hook version '$version'.\n" .
|
||||||
"Falling back to scanning...\n";
|
"Falling back to scanning...\n";
|
||||||
|
@ -53,18 +54,12 @@ sub launch_watchman {
|
||||||
#
|
#
|
||||||
# To accomplish this, we're using the "since" generator to use the
|
# To accomplish this, we're using the "since" generator to use the
|
||||||
# recency index to select candidate nodes and "fields" to limit the
|
# recency index to select candidate nodes and "fields" to limit the
|
||||||
# output to file names only. Then we're using the "expression" term to
|
# output to file names only.
|
||||||
# further constrain the results.
|
|
||||||
#
|
|
||||||
# The category of transient files that we want to ignore will have a
|
|
||||||
# creation clock (cclock) newer than $time_t value and will also not
|
|
||||||
# currently exist.
|
|
||||||
|
|
||||||
my $query = <<" END";
|
my $query = <<" END";
|
||||||
["query", "$git_work_tree", {
|
["query", "$git_work_tree", {
|
||||||
"since": $time,
|
"since": $time,
|
||||||
"fields": ["name"],
|
"fields": ["name"]
|
||||||
"expression": ["not", ["allof", ["since", $time, "cclock"], ["not", "exists"]]]
|
|
||||||
}]
|
}]
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче