Merge branch 'pt/fsmonitor-watchman-sample-fix'

Fix typo-induced breakages in fsmonitor-watchman sample hook.

* pt/fsmonitor-watchman-sample-fix:
  fsmonitor-watchman: fix variable reference and remove redundant code
maint
Junio C Hamano 2026-03-10 14:23:22 -07:00
commit 08c3609935
3 changed files with 5 additions and 21 deletions

View File

@ -38,8 +38,6 @@ if ($^O =~ 'msys' || $^O =~ 'cygwin') {
$git_work_tree = Cwd::cwd(); $git_work_tree = Cwd::cwd();
} }


my $retry = 1;

launch_watchman(); launch_watchman();


sub launch_watchman { sub launch_watchman {
@ -92,9 +90,8 @@ sub launch_watchman {


my $o = $json_pkg->new->utf8->decode($response); my $o = $json_pkg->new->utf8->decode($response);


if ($retry > 0 and $o->{error} and $o->{error} =~ m/unable to resolve root .* directory (.*) is not watched/) { if ($o->{error} and $o->{error} =~ m/unable to resolve root .* directory (.*) is not watched/) {
print STDERR "Adding '$git_work_tree' to watchman's watch list.\n"; print STDERR "Adding '$git_work_tree' to watchman's watch list.\n";
$retry--;
qx/watchman watch "$git_work_tree"/; qx/watchman watch "$git_work_tree"/;
die "Failed to make watchman watch '$git_work_tree'.\n" . die "Failed to make watchman watch '$git_work_tree'.\n" .
"Falling back to scanning...\n" if $? != 0; "Falling back to scanning...\n" if $? != 0;
@ -109,7 +106,6 @@ sub launch_watchman {
close $fh; close $fh;


print "/\0"; print "/\0";
eval { launch_watchman() };
exit 0; exit 0;
} }



View File

@ -29,8 +29,6 @@ if ($version ne 2) {


my $git_work_tree = get_working_dir(); my $git_work_tree = get_working_dir();


my $retry = 1;

my $json_pkg; my $json_pkg;
eval { eval {
require JSON::XS; require JSON::XS;
@ -122,8 +120,7 @@ sub watchman_query {
sub is_work_tree_watched { sub is_work_tree_watched {
my ($output) = @_; my ($output) = @_;
my $error = $output->{error}; my $error = $output->{error};
if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { if ($error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) {
$retry--;
my $response = qx/watchman watch "$git_work_tree"/; my $response = qx/watchman watch "$git_work_tree"/;
die "Failed to make watchman watch '$git_work_tree'.\n" . die "Failed to make watchman watch '$git_work_tree'.\n" .
"Falling back to scanning...\n" if $? != 0; "Falling back to scanning...\n" if $? != 0;
@ -141,15 +138,12 @@ sub is_work_tree_watched {
# Watchman query just to get it over with now so we won't pay # Watchman query just to get it over with now so we won't pay
# the cost in git to look up each individual file. # the cost in git to look up each individual file.
my $o = watchman_clock(); my $o = watchman_clock();
$error = $output->{error}; $error = $o->{error};


die "Watchman: $error.\n" . die "Watchman: $error.\n" .
"Falling back to scanning...\n" if $error; "Falling back to scanning...\n" if $error;


output_result($o->{clock}, ("/")); output_result($o->{clock}, ("/"));
$last_update_token = $o->{clock};

eval { launch_watchman() };
return 0; return 0;
} }



View File

@ -29,8 +29,6 @@ if ($version ne 2) {


my $git_work_tree = get_working_dir(); my $git_work_tree = get_working_dir();


my $retry = 1;

my $json_pkg; my $json_pkg;
eval { eval {
require JSON::XS; require JSON::XS;
@ -123,8 +121,7 @@ sub watchman_query {
sub is_work_tree_watched { sub is_work_tree_watched {
my ($output) = @_; my ($output) = @_;
my $error = $output->{error}; my $error = $output->{error};
if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { if ($error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) {
$retry--;
my $response = qx/watchman watch "$git_work_tree"/; my $response = qx/watchman watch "$git_work_tree"/;
die "Failed to make watchman watch '$git_work_tree'.\n" . die "Failed to make watchman watch '$git_work_tree'.\n" .
"Falling back to scanning...\n" if $? != 0; "Falling back to scanning...\n" if $? != 0;
@ -142,15 +139,12 @@ sub is_work_tree_watched {
# Watchman query just to get it over with now so we won't pay # Watchman query just to get it over with now so we won't pay
# the cost in git to look up each individual file. # the cost in git to look up each individual file.
my $o = watchman_clock(); my $o = watchman_clock();
$error = $output->{error}; $error = $o->{error};


die "Watchman: $error.\n" . die "Watchman: $error.\n" .
"Falling back to scanning...\n" if $error; "Falling back to scanning...\n" if $error;


output_result($o->{clock}, ("/")); output_result($o->{clock}, ("/"));
$last_update_token = $o->{clock};

eval { launch_watchman() };
return 0; return 0;
} }