From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS31976 209.132.180.0/23 X-Spam-Status: No, score=-4.7 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD shortcircuit=no autolearn=ham autolearn_force=no version=3.4.0 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by dcvr.yhbt.net (Postfix) with ESMTP id E870C20193 for ; Thu, 1 Sep 2016 20:55:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754333AbcIAUyz (ORCPT ); Thu, 1 Sep 2016 16:54:55 -0400 Received: from pb-smtp1.pobox.com ([64.147.108.70]:60200 "EHLO sasl.smtp.pobox.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752974AbcIAUyv (ORCPT ); Thu, 1 Sep 2016 16:54:51 -0400 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by pb-smtp1.pobox.com (Postfix) with ESMTP id 3522F3B200; Thu, 1 Sep 2016 15:19:47 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=sasl; bh=dCPAJaCEo9uXt+Ep+j8YbGsvvTQ=; b=d5MkUT 1Biz3nO7up283Jwh9YhknPmSAoG62JRKjxc95STjSCsbFnhPV3V7uMdIbccndO88 hElfRUXUCmr79JTIitjMp93e45vj5j1tigrih9BKV07vit6PSQBbdsSeFQDI/+qq 7j3QmE1Uc1qz0HtMlRa72ygtIG6bKSBI3e9Zw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=sasl; b=lTPYABtY+BSiHM0hKLtfKjt60ZH+bYnK g0lKrDA9iZd4gaHLr6/L3bfzv4L5IlpQvPIAyC0M3gePv2y1RAgUnW/Dzsl3uP9+ 6mx+zY3xGGy1VolSIlshVY33WzWEngZXxb/8RXJF3oxBXWe/Wu0DOeBy0bIn1hvk XhlZWA5WNxI= Received: from pb-smtp1.nyi.icgroup.com (unknown [127.0.0.1]) by pb-smtp1.pobox.com (Postfix) with ESMTP id 2CBCD3B1FE; Thu, 1 Sep 2016 15:19:47 -0400 (EDT) Received: from pobox.com (unknown [104.132.0.95]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by pb-smtp1.pobox.com (Postfix) with ESMTPSA id A61C33B1FD; Thu, 1 Sep 2016 15:19:46 -0400 (EDT) From: Junio C Hamano To: Stefan Beller Cc: Uma Srinivasan , Jacob Keller , Git Mailing List , Jens Lehmann , Heiko Voigt Subject: Re: git submodules implementation question References: Date: Thu, 01 Sep 2016 12:19:44 -0700 In-Reply-To: (Stefan Beller's message of "Thu, 1 Sep 2016 11:37:30 -0700") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Pobox-Relay-ID: 0B74DE66-7079-11E6-B7CE-F7BB12518317-77302942!pb-smtp1.pobox.com Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Stefan Beller writes: >> The final version needs to be accompanied with tests to show the >> effect of this change for callers. A test would set up a top-level >> and submodule, deliberately break submodule/.git/ repository and >> show what breaks and how without this change. > > Tests are really good at providing this context as well, or to communicate > the actual underlying problem, which is not quite clear to me. > That is why I refrained from jumping into the discussion as I think the > first few emails were dropped from the mailing list and I am missing context. I do not know where you started reading, but the gist of it is that submodule.c spawns subprocess to run in the submodule's context by assuming that chdir'ing into the of the submodule and running it (i.e. cp.dir set to to drive start_command(&cp)) is sufficient. When /.git (either it is a directory itself or it points at a directory in .git/module/ in the superproject) is a corrupt repository, running "git -C command" would try to auto-detect the repository, because it thinks /.git is not a repository and it thinks it is not at the top-level of the working tree, and instead finds the repository of the top-level, which is almost never what we want.