From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yasushi SHOJI Subject: Re: git ls-files -o under .git/ prints all repository files Date: Tue, 23 Jan 2007 20:12:39 +0900 Message-ID: <878xfuuhco.wl@mail2.atmark-techno.com> References: <87r6trsu7n.wl@mail2.atmark-techno.com> <7vwt3jjywc.fsf@assigned-by-dhcp.cox.net> <45B07875.9030506@fs.ei.tum.de> <81b0412b0701182357l3a6d44fel58da50c7895fb6b4@mail.gmail.com> <45B0C7E6.4020509@op5.se> <1169214414.18684.25.camel@localhost.localdomain> <7vtzymhma2.fsf@assigned-by-dhcp.cox.net> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Cc: Johannes Schindelin , Matthias Kestenholz , Andreas Ericsson , Alex Riesen , Simon 'corecode' Schubert , git@vger.kernel.org X-From: git-owner@vger.kernel.org Tue Jan 23 12:12:58 2007 Return-path: Envelope-to: gcvg-git@gmane.org Received: from vger.kernel.org ([209.132.176.167]) by lo.gmane.org with esmtp (Exim 4.50) id 1H9JaC-0000k6-Iw for gcvg-git@gmane.org; Tue, 23 Jan 2007 12:12:56 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932969AbXAWLMx (ORCPT ); Tue, 23 Jan 2007 06:12:53 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S932971AbXAWLMx (ORCPT ); Tue, 23 Jan 2007 06:12:53 -0500 Received: from mail2.atmark-techno.com ([210.191.215.173]:40434 "EHLO mail2.atmark-techno.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932969AbXAWLMw (ORCPT ); Tue, 23 Jan 2007 06:12:52 -0500 Received: from wat.atmark-techno.com.atmark-techno.com (dns1.atmark-techno.com [210.191.215.170]) by mail2.atmark-techno.com (Postfix) with ESMTP id 785863BC3B; Tue, 23 Jan 2007 20:12:39 +0900 (JST) To: Junio C Hamano In-Reply-To: <7vtzymhma2.fsf@assigned-by-dhcp.cox.net> User-Agent: Wanderlust/2.14.0 Sender: git-owner@vger.kernel.org Precedence: bulk X-Mailing-List: git@vger.kernel.org Archived-At: At Fri, 19 Jan 2007 11:03:17 -0800, Junio C Hamano wrote: > > Johannes Schindelin writes: > > > On Fri, 19 Jan 2007, Matthias Kestenholz wrote: > > ... > >> Why not check for /.git/ somewhere inside the current working directory > >> (pwd) ? That's the way mercurial does it currently, and I think that is > >> a sane thing to do _if_ you want to protect the user from his own > >> stupidity. > > > > There are valid reasons why you might want to have a (possibly > > temporary) repository _inside_ the GIT_DIR. You'd break these cases. > > You are right that strstr(here, "/.git/") is not a good check. > > If we really care about this problem (and I am not yet starting > to think we might, but who knows, I reserve the right to change > my mind every once in a while), we could make the commands that > deal with working trees (that is, among the things under > discussion in this thread, 'git-clean' always is, and > 'git-ls-files' only when it is given options like '-o', '-k', > '-m', '-i') when the cwd is GIT_DIR or a subdirectory of it. I believe it should be done. because it used to be safe during v0.9 time. most command didn't work if you are not in the root dir of a repo. during the development time, we have been adding feature so that we don't have to be at a root dir to exec git. we just forgot to check we are under .git, the repo dir. I assume that we can either have 1) one more bit in struct cmd_struct's option field and fail if the command isn't allowed to run under repository dir, or 2) some mechanism to check prefix, the third argument of command entry point function, and behave properly. > If you did something like: > > mkdir /var/tmp/a > cd /var/tmp/a > git init-db > cd .git > GIT_DIR=.git git init-db > git add . > git ls-files > echo junk >garbage > git clean > > the repository at /var/tmp/a/.git/.git ought to track HEAD, > config and friends in /var/tmp/a/.git directory. this should always work. -- yashi