From: Junio C Hamano Date: Sat, 15 Aug 2009 02:01:41 GMT Subject: Re: [RFC PATCH v3 8/8] --sparse for porcelains Message-ID: <7veird4yyi.fsf@alter.siamese.dyndns.org> In-Reply-To: <200908142223.07994.jnareb@gmail.com> Jakub Narebski writes: >>> Hmmm... this looks like either argument for introducing --full option >>> to git-checkout (ignore CE_VALID bit, checkout everything, and clean >>> CE_VALID (?))... >>> >>> ...or for going with _separate_ bit for partial checkout, like in the >>> very first version of this series, which otherwise functions like >>> CE_VALID, or is just used to mark that CE_VALID was set using sparse. How would a separate bit help? Just like you need to clear CE_VALID bit to revert the index into a normal (or "non sparse") state somehow, you would need to have a way to clear that separate bit anyway. A separate bit would help only if you want to handle assume-unchanged and sparse checkout independently. But my impression was that the recent lstat reduction effort addressed the issue assume-unchanged were invented to work around in the first place. Cf. http://thread.gmane.org/gmane.comp.version-control.git/123218/focus=123252 There is no reason to use assume-unchanged to tell git not to lstat to see if a path is up-to-date by promising that you are not going to touch it after you checked it out. So I do not understand why you would want a separate bit, nor why you think a separate bit would help when changing the index state from sparse to non-sparse (or vice versa).