From mboxrd@z Thu Jan 1 00:00:00 1970 From: Junio C Hamano Subject: Re: msysgit: merge, stat Date: Mon, 13 Aug 2007 14:57:38 -0700 Message-ID: <7vfy2nf67h.fsf@assigned-by-dhcp.cox.net> References: <2C573942-DD22-46EC-AE4A-1334450A7C4D@zib.de> <7vzm0vfbw0.fsf@assigned-by-dhcp.cox.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Steffen Prohaska , Git Mailing List To: Johannes Schindelin X-From: git-owner@vger.kernel.org Mon Aug 13 23:57:51 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 1IKhv1-00073z-Le for gcvg-git@gmane.org; Mon, 13 Aug 2007 23:57:48 +0200 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752612AbXHMV5m (ORCPT ); Mon, 13 Aug 2007 17:57:42 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752785AbXHMV5m (ORCPT ); Mon, 13 Aug 2007 17:57:42 -0400 Received: from fed1rmmtao101.cox.net ([68.230.241.45]:41770 "EHLO fed1rmmtao101.cox.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750907AbXHMV5k (ORCPT ); Mon, 13 Aug 2007 17:57:40 -0400 Received: from fed1rmimpo01.cox.net ([70.169.32.71]) by fed1rmmtao101.cox.net (InterMail vM.7.08.02.01 201-2186-121-102-20070209) with ESMTP id <20070813215740.DGHX5405.fed1rmmtao101.cox.net@fed1rmimpo01.cox.net>; Mon, 13 Aug 2007 17:57:40 -0400 Received: from assigned-by-dhcp.cox.net ([68.5.247.80]) by fed1rmimpo01.cox.net with bizsmtp id bZxe1X00K1kojtg0000000; Mon, 13 Aug 2007 17:57:39 -0400 In-Reply-To: (Steffen Prohaska's message of "Mon, 13 Aug 2007 23:31:29 +0200") User-Agent: Gnus/5.110006 (No Gnus v0.6) Emacs/21.4 (gnu/linux) Sender: git-owner@vger.kernel.org Precedence: bulk X-Mailing-List: git@vger.kernel.org Archived-At: Steffen Prohaska writes: >> Wait a minute. >> >> What does the above "After a 'git merge'" exactly mean? After a >> successful automerge that made a commit, of stopped in the >> middle because of conflicts? I am getting an impression that >> Steffen is talking about the former, but if that is the case, >> somebody is seriously confused. > > Yes. I'm talking about a successful merge that made a commit. > >> When "merge-recursive" with a 3-way file level merge in core >> writes the result out to the work tree, it uses a cache entry >> that is stat clean (see merge-recursive.c::make_cache_entry(), >> refresh option is passed and it calls refresh_cache_entry() to >> obtain the cached stat bits). The traditional "read-tree -m -u" >> followed by merge-one-file of course runs "git update-index" >> inside merge-one-file script and cleanly merged paths should be >> stat clean after a merge. > > Well, they are not with msysgit. At least not all, or not always. > I'm not completely sure about the details, but the problem > happens frequently, near to always. Johannes, is this something you want me to look at? I do not know how much read-cache.c and other low level routines of Windows version deviated from the mainline. I do not think we touched this area in any major way recently, but I wouldn't be surprised if refresh_cache_entry() around lstat() on the Windows side looked drastically from the POSIX version.