From: Junio C Hamano Date: Mon, 21 Nov 2011 17:27:48 GMT Subject: Re: [PATCH] Add test that checkout does not overwrite entries in .git/info/exclude Message-ID: <7vfwhhgzcb.fsf@alter.siamese.dyndns.org> In-Reply-To: Nguyen Thai Ngoc Duy writes: > It dated back to f8a9d42 (read-tree: further loosen "working file will > be lost" check. - 2006-12-04) when you introduced --exclude-per-directory > to read-tree, but not --exclude-from to explicitly add .git/info/exclude. That one together with 1127148 (Loosen "working file will be lost" check in Porcelain-ish, 2006-12-04) complets the picture. Thanks for digging this out. > I guess it's time to add "read-tree --exclude-from". Perhaps, also --exclude-standard to match? > We may add an option to checkout to skip > either .git/info/exclude or .gitignore, or both. I do not think we want to go that route, because it is not just "checkout" but is an issue shared across users of unpack-trees machinery. When a merge result loses build/ directory and replaces it with a regular file "build", with the current ignore semantics, build/*.o will go but if you had an untracked and ignored build/TODO, the file will also go, for example. If we want to have "precious", we should either make "ignored" to mean "precious", or introduce a "precious" as a new category (cf. $gmane/185746)