From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Sergey Organov Newsgroups: gmane.emacs.devel Subject: Re: vc-dir operation is very slow on large git repositories in Emacs 26.1 Date: Thu, 28 Jun 2018 16:21:44 +0300 Message-ID: <87vaa33v2v.fsf@javad.com> References: <83k1qtsbgi.fsf@gnu.org> <30712254-6225-c6a8-1457-698c64e37739@yandex.ru> <83zhzltyii.fsf@gnu.org> <5218794b-b9ef-3c0d-d3c1-bf40c42e64b2@yandex.ru> <83r2kxtk9w.fsf@gnu.org> <5095ed13-d4a8-1699-26f9-746afaee0248@yandex.ru> <83in66sxig.fsf@gnu.org> <87bmbxbmvz.fsf@javad.com> <132e0090-3e44-dacf-2926-63624b3bb718@yandex.ru> <87fu19rlir.fsf@tromey.com> <340e65ee-dd83-74e9-4531-e8422064536b@yandex.ru> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1530192244 18682 195.159.176.226 (28 Jun 2018 13:24:04 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 28 Jun 2018 13:24:04 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) Cc: Eli Zaretskii , Tom Tromey , alexharsanyi@gmail.com, emacs-devel@gnu.org To: Dmitry Gutov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Jun 28 15:24:00 2018 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fYWtz-0004kG-2O for ged-emacs-devel@m.gmane.org; Thu, 28 Jun 2018 15:23:59 +0200 Original-Received: from localhost ([::1]:36696 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fYWw6-0004d8-9x for ged-emacs-devel@m.gmane.org; Thu, 28 Jun 2018 09:26:10 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:53968) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fYWry-0002HP-9n for emacs-devel@gnu.org; Thu, 28 Jun 2018 09:21:55 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fYWrx-0008QY-B7 for emacs-devel@gnu.org; Thu, 28 Jun 2018 09:21:54 -0400 Original-Received: from mail.javad.com ([54.86.164.124]:54477) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fYWrt-0008BN-FV; Thu, 28 Jun 2018 09:21:49 -0400 Original-Received: from osv (unknown [89.175.180.246]) by mail.javad.com (Postfix) with ESMTPSA id 8E97A3EB08; Thu, 28 Jun 2018 13:21:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=javad.com; s=default; t=1530192106; bh=z2CSnIlUnHq0WZQTa4DGK2ziM0S22uzq8E7tcxGgijo=; l=1138; h=Received:From:To:Subject; b=FCwcVGdDoWvWJ8fFotesLjQMujil3fRCQRwBZEhkfYJ+PYkixTMFiEz1gV0jXcx7Z ezLKAORXU3jaZ8rMuGDny+9wUDPSUr6J2peGc34eO4Q4WHFKiyEknnPDVm0P/1m9Kt KsstquImgeRH+ryazSregEX7kJabr2AKWBkeIdfk= Authentication-Results: ip-172-31-2-110; spf=pass (sender IP is 89.175.180.246) smtp.mailfrom=osv@javad.com smtp.helo=osv Received-SPF: pass (ip-172-31-2-110: connection is authenticated) Original-Received: from osv by osv with local (Exim 4.84_2) (envelope-from ) id 1fYWro-00064y-G7; Thu, 28 Jun 2018 16:21:44 +0300 In-Reply-To: <340e65ee-dd83-74e9-4531-e8422064536b@yandex.ru> (Dmitry Gutov's message of "Wed, 27 Jun 2018 12:41:49 +0300") X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 54.86.164.124 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:226808 Archived-At: Dmitry Gutov writes: > On 6/27/18 5:49 AM, Tom Tromey wrote: >>>> Not exactly an expert, but googling suggests 'git ls-files -u' as the >>>> answer. Please be aware that the output will have 3 entries for every >>>> conflicting file: merge base, theirs, and ours. >> >> Dmitry> Tom, any reason you did not choose this option? >> >> I'm afraid I don't remember any more. > > OK. Too bad the commit didn't include tests. > > So I think we should try it and see if anything broken comes up? In fact it could be that $ git status -z is the way to go, even though it will need changes in parsing. Here is quote from 'git help status', for quick reference: -z Terminate entries with NUL, instead of LF. This implies the --porcelain output format if no other format is given. [...] --porcelain Give the output in an easy-to-parse format for scripts. This is similar to the short output, but will remain stable across Git versions and regardless of user configuration. See below for details. The output format is then carefully described later in the man-page. -- Sergey