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: AS31976 209.132.180.0/23 X-Spam-Status: No, score=-4.0 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by dcvr.yhbt.net (Postfix) with ESMTP id 2AE641F487 for ; Thu, 26 Mar 2020 00:50:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727560AbgCZAul (ORCPT ); Wed, 25 Mar 2020 20:50:41 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:43511 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727539AbgCZAul (ORCPT ); Wed, 25 Mar 2020 20:50:41 -0400 Received: by mail-pl1-f196.google.com with SMTP id v23so1480588ply.10 for ; Wed, 25 Mar 2020 17:50:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=iV6ymD1kQQONQHm4JdBry95DQKFCs+rEV8XV/WUjq8s=; b=CgT9BGj/SX+N9el8boeJPlDd1v0cDIoXz9DPW6rKZRlntPuWf4XfJU+/BwYVKOquw3 sWS1eaLsch5TQH70vO3kNJYXdKksPw5ILklK5+SvkjBrKi0v8HRIegLFTHyXCoNcWFsL ldmxjuzDhcH22Cc67wuacktPLZmPg8Ej3LZL19jTQmXxfO+E8zmsn3n/Z7iAeGAwTkHq 8AvF7+WwTy0dNFYFMS0p7Nb3LdgtpzBif4N2zewUvAEfpY9gvIqgZzZU3iUvLPMnpTpP UGexkcl/wdieJ0I47/REfvE0AY9b+wJWb6KO1U6Jjv2VP4XnSvubWae4wdH5Sw3HO7IE 9Esw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=iV6ymD1kQQONQHm4JdBry95DQKFCs+rEV8XV/WUjq8s=; b=aZ/SDeaNXrvUHV66vd1EJscoSttKfPuOge84Lxv6XqHTKvlnCTdgoaNsiDdCyq7ePH PKhR37Ep4/IXtrV+rhBjKmdwIlhE37P87TxOsk6QuktOR3Fi0x1iIR4bADnPXfq0Ngxv CkshbCA+bFIyGRSezpwp54udoGnJhqzbBHONAMIdetgTi0TJ3XCj9+L7wwlsNVZlACw8 hPawbT5GTpfUxTI/yhQeNKkSsU9J5Xl6iQ2HkjLOCPY7916Xr7d9MZEvtyFs7hlSND8h eCgxlFg2GI1WQKaOLsF8vBKNbNNFa/kE4kEW/7g//Z5X62iHZJtGGlzOsPCPgy2Id4j/ 6QQQ== X-Gm-Message-State: ANhLgQ28WBQPzSjBL+1saWvy9nW6NO2WGlpn7/07naVoZB/6EGYW303R UKwgaX0E41F+NQ3f9En5tCU72Sc9 X-Google-Smtp-Source: ADFU+vvLeYfuiI7i4D0boXD+qrjB/mNdEtLmkHvHqm7Q5MAe1NmIa8K76KIBf3WipQVWfpNUW7toQQ== X-Received: by 2002:a17:902:728d:: with SMTP id d13mr5738825pll.92.1585183840325; Wed, 25 Mar 2020 17:50:40 -0700 (PDT) Received: from localhost ([2402:800:6374:c347:544a:f0cc:8a21:fee3]) by smtp.gmail.com with ESMTPSA id v25sm262162pgl.55.2020.03.25.17.50.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2020 17:50:39 -0700 (PDT) Date: Thu, 26 Mar 2020 07:50:37 +0700 From: Danh Doan To: Daniel Malendez Cc: Bryan Turner , Git Users Subject: Re: Git doesn't support symlinks Message-ID: <20200326005037.GA5398@danh.dev> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org On 2020-03-25 20:37:30-0400, Daniel Malendez wrote: > Thanks for your feedback! > > > On Mar 25, 2020, at 8:23 PM, Bryan Turner wrote: > > > > This didn't add the same thing. What does a "git status" show at this > > point? I'd expect it would show "Versions/Current/Headers/interior.h" > > as added to the index, not "Headers/interior.h". > > $ git add . > $ git status > Changes to be committed: > (use "git rm --cached ..." to unstage) > new file: Foo.framework/Headers > new file: Foo.framework/Versions/A/Headers/Interior.h > > > It doesn't necessarily seem like a bug, to me; more like a case where > > Git could potentially be "smarter" to try and determine that, while > > "Headers/interior.h" is beyond a symlink, the target of that symlink > > is still in the repository. (Versions/Current _is_ in the same > > repository, right?) > > Agree, makes sense! > > I think what happens here is that `git add .` adds the > Foo.framework/Headers directory first, to circumvent this check > failing here? "Foo.framework/Headers" is a symlinks, and git simply adds that, without caring where it's linked to. To git, there's nothing inside "Foo.framework/Headers", it's a blob, which happends to be type: symlink. IOW, you can: $ git add Foo.framework/Headers # without add the target $ ln -s /usr/bin bin $ git add bin # git won't write to index anything from /usr/bin > https://github.com/git/git/blob/master/pathspec.c#L596 > Whereas a single “git add path/to/file” would fail here -- Danh