From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS3215 2.6.0.0/16 X-Spam-Status: No, score=-3.8 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by dcvr.yhbt.net (Postfix) with ESMTP id A19661F506 for ; Fri, 16 Sep 2022 20:15:37 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=pass (1024-bit key; unprotected) header.d=pobox.com header.i=@pobox.com header.b="OZG3UfCU"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230195AbiIPUPT (ORCPT ); Fri, 16 Sep 2022 16:15:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47182 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230322AbiIPUPN (ORCPT ); Fri, 16 Sep 2022 16:15:13 -0400 Received: from pb-smtp21.pobox.com (pb-smtp21.pobox.com [173.228.157.53]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AED652D1F1 for ; Fri, 16 Sep 2022 13:15:11 -0700 (PDT) Received: from pb-smtp21.pobox.com (unknown [127.0.0.1]) by pb-smtp21.pobox.com (Postfix) with ESMTP id 854721BA7DA; Fri, 16 Sep 2022 16:15:10 -0400 (EDT) (envelope-from junio@pobox.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=sasl; bh=qrYZVLkim2/6w1KzCET694fXEVlWysm3+OFt1I Qvs/o=; b=OZG3UfCU7Ra65+1FCjcnkbTDAQhVgOHLTqLDx+Ayk07nb0TgXn/3RL QtINE6uQOwqexKAQUyi1dEkL3lntxfSSfLHaYQcP/AqycqvRfS2xVw5d+bVFBV9t NXU/x6c6dYfeFqaAcO36jDUkeBsB7785PDwlcGFmRPChx/Tc4bmuI= Received: from pb-smtp21.sea.icgroup.com (unknown [127.0.0.1]) by pb-smtp21.pobox.com (Postfix) with ESMTP id 7D69D1BA7D9; Fri, 16 Sep 2022 16:15:10 -0400 (EDT) (envelope-from junio@pobox.com) Received: from pobox.com (unknown [34.83.5.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pb-smtp21.pobox.com (Postfix) with ESMTPSA id 1F4C41BA7D8; Fri, 16 Sep 2022 16:15:07 -0400 (EDT) (envelope-from junio@pobox.com) From: Junio C Hamano To: "Eric DeCosta via GitGitGadget" Cc: git@vger.kernel.org, Jeff Hostetler , Eric Sunshine , Torsten =?utf-8?Q?B=C3=B6gershausen?= , =?utf-8?B?w4Z2YXIgQXJuZmrDtnLDsA==?= Bjarmason , Ramsay Jones , Johannes Schindelin , Eric DeCosta Subject: Re: [PATCH v7 5/6] fsmonitor: deal with synthetic firmlinks on macOS References: <4d00adb1deb61c3af58bed81271dd3337db7037e.1663358014.git.gitgitgadget@gmail.com> Date: Fri, 16 Sep 2022 13:15:05 -0700 In-Reply-To: <4d00adb1deb61c3af58bed81271dd3337db7037e.1663358014.git.gitgitgadget@gmail.com> (Eric DeCosta via GitGitGadget's message of "Fri, 16 Sep 2022 19:53:33 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Pobox-Relay-ID: 41DE1040-35FC-11ED-AA30-B31D44D1D7AA-77302942!pb-smtp21.pobox.com Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org "Eric DeCosta via GitGitGadget" writes: > Starting with macOS 10.15 (Catalina), Apple introduced a new feature > called 'firmlinks' in order to separate the boot volume into two > volumes, one read-only and one writable but still present them to the > user as a single volume. Along with this change, Apple removed the > ... > Therefore, in order to deal with synthetic firmlinks, the root directory > is scanned and the first possible synthetic firmink that, when resolved, > is a prefix of the worktree is used to map FSEvents paths to worktree > paths. The proposed log message for this step seems fairly similar to the previous one. > diff --git a/fsmonitor--daemon.h b/fsmonitor--daemon.h > index e24838f9a86..98cbb430083 100644 > --- a/fsmonitor--daemon.h > +++ b/fsmonitor--daemon.h > @@ -170,5 +170,8 @@ void fsmonitor_publish(struct fsmonitor_daemon_state *state, > */ > void fsmonitor_force_resync(struct fsmonitor_daemon_state *state); > > +char *fsmonitor_resolve_alias(const char *path, > + struct alias_info *alias); > + After applying all the 6 steps, this function is declared here without any implementation. Should we drop this step, I have to wonder. Thanks.