From unknown Sun Jun 22 11:39:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25683: 25.1.91; vc-dir shows conflicted files as "edited" Resent-From: Tom Tromey Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 10 Feb 2017 22:17:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 25683 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 25683@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.148676496228355 (code B ref -1); Fri, 10 Feb 2017 22:17:02 +0000 Received: (at submit) by debbugs.gnu.org; 10 Feb 2017 22:16:02 +0000 Received: from localhost ([127.0.0.1]:35097 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ccJU1-0007ND-Ab for submit@debbugs.gnu.org; Fri, 10 Feb 2017 17:16:01 -0500 Received: from eggs.gnu.org ([208.118.235.92]:60244) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ccJTz-0007N1-Oy for submit@debbugs.gnu.org; Fri, 10 Feb 2017 17:16:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ccJTs-0001cW-ST for submit@debbugs.gnu.org; Fri, 10 Feb 2017 17:15:54 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:53225) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ccJTs-0001cP-PL for submit@debbugs.gnu.org; Fri, 10 Feb 2017 17:15:52 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51211) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ccJTr-0002Fq-5s for bug-gnu-emacs@gnu.org; Fri, 10 Feb 2017 17:15:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ccJTn-0001ak-0n for bug-gnu-emacs@gnu.org; Fri, 10 Feb 2017 17:15:51 -0500 Received: from gproxy4-pub.mail.unifiedlayer.com ([69.89.23.142]:56353) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1ccJTm-0001a5-9G for bug-gnu-emacs@gnu.org; Fri, 10 Feb 2017 17:15:46 -0500 Received: (qmail 4502 invoked by uid 0); 10 Feb 2017 22:15:41 -0000 Received: from unknown (HELO cmgw3) (10.0.90.84) by gproxy4.mail.unifiedlayer.com with SMTP; 10 Feb 2017 22:15:41 -0000 Received: from box522.bluehost.com ([74.220.219.122]) by cmgw3 with id jAFc1u01A2f2jeq01AFfUb; Fri, 10 Feb 2017 15:15:41 -0700 X-Authority-Analysis: v=2.1 cv=WOnsABcR c=1 sm=1 tr=0 a=GsOEXm/OWkKvwdLVJsfwcA==:117 a=GsOEXm/OWkKvwdLVJsfwcA==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=n2v9WMKugxEA:10 a=VDEtfpoToLGKPWCa6wMA:9 a=Q22pvzFRWOqXZCGK:21 a=jkYqDVyKgzAUJneH:21 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:Date:Subject:To:From: Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=uWaPl/30juDuxS4t2RNzOoPpiviseMoPIiu2s3ojOVA=; b=IEyWyrOSTjrSo42VT5F497+fUo GvcGB9HHBXhPiOfea/cm3yGUEP7X4g5auIJi540dNr3peAbpd0q2F4VsJdtAV0B5fWs3gZeNk85Ew FUJ6RhW9YMuqyakftFMGnhZ+M; Received: from 75-171-188-196.hlrn.qwest.net ([75.171.188.196]:48516 helo=bapiya) by box522.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.87) (envelope-from ) id 1ccJTc-0004JC-GO; Fri, 10 Feb 2017 15:15:36 -0700 From: Tom Tromey X-Attribution: Tom Date: Fri, 10 Feb 2017 15:15:35 -0700 Message-ID: <87ziht66bc.fsf@tromey.com> MIME-Version: 1.0 Content-Type: text/plain X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box522.bluehost.com X-AntiAbuse: Original Domain - gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 75.171.188.196 X-Exim-ID: 1ccJTc-0004JC-GO X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 75-171-188-196.hlrn.qwest.net (bapiya) [75.171.188.196]:48516 X-Source-Auth: tom+tromey.com X-Email-Count: 1 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTIyLmJsdWVob3N0LmNvbQ== X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) I was doing a "git rebase" and it had some conflicts. If I "git status" in the shell I can see conflicts like: both modified: gdb/minidebug.c However, if I use vc-dir, I just see: edited gdb/minidebug.c This isn't any different from a file that is touched by this change but not in conflict. I think it would be nicer if vc-dir showed me which files had conflicts and which were merely "edited". Tom In GNU Emacs 25.1.91.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.22.7) of 2017-02-02 built on bapiya Repository revision: 7e02a477bbcabb4e65aeecade79b67357c0b9dae Windowing system distributor 'Fedora Project', version 11.0.11901000 System Description: Fedora release 25 (Twenty Five) Configured using: 'configure --prefix=/home/tromey/Emacs/install/ --with-modules' Configured features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS NOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 MODULES Important settings: value of $LANG: en_US.utf8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: VC dir Minor modes in effect: vc-parent-buffer: *vc-dir* shell-dirtrack-mode: t diff-auto-refine-mode: t which-function-mode: t erc-services-mode: t erc-list-mode: t erc-menu-mode: t erc-autojoin-mode: t erc-ring-mode: t erc-networks-mode: t erc-pcomplete-mode: t erc-track-mode: t erc-match-mode: t erc-netsplit-mode: t erc-hl-nicks-mode: t erc-button-mode: t erc-fill-mode: t erc-stamp-mode: t erc-irccontrols-mode: t erc-noncommands-mode: t erc-move-to-prompt-mode: t erc-readonly-mode: t savehist-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent messages: Delete excess backup versions of /home/tromey/gdb/binutils-gdb/.git/COMMIT_EDITMSG? (y or n) y Wrote /home/tromey/gdb/binutils-gdb/.git/COMMIT_EDITMSG There are unresolved conflicts in /home/tromey/gdb/binutils-gdb/gdb/ui-out.h Making completion list... Mark saved where search started Mark set Mark saved where search started C-x C-g is undefined (No files need saving) Hiding up-to-date and ignored items Load-path shadows: /home/tromey/.emacs.d/elpa/bubbles-0.5/bubbles hides /home/tromey/Emacs/install/share/emacs/25.1.91/lisp/play/bubbles Features: (shadow emacsbug conf-mode two-column iso-transl perl-mode sh-script executable cal-move nnregistry python tramp-sh tramp tramp-compat tramp-loaddefs trampver ucs-normalize make-mode etags cursor-sensor mhtml-mode org-bullets org-element org-rmail org-mhe org-irc org-info org-gnus org-docview doc-view image-mode org-bibtex bibtex org-bbdb org-w3m org org-macro org-footnote org-pcomplete org-list org-faces org-entities org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp org-src ob-keys ob-comint ob-core ob-eval org-compat org-macs org-loaddefs gnus-fun gnus-draft noutline outline ido skeleton css-mode smie eww url-queue trace find-dired descr-text gdb-shell lisp-mnt url-handlers url-http url-gw url-auth lex edebug debug m4-mode bbdb-sc supercite regi xref project log-edit js json map sgml-mode flow-fill gnus-html xml url-cache mm-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf eieio-opt speedbar sb-image ezimage dframe find-func whitespace tcl log-view pcvs-util vc-annotate term/xterm xterm smerge-mode goto-addr shell find-file idutils derived bug-reference cc-mode cc-fonts cc-guess cc-menus cc-cmds jka-compr mailalias mail-hist nnir sort gnus-cite smiley shr-color url-util url-parse url-vars shr dom subr-x browse-url mm-archive gnus-async gnus-bcklg qp gnus-ml disp-table gnus-topic nndraft nnmh nnfolder utf-7 bbdb-gnus bbdb-mua bbdb-com crm network-stream nsm starttls gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg nntp gnus-cache gnus-registry registry eieio-compat eieio-base gnus-art mm-uu mml2015 mm-view mml-smime smime dig mailcap gnus-sum gnus-group gnus-undo smtpmail gnus-start gnus-cloud nnimap nnmail mail-source tls gnutls utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range gnus-win gnus gnus-ems nnheader bbdb-message sendmail mail-extr message idna dired rfc822 mml mml-sec epg mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev mail-utils gmm-utils mailheader gud dwarf-mode copyright dabbrev misearch multi-isearch vc-mtn vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs add-log rx vc-git diff-mode easy-mmode rust-mode flyspell ispell diminish edmacro kmacro projectile grep compile ibuf-ext ibuffer dash appt diary-lib diary-loaddefs cal-menu calendar cal-loaddefs which-func imenu minimap autorevert filenotify cus-start cus-load status erc-services erc-list erc-menu erc-join erc-ring erc-networks erc-pcomplete pcomplete erc-track erc-match erc-netsplit erc-hl-nicks color erc-button erc-fill erc-stamp wid-edit erc-goodies erc erc-backend erc-compat format-spec auth-source eieio gnus-util mm-util help-fns mail-prsvr password-cache thingatpt pp warnings advice vc-dir ewoc vc vc-dispatcher cc-styles cc-align cc-engine cc-vars cc-defs bbdb bbdb-site timezone ange-ftp comint ansi-color ring server savehist finder-inf dwarf-mode-autoloads gdb-shell-autoloads eieio-core lisppaste-autoloads pydoc-info-autoloads info-look cl-seq cl-macs cl weblogger-autoloads info package epg-config seq byte-opt gv bytecomp byte-compile cl-extra help-mode easymenu cconv cl-loaddefs pcase cl-lib bbdb-loaddefs time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote dbusbind inotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 1841388 223499) (symbols 48 137600 13) (miscs 40 30171 9433) (strings 32 518292 186214) (string-bytes 1 14434760) (vectors 16 128453) (vector-slots 8 2744148 100168) (floats 8 924 1207) (intervals 56 168057 715) (buffers 976 269)) From unknown Sun Jun 22 11:39:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25683: semi-working patch Resent-From: Tom Tromey Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 11 Feb 2017 20:46:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25683 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 25683@debbugs.gnu.org Received: via spool by 25683-submit@debbugs.gnu.org id=B25683.148684592614017 (code B ref 25683); Sat, 11 Feb 2017 20:46:01 +0000 Received: (at 25683) by debbugs.gnu.org; 11 Feb 2017 20:45:26 +0000 Received: from localhost ([127.0.0.1]:35931 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cceXt-0003e1-W9 for submit@debbugs.gnu.org; Sat, 11 Feb 2017 15:45:26 -0500 Received: from gproxy8-pub.mail.unifiedlayer.com ([67.222.33.93]:55835) by debbugs.gnu.org with smtp (Exim 4.84_2) (envelope-from ) id 1cceXr-0003do-R8 for 25683@debbugs.gnu.org; Sat, 11 Feb 2017 15:45:24 -0500 Received: (qmail 8229 invoked by uid 0); 11 Feb 2017 20:45:13 -0000 Received: from unknown (HELO cmgw3) (10.0.90.84) by gproxy8.mail.unifiedlayer.com with SMTP; 11 Feb 2017 20:45:13 -0000 Received: from box522.bluehost.com ([74.220.219.122]) by cmgw3 with id jYl91u00A2f2jeq01YlCvF; Sat, 11 Feb 2017 13:45:13 -0700 X-Authority-Analysis: v=2.1 cv=WOnsABcR c=1 sm=1 tr=0 a=GsOEXm/OWkKvwdLVJsfwcA==:117 a=GsOEXm/OWkKvwdLVJsfwcA==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=n2v9WMKugxEA:10 a=GHmabsiQ3GQj90nd3msA:9 a=ijeUF8T_eAQAkoz9:21 a=67i0tXVb-a6tdMIb:21 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:To:From:Sender:Reply-To:Cc:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=pNPDJgFuxIL0Yxfjh6EAG7kBSlh85JD1zf6GkBmwtrY=; b=ky1neSSylFh3baYv+cdfYcwz3X qay5se6FnYb1gJgja0Z/JW+ckuJs1yHOduHfD5yvbevxD+K4mhXwykgi4bwS2Xk1AAHeZAhFjVlhU JxOpPVo57hq8x6cAFV3nrh+tm; Received: from 174-16-128-54.hlrn.qwest.net ([174.16.128.54]:51516 helo=bapiya) by box522.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.87) (envelope-from ) id 1cceXc-0007om-TE; Sat, 11 Feb 2017 13:45:09 -0700 From: Tom Tromey References: <87ziht66bc.fsf@tromey.com> X-Attribution: Tom Date: Sat, 11 Feb 2017 13:45:06 -0700 In-Reply-To: (GNU bug Tracking System's message of "Fri, 10 Feb 2017 22:17:02 +0000") Message-ID: <87wpcw319p.fsf_-_@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.91 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box522.bluehost.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 174.16.128.54 X-Exim-ID: 1cceXc-0007om-TE X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 174-16-128-54.hlrn.qwest.net (bapiya) [174.16.128.54]:51516 X-Source-Auth: tom+tromey.com X-Email-Count: 1 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTIyLmJsdWVob3N0LmNvbQ== X-Spam-Score: -1.4 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.4 (-) This patch kind of works. That is, it correctly notices files that have a conflict. However, when typing "g" in vc-dir, such a file briefly appears as "edited", then switches to "conflict". This happens because a file is first noticed in the diff-index phase, then later its state is corrected in the new ls-files-conflict stage. Ideally it would be possible to get the conflict state directly from git diff-index, but I couldn't see a way to do that :(. The manual says: 8. sha1 for "dst"; 0{40} if creation, unmerged or "look at work tree". ... but this just means the value can be all-0 for either the edited or conflict states. One fix for this might be to pass maintain more state here and only call the update-function when all the passes are done. Another idea for a fix would be to notice files with an all-0 sha in diff-index, then push these names on "files"; then let the new ls-files-conflict stage determine the result. Tom diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 24dabb6..db19eb0 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -417,10 +417,22 @@ vc-git-after-dir-status-stage result)))) (`ls-files-up-to-date (setq next-stage 'ls-files-unknown) - (while (re-search-forward "\\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} 0\t\\([^\0]+\\)\0" nil t) + (while (re-search-forward "\\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} \\([0-3]\\)\t\\([^\0]+\\)\0" nil t) + (let ((perm (string-to-number (match-string 1) 8)) + (state (match-string 2)) + (name (match-string 3))) + (push (list name (if (equal state "0") + 'up-to-date + 'conflict) + (vc-git-create-extra-fileinfo perm perm)) + result)))) + (`ls-files-conflict + (setq next-stage 'ls-files-unknown) + ;; It's enough to look for "3" to notice a conflict. + (while (re-search-forward "\\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} 3\t\\([^\0]+\\)\0" nil t) (let ((perm (string-to-number (match-string 1) 8)) (name (match-string 2))) - (push (list name 'up-to-date + (push (list name 'conflict (vc-git-create-extra-fileinfo perm perm)) result)))) (`ls-files-unknown @@ -435,7 +447,7 @@ vc-git-after-dir-status-stage (vc-git-create-extra-fileinfo 0 0)) result))) (`diff-index - (setq next-stage (if files 'ls-files-up-to-date 'ls-files-unknown)) + (setq next-stage (if files 'ls-files-up-to-date 'ls-files-conflict)) (while (re-search-forward ":\\([0-7]\\{6\\}\\) \\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\(\\([ADMUT]\\)\0\\([^\0]+\\)\\|\\([CR]\\)[0-9]*\0\\([^\0]+\\)\0\\([^\0]+\\)\\)\0" nil t 1) @@ -491,6 +503,9 @@ vc-git-dir-status-goto-stage (`ls-files-up-to-date (vc-git-command (current-buffer) 'async files "ls-files" "-z" "-c" "-s" "--")) + (`ls-files-conflict + (vc-git-command (current-buffer) 'async files + "ls-files" "-z" "-c" "-s" "--")) (`ls-files-unknown (vc-git-command (current-buffer) 'async files "ls-files" "-z" "-o" "--directory" From unknown Sun Jun 22 11:39:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25683: semi-working patch Resent-From: Tom Tromey Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 11 Feb 2017 21:41:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25683 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Tom Tromey Cc: 25683@debbugs.gnu.org Received: via spool by 25683-submit@debbugs.gnu.org id=B25683.148684922432065 (code B ref 25683); Sat, 11 Feb 2017 21:41:01 +0000 Received: (at 25683) by debbugs.gnu.org; 11 Feb 2017 21:40:24 +0000 Received: from localhost ([127.0.0.1]:35999 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ccfP6-0008L6-9E for submit@debbugs.gnu.org; Sat, 11 Feb 2017 16:40:24 -0500 Received: from gproxy5-pub.mail.unifiedlayer.com ([67.222.38.55]:48742) by debbugs.gnu.org with smtp (Exim 4.84_2) (envelope-from ) id 1ccfP4-0008Kt-Dv for 25683@debbugs.gnu.org; Sat, 11 Feb 2017 16:40:23 -0500 Received: (qmail 10993 invoked by uid 0); 11 Feb 2017 21:40:14 -0000 Received: from unknown (HELO cmgw4) (10.0.90.85) by gproxy5.mail.unifiedlayer.com with SMTP; 11 Feb 2017 21:40:14 -0000 Received: from box522.bluehost.com ([74.220.219.122]) by cmgw4 with id jZg61u00h2f2jeq01Zg9yn; Sat, 11 Feb 2017 14:40:14 -0700 X-Authority-Analysis: v=2.1 cv=Pets2ERd c=1 sm=1 tr=0 a=GsOEXm/OWkKvwdLVJsfwcA==:117 a=GsOEXm/OWkKvwdLVJsfwcA==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=n2v9WMKugxEA:10 a=_NSa9V-yvz-lUSsYy34A:9 a=r7OI1ZxQqtDMr6Fz:21 a=VYii_ZEqRqnvZmZK:21 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=ng2b68fe5GnpeH6H4I4cTAtomwbk1HhlkGU8k9OG9/0=; b=CZUpx8d8D7c9KulFafINCXT9Mg acKmSuBVVRukDJWwh+Crq5flUsj3JTtGWfVDvsxVR0BtvlEYmEY8WS1xMYKaJ6uLZQGKjzgK/jqKh EkmNC8K+mdDpDoh75SoKgwOjA; Received: from 174-16-128-54.hlrn.qwest.net ([174.16.128.54]:51752 helo=bapiya) by box522.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.87) (envelope-from ) id 1ccfOo-0007fm-Jm; Sat, 11 Feb 2017 14:40:06 -0700 From: Tom Tromey References: <87ziht66bc.fsf@tromey.com> <87wpcw319p.fsf_-_@tromey.com> X-Attribution: Tom Date: Sat, 11 Feb 2017 14:40:05 -0700 In-Reply-To: <87wpcw319p.fsf_-_@tromey.com> (Tom Tromey's message of "Sat, 11 Feb 2017 13:45:06 -0700") Message-ID: <87o9y82yq2.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.91 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box522.bluehost.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 174.16.128.54 X-Exim-ID: 1ccfOo-0007fm-Jm X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 174-16-128-54.hlrn.qwest.net (bapiya) [174.16.128.54]:51752 X-Source-Auth: tom+tromey.com X-Email-Count: 2 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTIyLmJsdWVob3N0LmNvbQ== X-Spam-Score: -1.9 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.9 (-) Tom> One fix for this might be to pass maintain more state here and only call Tom> the update-function when all the passes are done. I've implemented this idea. Let me know what you think. Tom diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 24dabb6..de07ea2 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -401,11 +401,30 @@ vc-git-dir-printer (vc-git-file-type-as-string old-perm new-perm) (vc-git-rename-as-string state extra)))) -(defun vc-git-after-dir-status-stage (stage files update-function) +(cl-defstruct (vc-git-dir-status-state + (:copier nil) + (:conc-name vc-git-dir-status-state->)) + ;; Current stage. + stage + ;; List of files still to be processed. + files + ;; Update function to be called at the end. + update-function + ;; Hash table of entries for files we've computed so far. + (hash (make-hash-table :test 'equal))) + +(defsubst vc-git-dir-status-update-file (state filename file-state file-info) + (puthash filename (list file-state file-info) + (vc-git-dir-status-state->hash state)) + (setf (vc-git-dir-status-state->files state) + (delete filename (vc-git-dir-status-state->files state)))) + +(defun vc-git-after-dir-status-stage (git-state) "Process sentinel for the various dir-status stages." - (let (next-stage result) + (let (next-stage + (files (vc-git-dir-status-state->files git-state))) (goto-char (point-min)) - (pcase stage + (pcase (vc-git-dir-status-state->stage git-state) (`update-index (setq next-stage (if (vc-git--empty-db-p) 'ls-files-added 'diff-index))) (`ls-files-added @@ -413,29 +432,40 @@ vc-git-after-dir-status-stage (while (re-search-forward "\\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} 0\t\\([^\0]+\\)\0" nil t) (let ((new-perm (string-to-number (match-string 1) 8)) (name (match-string 2))) - (push (list name 'added (vc-git-create-extra-fileinfo 0 new-perm)) - result)))) + (vc-git-dir-status-update-file + git-state name 'added + (vc-git-create-extra-fileinfo 0 new-perm))))) (`ls-files-up-to-date (setq next-stage 'ls-files-unknown) - (while (re-search-forward "\\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} 0\t\\([^\0]+\\)\0" nil t) + (while (re-search-forward "\\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} \\([0-3]\\)\t\\([^\0]+\\)\0" nil t) + (let ((perm (string-to-number (match-string 1) 8)) + (state (match-string 2)) + (name (match-string 3))) + (vc-git-dir-status-update-file + git-state name (if (equal state "0") + 'up-to-date + 'conflict) + (vc-git-create-extra-fileinfo perm perm))))) + (`ls-files-conflict + (setq next-stage 'ls-files-unknown) + ;; It's enough to look for "3" to notice a conflict. + (while (re-search-forward "\\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} 3\t\\([^\0]+\\)\0" nil t) (let ((perm (string-to-number (match-string 1) 8)) (name (match-string 2))) - (push (list name 'up-to-date - (vc-git-create-extra-fileinfo perm perm)) - result)))) + (vc-git-dir-status-update-file + git-state name 'conflict + (vc-git-create-extra-fileinfo perm perm))))) (`ls-files-unknown (when files (setq next-stage 'ls-files-ignored)) (while (re-search-forward "\\([^\0]*?\\)\0" nil t 1) - (push (list (match-string 1) 'unregistered - (vc-git-create-extra-fileinfo 0 0)) - result))) + (vc-git-create-extra-fileinfo git-state (match-string 1) 'unregistered + (vc-git-create-extra-fileinfo 0 0)))) (`ls-files-ignored (while (re-search-forward "\\([^\0]*?\\)\0" nil t 1) - (push (list (match-string 1) 'ignored - (vc-git-create-extra-fileinfo 0 0)) - result))) + (vc-git-dir-status-update-file git-state (match-string 1) 'ignored + (vc-git-create-extra-fileinfo 0 0)))) (`diff-index - (setq next-stage (if files 'ls-files-up-to-date 'ls-files-unknown)) + (setq next-stage (if files 'ls-files-up-to-date 'ls-files-conflict)) (while (re-search-forward ":\\([0-7]\\{6\\}\\) \\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\(\\([ADMUT]\\)\0\\([^\0]+\\)\\|\\([CR]\\)[0-9]*\0\\([^\0]+\\)\0\\([^\0]+\\)\\)\0" nil t 1) @@ -446,30 +476,34 @@ vc-git-after-dir-status-stage (new-name (match-string 8))) (if new-name ; Copy or rename. (if (eq ?C (string-to-char state)) - (push (list new-name 'added - (vc-git-create-extra-fileinfo old-perm new-perm - 'copy name)) - result) - (push (list name 'removed - (vc-git-create-extra-fileinfo 0 0 - 'rename new-name)) - result) - (push (list new-name 'added - (vc-git-create-extra-fileinfo old-perm new-perm - 'rename name)) - result)) - (push (list name (vc-git--state-code state) - (vc-git-create-extra-fileinfo old-perm new-perm)) - result)))))) - (when result - (setq result (nreverse result)) - (when files - (dolist (entry result) (setq files (delete (car entry) files))) - (unless files (setq next-stage nil)))) - (when (or result (not next-stage)) - (funcall update-function result next-stage)) - (when next-stage - (vc-git-dir-status-goto-stage next-stage files update-function)))) + (vc-git-dir-status-update-file + git-state new-name 'added + (vc-git-create-extra-fileinfo old-perm new-perm + 'copy name)) + (vc-git-dir-status-update-file + git-state name 'removed + (vc-git-create-extra-fileinfo 0 0 'rename new-name)) + (vc-git-dir-status-update-file + git-state new-name 'added + (vc-git-create-extra-fileinfo old-perm new-perm + 'rename name))) + (vc-git-dir-status-update-file + git-state name (vc-git--state-code state) + (vc-git-create-extra-fileinfo old-perm new-perm))))))) + ;; If we had files but now we don't, it's time to stop. + (when (and files (not (vc-git-dir-status-state->files git-state))) + (setq next-stage nil)) + (setf (vc-git-dir-status-state->stage git-state) next-stage) + (setf (vc-git-dir-status-state->files git-state) files) + (if next-stage + (vc-git-dir-status-goto-stage git-state) + (funcall (vc-git-dir-status-state->update-function git-state) + (let ((result nil)) + (maphash (lambda (key value) + (push (cons key value) result)) + (vc-git-dir-status-state->hash git-state)) + result) + nil)))) ;; Follows vc-git-command (or vc-do-async-command), which uses vc-do-command ;; from vc-dispatcher. @@ -477,41 +511,48 @@ vc-git-after-dir-status-stage ;; Follows vc-exec-after. (declare-function vc-set-async-update "vc-dispatcher" (process-buffer)) -(defun vc-git-dir-status-goto-stage (stage files update-function) - (erase-buffer) - (pcase stage - (`update-index - (if files - (vc-git-command (current-buffer) 'async files "add" "--refresh" "--") - (vc-git-command (current-buffer) 'async nil - "update-index" "--refresh"))) - (`ls-files-added - (vc-git-command (current-buffer) 'async files - "ls-files" "-z" "-c" "-s" "--")) - (`ls-files-up-to-date - (vc-git-command (current-buffer) 'async files - "ls-files" "-z" "-c" "-s" "--")) - (`ls-files-unknown - (vc-git-command (current-buffer) 'async files - "ls-files" "-z" "-o" "--directory" - "--no-empty-directory" "--exclude-standard" "--")) - (`ls-files-ignored - (vc-git-command (current-buffer) 'async files - "ls-files" "-z" "-o" "-i" "--directory" - "--no-empty-directory" "--exclude-standard" "--")) - ;; --relative added in Git 1.5.5. - (`diff-index - (vc-git-command (current-buffer) 'async files - "diff-index" "--relative" "-z" "-M" "HEAD" "--"))) - (vc-run-delayed - (vc-git-after-dir-status-stage stage files update-function))) +(defun vc-git-dir-status-goto-stage (git-state) + (let ((files (vc-git-dir-status-state->files git-state))) + (erase-buffer) + (pcase (vc-git-dir-status-state->stage git-state) + (`update-index + (if files + (vc-git-command (current-buffer) 'async files "add" "--refresh" "--") + (vc-git-command (current-buffer) 'async nil + "update-index" "--refresh"))) + (`ls-files-added + (vc-git-command (current-buffer) 'async files + "ls-files" "-z" "-c" "-s" "--")) + (`ls-files-up-to-date + (vc-git-command (current-buffer) 'async files + "ls-files" "-z" "-c" "-s" "--")) + (`ls-files-conflict + (vc-git-command (current-buffer) 'async files + "ls-files" "-z" "-c" "-s" "--")) + (`ls-files-unknown + (vc-git-command (current-buffer) 'async files + "ls-files" "-z" "-o" "--directory" + "--no-empty-directory" "--exclude-standard" "--")) + (`ls-files-ignored + (vc-git-command (current-buffer) 'async files + "ls-files" "-z" "-o" "-i" "--directory" + "--no-empty-directory" "--exclude-standard" "--")) + ;; --relative added in Git 1.5.5. + (`diff-index + (vc-git-command (current-buffer) 'async files + "diff-index" "--relative" "-z" "-M" "HEAD" "--"))) + (vc-run-delayed + (vc-git-after-dir-status-stage git-state)))) (defun vc-git-dir-status-files (_dir files update-function) "Return a list of (FILE STATE EXTRA) entries for DIR." ;; Further things that would have to be fixed later: ;; - how to handle unregistered directories ;; - how to support vc-dir on a subdir of the project tree - (vc-git-dir-status-goto-stage 'update-index files update-function)) + (vc-git-dir-status-goto-stage + (make-vc-git-dir-status-state :stage 'update-index + :files files + :update-function update-function))) (defvar vc-git-stash-map (let ((map (make-sparse-keymap))) From unknown Sun Jun 22 11:39:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25683: semi-working patch Resent-From: Tom Tromey Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 12 Feb 2017 06:18:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25683 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Tom Tromey Cc: 25683@debbugs.gnu.org Received: via spool by 25683-submit@debbugs.gnu.org id=B25683.148688025512205 (code B ref 25683); Sun, 12 Feb 2017 06:18:01 +0000 Received: (at 25683) by debbugs.gnu.org; 12 Feb 2017 06:17:35 +0000 Received: from localhost ([127.0.0.1]:36128 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ccnTb-0003Am-8C for submit@debbugs.gnu.org; Sun, 12 Feb 2017 01:17:35 -0500 Received: from gproxy8-pub.mail.unifiedlayer.com ([67.222.33.93]:51084) by debbugs.gnu.org with smtp (Exim 4.84_2) (envelope-from ) id 1ccnTa-0003Aa-07 for 25683@debbugs.gnu.org; Sun, 12 Feb 2017 01:17:34 -0500 Received: (qmail 10354 invoked by uid 0); 12 Feb 2017 06:17:19 -0000 Received: from unknown (HELO cmgw2) (10.0.90.83) by gproxy8.mail.unifiedlayer.com with SMTP; 12 Feb 2017 06:17:19 -0000 Received: from box522.bluehost.com ([74.220.219.122]) by cmgw2 with id jiHD1u0092f2jeq01iHG0u; Sat, 11 Feb 2017 23:17:19 -0700 X-Authority-Analysis: v=2.1 cv=H5NInYoi c=1 sm=1 tr=0 a=GsOEXm/OWkKvwdLVJsfwcA==:117 a=GsOEXm/OWkKvwdLVJsfwcA==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=n2v9WMKugxEA:10 a=7C_x872MJpiwx7veZ7wA:9 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=VLKW3siJpXAD2gK0gDtfXAJBzAzQ1Ed5GoZyMsTvTec=; b=RD4tRD7qNpmd/B4PwVHS7jdpL+ pW6NH8y3+jQk24ajV2fqcoz/VXVMec7QSu+fZdgOHw6Uccr/5xPSqRJg5tfy3fRRL9cJIoiwTpcl0 hZA3kN1izxTDkRFDXPpfFoD3M; Received: from 174-16-128-54.hlrn.qwest.net ([174.16.128.54]:54132 helo=bapiya) by box522.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.87) (envelope-from ) id 1ccnTF-0003AU-3c; Sat, 11 Feb 2017 23:17:13 -0700 From: Tom Tromey References: <87ziht66bc.fsf@tromey.com> <87wpcw319p.fsf_-_@tromey.com> <87o9y82yq2.fsf@tromey.com> X-Attribution: Tom Date: Sat, 11 Feb 2017 23:17:08 -0700 In-Reply-To: <87o9y82yq2.fsf@tromey.com> (Tom Tromey's message of "Sat, 11 Feb 2017 14:40:05 -0700") Message-ID: <874m002asb.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.91 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box522.bluehost.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 174.16.128.54 X-Exim-ID: 1ccnTF-0003AU-3c X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 174-16-128-54.hlrn.qwest.net (bapiya) [174.16.128.54]:54132 X-Source-Auth: tom+tromey.com X-Email-Count: 5 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTIyLmJsdWVob3N0LmNvbQ== X-Spam-Score: -1.9 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.9 (-) Tom> I've implemented this idea. Tom> Let me know what you think. It seems that this patch regresses the case where a new file is created and not registered. So, there's more debugging to be done. I'd still appreciate comments on the direction. Tom From unknown Sun Jun 22 11:39:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25683: semi-working patch Resent-From: Tom Tromey Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 14 Feb 2017 01:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25683 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Tom Tromey Cc: 25683@debbugs.gnu.org Received: via spool by 25683-submit@debbugs.gnu.org id=B25683.148703477529623 (code B ref 25683); Tue, 14 Feb 2017 01:13:02 +0000 Received: (at 25683) by debbugs.gnu.org; 14 Feb 2017 01:12:55 +0000 Received: from localhost ([127.0.0.1]:39061 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdRfr-0007hj-51 for submit@debbugs.gnu.org; Mon, 13 Feb 2017 20:12:55 -0500 Received: from gproxy3-pub.mail.unifiedlayer.com ([69.89.30.42]:48661) by debbugs.gnu.org with smtp (Exim 4.84_2) (envelope-from ) id 1cdRfo-0007hV-Iq for 25683@debbugs.gnu.org; Mon, 13 Feb 2017 20:12:53 -0500 Received: (qmail 22823 invoked by uid 0); 14 Feb 2017 01:12:40 -0000 Received: from unknown (HELO cmgw2) (10.0.90.83) by gproxy3.mail.unifiedlayer.com with SMTP; 14 Feb 2017 01:12:40 -0000 Received: from box522.bluehost.com ([74.220.219.122]) by cmgw2 with id kRCa1u00e2f2jeq01RCdcu; Mon, 13 Feb 2017 18:12:40 -0700 X-Authority-Analysis: v=2.1 cv=H5NInYoi c=1 sm=1 tr=0 a=GsOEXm/OWkKvwdLVJsfwcA==:117 a=GsOEXm/OWkKvwdLVJsfwcA==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=n2v9WMKugxEA:10 a=zstS-IiYAAAA:8 a=jniu3RD4xHHKSXTuk3EA:9 a=i39CRPBBHb5ztDg-:21 a=LDheaRUc5H50XfQM:21 a=4G6NA9xxw8l3yy4pmD5M:22 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=u+XBH6Mc+/Yovx6Qf9rqxALh9teMqHz37XyXgRKWvHs=; b=mIyGeNjdfdUhQ6wlJaDa2Jvb5Z 2D4xmKGmCdSwbWDI8r8bedoTC5bbftaLkiuYXAupKQcSMJ354dgfvGpl+RoJ41lJZfkzJbwX9OH/3 pMYUxzQsF+ZswU+27zgRaaE5j; Received: from 174-16-128-54.hlrn.qwest.net ([174.16.128.54]:32816 helo=bapiya) by box522.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.87) (envelope-from ) id 1cdRfW-0000Il-EH; Mon, 13 Feb 2017 18:12:34 -0700 From: Tom Tromey References: <87ziht66bc.fsf@tromey.com> <87wpcw319p.fsf_-_@tromey.com> <87o9y82yq2.fsf@tromey.com> <874m002asb.fsf@tromey.com> X-Attribution: Tom Date: Mon, 13 Feb 2017 18:12:32 -0700 In-Reply-To: <874m002asb.fsf@tromey.com> (Tom Tromey's message of "Sat, 11 Feb 2017 23:17:08 -0700") Message-ID: <87zihpzibj.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.91 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box522.bluehost.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 174.16.128.54 X-Exim-ID: 1cdRfW-0000Il-EH X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 174-16-128-54.hlrn.qwest.net (bapiya) [174.16.128.54]:32816 X-Source-Auth: tom+tromey.com X-Email-Count: 1 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTIyLmJsdWVob3N0LmNvbQ== X-Spam-Score: 0.5 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) Tom> It seems that this patch regresses the case where a new file is created Tom> and not registered. So, there's more debugging to be done. Tom> I'd still appreciate comments on the direction. It was just a spot where I didn't properly update a call. This version works. Tom commit 4921bfdbbd7009749e371a6ec2b76b78679e4a3d Author: Tom Tromey Date: Mon Feb 13 18:09:36 2017 -0700 Make vc-git detect conflict state for vc-dir * lisp/vc/vc-git.el (vc-git-dir-status-state): New struct. (vc-git-dir-status-update-file): New function. (vc-git-after-dir-status-stage, vc-git-dir-status-goto-stage): Use vc-git-dir-status-state; add 'ls-files-conflict state. (vc-git-dir-status-files): Create a vc-git-dir-status-state. diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index d985cb3..713965e 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -401,11 +401,30 @@ vc-git-dir-printer (vc-git-file-type-as-string old-perm new-perm) (vc-git-rename-as-string state extra)))) -(defun vc-git-after-dir-status-stage (stage files update-function) +(cl-defstruct (vc-git-dir-status-state + (:copier nil) + (:conc-name vc-git-dir-status-state->)) + ;; Current stage. + stage + ;; List of files still to be processed. + files + ;; Update function to be called at the end. + update-function + ;; Hash table of entries for files we've computed so far. + (hash (make-hash-table :test 'equal))) + +(defsubst vc-git-dir-status-update-file (state filename file-state file-info) + (puthash filename (list file-state file-info) + (vc-git-dir-status-state->hash state)) + (setf (vc-git-dir-status-state->files state) + (delete filename (vc-git-dir-status-state->files state)))) + +(defun vc-git-after-dir-status-stage (git-state) "Process sentinel for the various dir-status stages." - (let (next-stage result) + (let (next-stage + (files (vc-git-dir-status-state->files git-state))) (goto-char (point-min)) - (pcase stage + (pcase (vc-git-dir-status-state->stage git-state) (`update-index (setq next-stage (if (vc-git--empty-db-p) 'ls-files-added 'diff-index))) (`ls-files-added @@ -413,29 +432,40 @@ vc-git-after-dir-status-stage (while (re-search-forward "\\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} 0\t\\([^\0]+\\)\0" nil t) (let ((new-perm (string-to-number (match-string 1) 8)) (name (match-string 2))) - (push (list name 'added (vc-git-create-extra-fileinfo 0 new-perm)) - result)))) + (vc-git-dir-status-update-file + git-state name 'added + (vc-git-create-extra-fileinfo 0 new-perm))))) (`ls-files-up-to-date (setq next-stage 'ls-files-unknown) - (while (re-search-forward "\\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} 0\t\\([^\0]+\\)\0" nil t) + (while (re-search-forward "\\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} \\([0-3]\\)\t\\([^\0]+\\)\0" nil t) + (let ((perm (string-to-number (match-string 1) 8)) + (state (match-string 2)) + (name (match-string 3))) + (vc-git-dir-status-update-file + git-state name (if (equal state "0") + 'up-to-date + 'conflict) + (vc-git-create-extra-fileinfo perm perm))))) + (`ls-files-conflict + (setq next-stage 'ls-files-unknown) + ;; It's enough to look for "3" to notice a conflict. + (while (re-search-forward "\\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} 3\t\\([^\0]+\\)\0" nil t) (let ((perm (string-to-number (match-string 1) 8)) (name (match-string 2))) - (push (list name 'up-to-date - (vc-git-create-extra-fileinfo perm perm)) - result)))) + (vc-git-dir-status-update-file + git-state name 'conflict + (vc-git-create-extra-fileinfo perm perm))))) (`ls-files-unknown (when files (setq next-stage 'ls-files-ignored)) (while (re-search-forward "\\([^\0]*?\\)\0" nil t 1) - (push (list (match-string 1) 'unregistered - (vc-git-create-extra-fileinfo 0 0)) - result))) + (vc-git-dir-status-update-file git-state (match-string 1) 'unregistered + (vc-git-create-extra-fileinfo 0 0)))) (`ls-files-ignored (while (re-search-forward "\\([^\0]*?\\)\0" nil t 1) - (push (list (match-string 1) 'ignored - (vc-git-create-extra-fileinfo 0 0)) - result))) + (vc-git-dir-status-update-file git-state (match-string 1) 'ignored + (vc-git-create-extra-fileinfo 0 0)))) (`diff-index - (setq next-stage (if files 'ls-files-up-to-date 'ls-files-unknown)) + (setq next-stage (if files 'ls-files-up-to-date 'ls-files-conflict)) (while (re-search-forward ":\\([0-7]\\{6\\}\\) \\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\(\\([ADMUT]\\)\0\\([^\0]+\\)\\|\\([CR]\\)[0-9]*\0\\([^\0]+\\)\0\\([^\0]+\\)\\)\0" nil t 1) @@ -446,30 +476,34 @@ vc-git-after-dir-status-stage (new-name (match-string 8))) (if new-name ; Copy or rename. (if (eq ?C (string-to-char state)) - (push (list new-name 'added - (vc-git-create-extra-fileinfo old-perm new-perm - 'copy name)) - result) - (push (list name 'removed - (vc-git-create-extra-fileinfo 0 0 - 'rename new-name)) - result) - (push (list new-name 'added - (vc-git-create-extra-fileinfo old-perm new-perm - 'rename name)) - result)) - (push (list name (vc-git--state-code state) - (vc-git-create-extra-fileinfo old-perm new-perm)) - result)))))) - (when result - (setq result (nreverse result)) - (when files - (dolist (entry result) (setq files (delete (car entry) files))) - (unless files (setq next-stage nil)))) - (when (or result (not next-stage)) - (funcall update-function result next-stage)) - (when next-stage - (vc-git-dir-status-goto-stage next-stage files update-function)))) + (vc-git-dir-status-update-file + git-state new-name 'added + (vc-git-create-extra-fileinfo old-perm new-perm + 'copy name)) + (vc-git-dir-status-update-file + git-state name 'removed + (vc-git-create-extra-fileinfo 0 0 'rename new-name)) + (vc-git-dir-status-update-file + git-state new-name 'added + (vc-git-create-extra-fileinfo old-perm new-perm + 'rename name))) + (vc-git-dir-status-update-file + git-state name (vc-git--state-code state) + (vc-git-create-extra-fileinfo old-perm new-perm))))))) + ;; If we had files but now we don't, it's time to stop. + (when (and files (not (vc-git-dir-status-state->files git-state))) + (setq next-stage nil)) + (setf (vc-git-dir-status-state->stage git-state) next-stage) + (setf (vc-git-dir-status-state->files git-state) files) + (if next-stage + (vc-git-dir-status-goto-stage git-state) + (funcall (vc-git-dir-status-state->update-function git-state) + (let ((result nil)) + (maphash (lambda (key value) + (push (cons key value) result)) + (vc-git-dir-status-state->hash git-state)) + result) + nil)))) ;; Follows vc-git-command (or vc-do-async-command), which uses vc-do-command ;; from vc-dispatcher. @@ -477,41 +511,48 @@ vc-git-after-dir-status-stage ;; Follows vc-exec-after. (declare-function vc-set-async-update "vc-dispatcher" (process-buffer)) -(defun vc-git-dir-status-goto-stage (stage files update-function) - (erase-buffer) - (pcase stage - (`update-index - (if files - (vc-git-command (current-buffer) 'async files "add" "--refresh" "--") - (vc-git-command (current-buffer) 'async nil - "update-index" "--refresh"))) - (`ls-files-added - (vc-git-command (current-buffer) 'async files - "ls-files" "-z" "-c" "-s" "--")) - (`ls-files-up-to-date - (vc-git-command (current-buffer) 'async files - "ls-files" "-z" "-c" "-s" "--")) - (`ls-files-unknown - (vc-git-command (current-buffer) 'async files - "ls-files" "-z" "-o" "--directory" - "--no-empty-directory" "--exclude-standard" "--")) - (`ls-files-ignored - (vc-git-command (current-buffer) 'async files - "ls-files" "-z" "-o" "-i" "--directory" - "--no-empty-directory" "--exclude-standard" "--")) - ;; --relative added in Git 1.5.5. - (`diff-index - (vc-git-command (current-buffer) 'async files - "diff-index" "--relative" "-z" "-M" "HEAD" "--"))) - (vc-run-delayed - (vc-git-after-dir-status-stage stage files update-function))) +(defun vc-git-dir-status-goto-stage (git-state) + (let ((files (vc-git-dir-status-state->files git-state))) + (erase-buffer) + (pcase (vc-git-dir-status-state->stage git-state) + (`update-index + (if files + (vc-git-command (current-buffer) 'async files "add" "--refresh" "--") + (vc-git-command (current-buffer) 'async nil + "update-index" "--refresh"))) + (`ls-files-added + (vc-git-command (current-buffer) 'async files + "ls-files" "-z" "-c" "-s" "--")) + (`ls-files-up-to-date + (vc-git-command (current-buffer) 'async files + "ls-files" "-z" "-c" "-s" "--")) + (`ls-files-conflict + (vc-git-command (current-buffer) 'async files + "ls-files" "-z" "-c" "-s" "--")) + (`ls-files-unknown + (vc-git-command (current-buffer) 'async files + "ls-files" "-z" "-o" "--directory" + "--no-empty-directory" "--exclude-standard" "--")) + (`ls-files-ignored + (vc-git-command (current-buffer) 'async files + "ls-files" "-z" "-o" "-i" "--directory" + "--no-empty-directory" "--exclude-standard" "--")) + ;; --relative added in Git 1.5.5. + (`diff-index + (vc-git-command (current-buffer) 'async files + "diff-index" "--relative" "-z" "-M" "HEAD" "--"))) + (vc-run-delayed + (vc-git-after-dir-status-stage git-state)))) (defun vc-git-dir-status-files (_dir files update-function) "Return a list of (FILE STATE EXTRA) entries for DIR." ;; Further things that would have to be fixed later: ;; - how to handle unregistered directories ;; - how to support vc-dir on a subdir of the project tree - (vc-git-dir-status-goto-stage 'update-index files update-function)) + (vc-git-dir-status-goto-stage + (make-vc-git-dir-status-state :stage 'update-index + :files files + :update-function update-function))) (defvar vc-git-stash-map (let ((map (make-sparse-keymap))) From unknown Sun Jun 22 11:39:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25683: semi-working patch Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 14 Feb 2017 14:04:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25683 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Tom Tromey Cc: 25683@debbugs.gnu.org Received: via spool by 25683-submit@debbugs.gnu.org id=B25683.148708099214197 (code B ref 25683); Tue, 14 Feb 2017 14:04:02 +0000 Received: (at 25683) by debbugs.gnu.org; 14 Feb 2017 14:03:12 +0000 Received: from localhost ([127.0.0.1]:39398 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cddhI-0003gt-Cu for submit@debbugs.gnu.org; Tue, 14 Feb 2017 09:03:12 -0500 Received: from mail-wm0-f45.google.com ([74.125.82.45]:38653) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cddhF-0003ge-R4 for 25683@debbugs.gnu.org; Tue, 14 Feb 2017 09:03:11 -0500 Received: by mail-wm0-f45.google.com with SMTP id r141so18034204wmg.1 for <25683@debbugs.gnu.org>; Tue, 14 Feb 2017 06:03:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=vIesLh2ywukPW13i3th2hmnw9ft+hzBmYZvjIFya4Zg=; b=blClSQpn2f8YKp9M/Tkhy9ElI+FUEuPve1M4biE+lJ7g0f+29ZfclqN87iYFvRDJ2Y X2Cka7qQSPI+i7oi5ZbEP7OUaAB+hN6aph/bMJXCfR0jUWapE+VUn/Jo1dWgrKmNKcK0 nxKtFNRdq6y8xTCq+TlCS5lj/Nu/+VIdVe95A10NhwoO+4Z8RulIF+w7GsN2SAAR2XF1 +ZHozmbHI62viROeIHyeNFx1ywVVYgzkgd8FNSPon7ktsuVE0OGZWMYsENKbXyH+DDqu reiF9SOXrL7lUVSea2uPPW8UB+avJWvXeCsjzETrraa/K1BjCIFkCA9Sba8zAW39biBg xVog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=vIesLh2ywukPW13i3th2hmnw9ft+hzBmYZvjIFya4Zg=; b=Q9JJj/n435nwR1bETtNOUKjB2cw0SrnjVDHGTLPjaAG8tK9D9MWf8KnOhjMdUKFaFA 2QJgHy29MuAtUnkcC6UiEBmSwi4WF3cBfmOIjg8yuuMvn0j1HQf2CFc+hYIUWGKKdC+0 rXBIZpQdrIC0PZZdUtMg8L9RpWT7ngisKjmz9DRDHD5bOyRdFmUSclfKeegKiJjn9tgd AhhZjF12LpbMp+s3AYjrD9QiR4F+qoNS1+BfrnrLExr+sIvWtAiBiDMNjf5/2PRRpOvm dkMba4SqzUSE4bJzuloJpxiRHD7l2zm9VM6w8uPKFU7gIGKdQ8kYy5OEWpm42KOg2owa B83w== X-Gm-Message-State: AMke39maQqOpBQ0RxjECVHFS72Hy2AGj2SaloOQEGsfeR9pu7d49co3GiFVY6cl6eEvKgg== X-Received: by 10.28.65.196 with SMTP id o187mr3248474wma.37.1487080984078; Tue, 14 Feb 2017 06:03:04 -0800 (PST) Received: from [192.168.0.133] ([212.50.99.193]) by smtp.googlemail.com with ESMTPSA id v102sm949210wrb.11.2017.02.14.06.03.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 14 Feb 2017 06:03:03 -0800 (PST) References: <87ziht66bc.fsf@tromey.com> <87wpcw319p.fsf_-_@tromey.com> <87o9y82yq2.fsf@tromey.com> <874m002asb.fsf@tromey.com> <87zihpzibj.fsf@tromey.com> From: Dmitry Gutov Message-ID: <406ed4a9-d9d6-b610-0760-da0a424424b0@yandex.ru> Date: Tue, 14 Feb 2017 16:03:01 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.0 MIME-Version: 1.0 In-Reply-To: <87zihpzibj.fsf@tromey.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.2 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.2 (/) Hey Tom, On 14.02.2017 03:12, Tom Tromey wrote: > It was just a spot where I didn't properly update a call. > This version works. This is looking good (working, too). Please feel free to install. However, if you were looking for a more fundamental solution, switching to parsing the output of 'git status --porcelain' should be faster and ultimately less complex. See vc-git-conflicted-files for the first example of its usage, and https://debbugs.gnu.org/19343 for a related discussion. From unknown Sun Jun 22 11:39:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25683: semi-working patch Resent-From: Tom Tromey Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 14 Feb 2017 21:06:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25683 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Dmitry Gutov Cc: Tom Tromey , 25683@debbugs.gnu.org Received: via spool by 25683-submit@debbugs.gnu.org id=B25683.14871063317377 (code B ref 25683); Tue, 14 Feb 2017 21:06:02 +0000 Received: (at 25683) by debbugs.gnu.org; 14 Feb 2017 21:05:31 +0000 Received: from localhost ([127.0.0.1]:40276 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdkHz-0001ut-HZ for submit@debbugs.gnu.org; Tue, 14 Feb 2017 16:05:31 -0500 Received: from gproxy9-pub.mail.unifiedlayer.com ([69.89.20.122]:41473 helo=gproxy9.mail.unifiedlayer.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdkHx-0001uh-V2 for 25683@debbugs.gnu.org; Tue, 14 Feb 2017 16:05:30 -0500 Received: from CMOut01 (unknown [10.0.90.82]) by gproxy9.mail.unifiedlayer.com (Postfix) with ESMTP id 037F51E0BAF for <25683@debbugs.gnu.org>; Tue, 14 Feb 2017 14:05:22 -0700 (MST) Received: from box522.bluehost.com ([74.220.219.122]) by CMOut01 with id kl5J1u01A2f2jeq01l5Moe; Tue, 14 Feb 2017 14:05:21 -0700 X-Authority-Analysis: v=2.1 cv=U+QBU4bu c=1 sm=1 tr=0 a=GsOEXm/OWkKvwdLVJsfwcA==:117 a=GsOEXm/OWkKvwdLVJsfwcA==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=n2v9WMKugxEA:10 a=vaJtXVxTAAAA:8 a=ihBBQ_f-TABE0l2V4p0A:9 a=hCt-GehETBxEYQOojhlW:22 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=6ttJaTJ2htdAG3J3zOhPiXqb3XoF2dXr1MCcULUDHaY=; b=XJDMA/pW5swSrmLIJthXO1LSfd //YeTL28j9JmEQNrqt7fE3vMVtGOAn5YzkcwhrhYm6eEtASr8HEWFMW8LS26UJbICWzuD0Wc15JNf rqOKfxZFZj5KpOeya9MgKn0lf; Received: from 174-16-128-54.hlrn.qwest.net ([174.16.128.54]:34920 helo=bapiya) by box522.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.87) (envelope-from ) id 1cdkHm-0000J0-Ib; Tue, 14 Feb 2017 14:05:18 -0700 From: Tom Tromey References: <87ziht66bc.fsf@tromey.com> <87wpcw319p.fsf_-_@tromey.com> <87o9y82yq2.fsf@tromey.com> <874m002asb.fsf@tromey.com> <87zihpzibj.fsf@tromey.com> <406ed4a9-d9d6-b610-0760-da0a424424b0@yandex.ru> X-Attribution: Tom Date: Tue, 14 Feb 2017 14:05:17 -0700 In-Reply-To: <406ed4a9-d9d6-b610-0760-da0a424424b0@yandex.ru> (Dmitry Gutov's message of "Tue, 14 Feb 2017 16:03:01 +0200") Message-ID: <87efz0zdo2.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.91 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box522.bluehost.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 174.16.128.54 X-Exim-ID: 1cdkHm-0000J0-Ib X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 174-16-128-54.hlrn.qwest.net (bapiya) [174.16.128.54]:34920 X-Source-Auth: tom+tromey.com X-Email-Count: 4 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTIyLmJsdWVob3N0LmNvbQ== X-Spam-Score: -2.8 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.8 (--) >>>>> "Dmitry" == Dmitry Gutov writes: Dmitry> This is looking good (working, too). Please feel free to install. Thanks! Dmitry> However, if you were looking for a more fundamental solution, Dmitry> switching to parsing the output of 'git status --porcelain' should be Dmitry> faster and ultimately less complex. I had looked at this a bit but I didn't see how get the permissions info out of git status --porcelain; and then I found the bug you refer to and it seemed like it was being dealt with by someone else already; and/or maybe waiting until --porcelain was considered "old enough"? Tom From unknown Sun Jun 22 11:39:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25683: semi-working patch Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 15 Feb 2017 00:08:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25683 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Tom Tromey Cc: 25683@debbugs.gnu.org Received: via spool by 25683-submit@debbugs.gnu.org id=B25683.148711727323433 (code B ref 25683); Wed, 15 Feb 2017 00:08:02 +0000 Received: (at 25683) by debbugs.gnu.org; 15 Feb 2017 00:07:53 +0000 Received: from localhost ([127.0.0.1]:40342 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdn8T-00065t-9t for submit@debbugs.gnu.org; Tue, 14 Feb 2017 19:07:53 -0500 Received: from mail-wm0-f66.google.com ([74.125.82.66]:34579) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdn8R-00065h-Ah for 25683@debbugs.gnu.org; Tue, 14 Feb 2017 19:07:51 -0500 Received: by mail-wm0-f66.google.com with SMTP id c85so5883145wmi.1 for <25683@debbugs.gnu.org>; Tue, 14 Feb 2017 16:07:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=8BW9xYRzQt8xZmRi156c1momXCqsnGsd7vCYsMkCp1U=; b=KJUboVlOZ/hkpeuyXuS5Daqvl+cSf9gSfWHJQN8qiKVA1hLLSB8UKOaMq2umPSuLJJ 9JiPC5XU/V4n3TP6oJhivGdDCulZ7CsdSHT8zVHAUpyn2hk3tU8i4zsmApvRFlBxcg8w PJk2HHB1d5F9q4b92d2sVI1rv5DwoNZuuoxETuPXqhGxeqZHZ8Nl4x2GTZq6ZBzEBo2J 4WRzyQ/xP+Ght5HAPys7W81PKynJHSo+MxqskRbTWN9AqsOxhDsWRMVG+YMj3pEWX1TJ XOgzgjJR4bKHZyNSqSysEZG9MvTgcPMMrReGHxmvm5L2Tn0C6fh4QK2YYm75gOPUTmEH fFtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=8BW9xYRzQt8xZmRi156c1momXCqsnGsd7vCYsMkCp1U=; b=NHvClIZ5o2E8GvJ4eTHWePCSsFMq7ul3DfnpZFdVhbL1wyxRoSV+T0Ry42KYDFmPFY FlMK9MFfvdq81JPDW4qsAgf7Emjyqj1bIBGXQ8Tpv0vXCL5WWUNMXl2cdOuGu9ABuuxI 5pqDf6pOi5Zz7fPqYKbIE4D2tzTQkDgWZF6Si4xO0YoI3Z3YfdxDnX023mo7JYHfei5s SBkla3vAHJPB6AvZp+mHudQx2bT6b4pEqdgGlhgd3I2wDgoc+dZv9CFUDDNJKZrzSr1I IukmAUFVIlO+a8ypn2rWNFRrmaewxFvBknG2Wn84eNKyOq0dDuFwOP5vxxmpDHKG+r6O f2wg== X-Gm-Message-State: AMke39mgIqoXf4vij5sAKhtH+NBG9rYmA9sXPhs0lVaoqmm4I70hIH5NAcTn3yDBki/5Sw== X-Received: by 10.28.101.214 with SMTP id z205mr5840550wmb.15.1487117265625; Tue, 14 Feb 2017 16:07:45 -0800 (PST) Received: from [192.168.1.3] ([185.105.173.41]) by smtp.googlemail.com with ESMTPSA id i73sm5374384wmd.11.2017.02.14.16.07.44 (version=TLS1_3 cipher=AEAD-AES128-GCM-SHA256 bits=128/128); Tue, 14 Feb 2017 16:07:44 -0800 (PST) References: <87ziht66bc.fsf@tromey.com> <87wpcw319p.fsf_-_@tromey.com> <87o9y82yq2.fsf@tromey.com> <874m002asb.fsf@tromey.com> <87zihpzibj.fsf@tromey.com> <406ed4a9-d9d6-b610-0760-da0a424424b0@yandex.ru> <87efz0zdo2.fsf@tromey.com> From: Dmitry Gutov Message-ID: <61a550f0-3f12-3761-d352-98ec02b8149d@yandex.ru> Date: Wed, 15 Feb 2017 02:07:43 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.0 MIME-Version: 1.0 In-Reply-To: <87efz0zdo2.fsf@tromey.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.7 (/) On 14.02.2017 23:05, Tom Tromey wrote: > I had looked at this a bit but I didn't see how get the permissions info > out of git status --porcelain; Good objection, and I don't know (this info might be in the porcelain=v2 format, but it was only added in Git 2.12 last year). If we could fetch that data using just one extra call, that would be great, though. > and then I found the bug you refer to and > it seemed like it was being dealt with by someone else already; Someone else is yours truly, so not sure when that happens. > and/or > maybe waiting until --porcelain was considered "old enough"? No, --porcelain is old enough, aside from the problem you mentioned. We discussed the --ignored flag which still is "too new", but that's a minor problem, only tangentially related. Anyway, thanks for the fix! --porcelain can wait some more. From unknown Sun Jun 22 11:39:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25683: semi-working patch Resent-From: Tom Tromey Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 15 Feb 2017 04:19:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25683 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Dmitry Gutov Cc: Tom Tromey , 25683@debbugs.gnu.org Received: via spool by 25683-submit@debbugs.gnu.org id=B25683.148713229613795 (code B ref 25683); Wed, 15 Feb 2017 04:19:01 +0000 Received: (at 25683) by debbugs.gnu.org; 15 Feb 2017 04:18:16 +0000 Received: from localhost ([127.0.0.1]:40400 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdr2m-0003aR-56 for submit@debbugs.gnu.org; Tue, 14 Feb 2017 23:18:16 -0500 Received: from gproxy4-pub.mail.unifiedlayer.com ([69.89.23.142]:40533) by debbugs.gnu.org with smtp (Exim 4.84_2) (envelope-from ) id 1cdr2k-0003aA-5n for 25683@debbugs.gnu.org; Tue, 14 Feb 2017 23:18:14 -0500 Received: (qmail 5645 invoked by uid 0); 15 Feb 2017 04:18:02 -0000 Received: from unknown (HELO cmgw4) (10.0.90.85) by gproxy4.mail.unifiedlayer.com with SMTP; 15 Feb 2017 04:18:02 -0000 Received: from box522.bluehost.com ([74.220.219.122]) by cmgw4 with id ksHu1u00B2f2jeq01sHxQD; Tue, 14 Feb 2017 21:18:02 -0700 X-Authority-Analysis: v=2.1 cv=Pets2ERd c=1 sm=1 tr=0 a=GsOEXm/OWkKvwdLVJsfwcA==:117 a=GsOEXm/OWkKvwdLVJsfwcA==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=n2v9WMKugxEA:10 a=JVCSj2wg0NU62oxkzRYA:9 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=KMlvQcq7MRK43mlg12gZHw6mp0vVAHVzD0+/p0/+Qao=; b=bdHqf3kCtWS5g9M8FF/7gptGi+ iFTnvsvlRAS5MQ4Ct4nhKyip+IMSSQQfy1iTLYYO1QwWLDD5hK6VAoJ9aC9Re9ciKsxg1qwvM/LEQ FtXcB8h6WJuRALElM9h15wiXq; Received: from 174-16-128-54.hlrn.qwest.net ([174.16.128.54]:35192 helo=bapiya) by box522.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.87) (envelope-from ) id 1cdr2Q-0004JT-52; Tue, 14 Feb 2017 21:17:54 -0700 From: Tom Tromey References: <87ziht66bc.fsf@tromey.com> <87wpcw319p.fsf_-_@tromey.com> <87o9y82yq2.fsf@tromey.com> <874m002asb.fsf@tromey.com> <87zihpzibj.fsf@tromey.com> <406ed4a9-d9d6-b610-0760-da0a424424b0@yandex.ru> <87efz0zdo2.fsf@tromey.com> <61a550f0-3f12-3761-d352-98ec02b8149d@yandex.ru> X-Attribution: Tom Date: Tue, 14 Feb 2017 21:17:49 -0700 In-Reply-To: <61a550f0-3f12-3761-d352-98ec02b8149d@yandex.ru> (Dmitry Gutov's message of "Wed, 15 Feb 2017 02:07:43 +0200") Message-ID: <8760kcytn6.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.91 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box522.bluehost.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 174.16.128.54 X-Exim-ID: 1cdr2Q-0004JT-52 X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 174-16-128-54.hlrn.qwest.net (bapiya) [174.16.128.54]:35192 X-Source-Auth: tom+tromey.com X-Email-Count: 2 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTIyLmJsdWVob3N0LmNvbQ== X-Spam-Score: -3.3 (---) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Dmitry> Someone else is yours truly, so not sure when that happens. Oops, sorry about that. I didn't read the bug very closely it seems... Dmitry> Anyway, thanks for the fix! --porcelain can wait some more. It's on my wish-list, but after a bunch of other things. I think I look at the per-file state very rarely if at all; whereas vc-dir is one of my main views when working on a project. Tom From unknown Sun Jun 22 11:39:42 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Tom Tromey Subject: bug#25683: closed (done) Message-ID: References: <871sv0ytmb.fsf@tromey.com> <87ziht66bc.fsf@tromey.com> X-Gnu-PR-Message: they-closed 25683 X-Gnu-PR-Package: emacs Reply-To: 25683@debbugs.gnu.org Date: Wed, 15 Feb 2017 04:19:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1487132342-13884-1" This is a multi-part message in MIME format... ------------=_1487132342-13884-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #25683: 25.1.91; vc-dir shows conflicted files as "edited" which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 25683@debbugs.gnu.org. --=20 25683: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D25683 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1487132342-13884-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 25683-done) by debbugs.gnu.org; 15 Feb 2017 04:18:38 +0000 Received: from localhost ([127.0.0.1]:40403 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdr38-0003bC-EK for submit@debbugs.gnu.org; Tue, 14 Feb 2017 23:18:38 -0500 Received: from gproxy5-pub.mail.unifiedlayer.com ([67.222.38.55]:59085) by debbugs.gnu.org with smtp (Exim 4.84_2) (envelope-from ) id 1cdr36-0003aw-JH for 25683-done@debbugs.gnu.org; Tue, 14 Feb 2017 23:18:37 -0500 Received: (qmail 10741 invoked by uid 0); 15 Feb 2017 04:18:28 -0000 Received: from unknown (HELO cmgw3) (10.0.90.84) by gproxy5.mail.unifiedlayer.com with SMTP; 15 Feb 2017 04:18:28 -0000 Received: from box522.bluehost.com ([74.220.219.122]) by cmgw3 with id ksJM1u00F2f2jeq01sJQo7; Tue, 14 Feb 2017 21:18:28 -0700 X-Authority-Analysis: v=2.1 cv=WOnsABcR c=1 sm=1 tr=0 a=GsOEXm/OWkKvwdLVJsfwcA==:117 a=GsOEXm/OWkKvwdLVJsfwcA==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=n2v9WMKugxEA:10 a=FxKpEnC0CrsV8nijWlEA:9 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:Date:Subject:To:From: Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=Kaqahs4BGVl13mnQrGicPt81twyfd1kJCj63vVXngqk=; b=g4cTXGhkVfgltLFNqobqsAt7n9 tqQetLRsO16osI1Vcjnc/bu26oZIk1ZoZH+DV6cYtZHh9Bbb8+nAPv8ovml71n26M7WfvC4MhWyzJ FXMDLSZHZnPVSf3I1zkUxQcfB; Received: from 174-16-128-54.hlrn.qwest.net ([174.16.128.54]:35196 helo=bapiya) by box522.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.87) (envelope-from ) id 1cdr2r-0004Z8-Bi; Tue, 14 Feb 2017 21:18:21 -0700 From: Tom Tromey To: 25683-done@debbugs.gnu.org Subject: done X-Attribution: Tom Date: Tue, 14 Feb 2017 21:18:20 -0700 Message-ID: <871sv0ytmb.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.91 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box522.bluehost.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 174.16.128.54 X-Exim-ID: 1cdr2r-0004Z8-Bi X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 174-16-128-54.hlrn.qwest.net (bapiya) [174.16.128.54]:35196 X-Source-Auth: tom+tromey.com X-Email-Count: 3 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTIyLmJsdWVob3N0LmNvbQ== X-Spam-Score: -2.8 (--) X-Debbugs-Envelope-To: 25683-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.8 (--) Fix checked in. Tom ------------=_1487132342-13884-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 10 Feb 2017 22:16:02 +0000 Received: from localhost ([127.0.0.1]:35097 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ccJU1-0007ND-Ab for submit@debbugs.gnu.org; Fri, 10 Feb 2017 17:16:01 -0500 Received: from eggs.gnu.org ([208.118.235.92]:60244) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ccJTz-0007N1-Oy for submit@debbugs.gnu.org; Fri, 10 Feb 2017 17:16:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ccJTs-0001cW-ST for submit@debbugs.gnu.org; Fri, 10 Feb 2017 17:15:54 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:53225) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ccJTs-0001cP-PL for submit@debbugs.gnu.org; Fri, 10 Feb 2017 17:15:52 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51211) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ccJTr-0002Fq-5s for bug-gnu-emacs@gnu.org; Fri, 10 Feb 2017 17:15:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ccJTn-0001ak-0n for bug-gnu-emacs@gnu.org; Fri, 10 Feb 2017 17:15:51 -0500 Received: from gproxy4-pub.mail.unifiedlayer.com ([69.89.23.142]:56353) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1ccJTm-0001a5-9G for bug-gnu-emacs@gnu.org; Fri, 10 Feb 2017 17:15:46 -0500 Received: (qmail 4502 invoked by uid 0); 10 Feb 2017 22:15:41 -0000 Received: from unknown (HELO cmgw3) (10.0.90.84) by gproxy4.mail.unifiedlayer.com with SMTP; 10 Feb 2017 22:15:41 -0000 Received: from box522.bluehost.com ([74.220.219.122]) by cmgw3 with id jAFc1u01A2f2jeq01AFfUb; Fri, 10 Feb 2017 15:15:41 -0700 X-Authority-Analysis: v=2.1 cv=WOnsABcR c=1 sm=1 tr=0 a=GsOEXm/OWkKvwdLVJsfwcA==:117 a=GsOEXm/OWkKvwdLVJsfwcA==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=n2v9WMKugxEA:10 a=VDEtfpoToLGKPWCa6wMA:9 a=Q22pvzFRWOqXZCGK:21 a=jkYqDVyKgzAUJneH:21 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:Date:Subject:To:From: Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=uWaPl/30juDuxS4t2RNzOoPpiviseMoPIiu2s3ojOVA=; b=IEyWyrOSTjrSo42VT5F497+fUo GvcGB9HHBXhPiOfea/cm3yGUEP7X4g5auIJi540dNr3peAbpd0q2F4VsJdtAV0B5fWs3gZeNk85Ew FUJ6RhW9YMuqyakftFMGnhZ+M; Received: from 75-171-188-196.hlrn.qwest.net ([75.171.188.196]:48516 helo=bapiya) by box522.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.87) (envelope-from ) id 1ccJTc-0004JC-GO; Fri, 10 Feb 2017 15:15:36 -0700 From: Tom Tromey To: bug-gnu-emacs@gnu.org Subject: 25.1.91; vc-dir shows conflicted files as "edited" X-Attribution: Tom Date: Fri, 10 Feb 2017 15:15:35 -0700 Message-ID: <87ziht66bc.fsf@tromey.com> MIME-Version: 1.0 Content-Type: text/plain X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box522.bluehost.com X-AntiAbuse: Original Domain - gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 75.171.188.196 X-Exim-ID: 1ccJTc-0004JC-GO X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 75-171-188-196.hlrn.qwest.net (bapiya) [75.171.188.196]:48516 X-Source-Auth: tom+tromey.com X-Email-Count: 1 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTIyLmJsdWVob3N0LmNvbQ== X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) I was doing a "git rebase" and it had some conflicts. If I "git status" in the shell I can see conflicts like: both modified: gdb/minidebug.c However, if I use vc-dir, I just see: edited gdb/minidebug.c This isn't any different from a file that is touched by this change but not in conflict. I think it would be nicer if vc-dir showed me which files had conflicts and which were merely "edited". Tom In GNU Emacs 25.1.91.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.22.7) of 2017-02-02 built on bapiya Repository revision: 7e02a477bbcabb4e65aeecade79b67357c0b9dae Windowing system distributor 'Fedora Project', version 11.0.11901000 System Description: Fedora release 25 (Twenty Five) Configured using: 'configure --prefix=/home/tromey/Emacs/install/ --with-modules' Configured features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS NOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 MODULES Important settings: value of $LANG: en_US.utf8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: VC dir Minor modes in effect: vc-parent-buffer: *vc-dir* shell-dirtrack-mode: t diff-auto-refine-mode: t which-function-mode: t erc-services-mode: t erc-list-mode: t erc-menu-mode: t erc-autojoin-mode: t erc-ring-mode: t erc-networks-mode: t erc-pcomplete-mode: t erc-track-mode: t erc-match-mode: t erc-netsplit-mode: t erc-hl-nicks-mode: t erc-button-mode: t erc-fill-mode: t erc-stamp-mode: t erc-irccontrols-mode: t erc-noncommands-mode: t erc-move-to-prompt-mode: t erc-readonly-mode: t savehist-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent messages: Delete excess backup versions of /home/tromey/gdb/binutils-gdb/.git/COMMIT_EDITMSG? (y or n) y Wrote /home/tromey/gdb/binutils-gdb/.git/COMMIT_EDITMSG There are unresolved conflicts in /home/tromey/gdb/binutils-gdb/gdb/ui-out.h Making completion list... Mark saved where search started Mark set Mark saved where search started C-x C-g is undefined (No files need saving) Hiding up-to-date and ignored items Load-path shadows: /home/tromey/.emacs.d/elpa/bubbles-0.5/bubbles hides /home/tromey/Emacs/install/share/emacs/25.1.91/lisp/play/bubbles Features: (shadow emacsbug conf-mode two-column iso-transl perl-mode sh-script executable cal-move nnregistry python tramp-sh tramp tramp-compat tramp-loaddefs trampver ucs-normalize make-mode etags cursor-sensor mhtml-mode org-bullets org-element org-rmail org-mhe org-irc org-info org-gnus org-docview doc-view image-mode org-bibtex bibtex org-bbdb org-w3m org org-macro org-footnote org-pcomplete org-list org-faces org-entities org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp org-src ob-keys ob-comint ob-core ob-eval org-compat org-macs org-loaddefs gnus-fun gnus-draft noutline outline ido skeleton css-mode smie eww url-queue trace find-dired descr-text gdb-shell lisp-mnt url-handlers url-http url-gw url-auth lex edebug debug m4-mode bbdb-sc supercite regi xref project log-edit js json map sgml-mode flow-fill gnus-html xml url-cache mm-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf eieio-opt speedbar sb-image ezimage dframe find-func whitespace tcl log-view pcvs-util vc-annotate term/xterm xterm smerge-mode goto-addr shell find-file idutils derived bug-reference cc-mode cc-fonts cc-guess cc-menus cc-cmds jka-compr mailalias mail-hist nnir sort gnus-cite smiley shr-color url-util url-parse url-vars shr dom subr-x browse-url mm-archive gnus-async gnus-bcklg qp gnus-ml disp-table gnus-topic nndraft nnmh nnfolder utf-7 bbdb-gnus bbdb-mua bbdb-com crm network-stream nsm starttls gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg nntp gnus-cache gnus-registry registry eieio-compat eieio-base gnus-art mm-uu mml2015 mm-view mml-smime smime dig mailcap gnus-sum gnus-group gnus-undo smtpmail gnus-start gnus-cloud nnimap nnmail mail-source tls gnutls utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range gnus-win gnus gnus-ems nnheader bbdb-message sendmail mail-extr message idna dired rfc822 mml mml-sec epg mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev mail-utils gmm-utils mailheader gud dwarf-mode copyright dabbrev misearch multi-isearch vc-mtn vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs add-log rx vc-git diff-mode easy-mmode rust-mode flyspell ispell diminish edmacro kmacro projectile grep compile ibuf-ext ibuffer dash appt diary-lib diary-loaddefs cal-menu calendar cal-loaddefs which-func imenu minimap autorevert filenotify cus-start cus-load status erc-services erc-list erc-menu erc-join erc-ring erc-networks erc-pcomplete pcomplete erc-track erc-match erc-netsplit erc-hl-nicks color erc-button erc-fill erc-stamp wid-edit erc-goodies erc erc-backend erc-compat format-spec auth-source eieio gnus-util mm-util help-fns mail-prsvr password-cache thingatpt pp warnings advice vc-dir ewoc vc vc-dispatcher cc-styles cc-align cc-engine cc-vars cc-defs bbdb bbdb-site timezone ange-ftp comint ansi-color ring server savehist finder-inf dwarf-mode-autoloads gdb-shell-autoloads eieio-core lisppaste-autoloads pydoc-info-autoloads info-look cl-seq cl-macs cl weblogger-autoloads info package epg-config seq byte-opt gv bytecomp byte-compile cl-extra help-mode easymenu cconv cl-loaddefs pcase cl-lib bbdb-loaddefs time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote dbusbind inotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 1841388 223499) (symbols 48 137600 13) (miscs 40 30171 9433) (strings 32 518292 186214) (string-bytes 1 14434760) (vectors 16 128453) (vector-slots 8 2744148 100168) (floats 8 924 1207) (intervals 56 168057 715) (buffers 976 269)) ------------=_1487132342-13884-1-- From unknown Sun Jun 22 11:39:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25683: semi-working patch Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 15 Feb 2017 13:43:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25683 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Tom Tromey Cc: 25683@debbugs.gnu.org Received: via spool by 25683-submit@debbugs.gnu.org id=B25683.148716617712323 (code B ref 25683); Wed, 15 Feb 2017 13:43:02 +0000 Received: (at 25683) by debbugs.gnu.org; 15 Feb 2017 13:42:57 +0000 Received: from localhost ([127.0.0.1]:40587 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdzrE-0003Ch-NY for submit@debbugs.gnu.org; Wed, 15 Feb 2017 08:42:56 -0500 Received: from mail-wm0-f67.google.com ([74.125.82.67]:33634) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdzrD-0003CU-GT for 25683@debbugs.gnu.org; Wed, 15 Feb 2017 08:42:55 -0500 Received: by mail-wm0-f67.google.com with SMTP id v77so8262364wmv.0 for <25683@debbugs.gnu.org>; Wed, 15 Feb 2017 05:42:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=EjrsRrh0Kh3t7RtKDMfQ0IhH94ZiikmLmFeds6bqQi4=; b=Sh8cHSk1W/JIBFxhVhilgEKcIt9Y2nNsKTN3TKpc3h6CajkZ4ezOQky8zBoCU0MQVd JVR9c0rhfdaqwzc5CQWGvZezTOR8G7wg2Y7/dpgheBM6psE4EhAoldQXg5K4QyuNeSEQ NevxvKzeEPKs0yMnsfcSCNW9qcYMLp2trailgyV5glQ3PbhMHnwpGpLcoh4cn3feK1Yy AJlCdvYbRJX4nzJoBMIZlAx3TKUm6o9SgEJV44KjL/9sZIkDEgbQP4MzjWrdRDDttBJT f3PWJVEn6tRzQ2PFnNo5+cXnTduQgFPRkq9oAZMpuftGBfSEfcya9sQWxD5g0/HxEuGo 2XMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=EjrsRrh0Kh3t7RtKDMfQ0IhH94ZiikmLmFeds6bqQi4=; b=KeECxt8fVEqf93+vKUwKdiq2t7iiwja6pVNqJzWhdhrYQqnVORjwF3DvSo+egvipvt eWmx2algTk70XY5oONdhIeDOk2eLAoYb4fFKz0Ym8imZPtF73au3s+8KGjq2pYrRqgUH Ar5VP7QvOkN3eXqGdAuX5znpFiO5w6Z6UnU54FLJ07BMQE7fd85cfEVKvGLDHcgG1ZN0 uAAqEUvTGUS77oAZdIndXVaCSoVZMkdcx+xC0lHwzYkJVilUNna5jWSrKBusVoxdpCHn 2cZqPn0jhRxKv7xxER697yaAgoSyOm0vlFeZ0xRVYVOqE5xPvBuv17ynedlisynjHXD6 LZLg== X-Gm-Message-State: AMke39k34fin52wEmDnwOongbLPNctKu7qJjz0cwHY1lvGX0SAvbLqI/5DY2gNJzoTkWVg== X-Received: by 10.28.5.70 with SMTP id 67mr7977264wmf.32.1487166169437; Wed, 15 Feb 2017 05:42:49 -0800 (PST) Received: from [192.168.0.133] ([212.50.99.193]) by smtp.googlemail.com with ESMTPSA id o143sm5481952wmd.3.2017.02.15.05.42.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 15 Feb 2017 05:42:48 -0800 (PST) References: <87ziht66bc.fsf@tromey.com> <87wpcw319p.fsf_-_@tromey.com> <87o9y82yq2.fsf@tromey.com> <874m002asb.fsf@tromey.com> <87zihpzibj.fsf@tromey.com> <406ed4a9-d9d6-b610-0760-da0a424424b0@yandex.ru> <87efz0zdo2.fsf@tromey.com> <61a550f0-3f12-3761-d352-98ec02b8149d@yandex.ru> <8760kcytn6.fsf@tromey.com> From: Dmitry Gutov Message-ID: <1a0ad03d-bfe0-834f-f6dd-cf1ecefad184@yandex.ru> Date: Wed, 15 Feb 2017 15:42:46 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.0 MIME-Version: 1.0 In-Reply-To: <8760kcytn6.fsf@tromey.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.7 (/) On 15.02.2017 06:17, Tom Tromey wrote: > It's on my wish-list, but after a bunch of other things. Thanks. > I think I look at the per-file state very rarely if at all; > whereas vc-dir is one of my main views when working on a project. Per-file state also affects the vc-dir view as well (that is the exact situation in bug#19343). But I was only suggesting you reimplement vc-git-dir-status-files based on 'git status --porcelain'. The fact that reusing the resulting code in vc-git-status would be very easy is just the icing. ;) Anyway, the file permissions question complicates the issue. From debbugs-submit-bounces@debbugs.gnu.org Mon May 01 10:25:39 2017 Received: (at control) by debbugs.gnu.org; 1 May 2017 14:25:39 +0000 Received: from localhost ([127.0.0.1]:49696 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d5CGg-0005vF-QU for submit@debbugs.gnu.org; Mon, 01 May 2017 10:25:38 -0400 Received: from mail-wm0-f46.google.com ([74.125.82.46]:38614) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d5CGf-0005v3-LE for control@debbugs.gnu.org; Mon, 01 May 2017 10:25:38 -0400 Received: by mail-wm0-f46.google.com with SMTP id r190so98662802wme.1 for ; Mon, 01 May 2017 07:25:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:to:from:subject:message-id:date:user-agent:mime-version :content-language:content-transfer-encoding; bh=Ts+2i8tNYV27lUubITeSk5Vcd4Ty359QYH6Zoy0qBPw=; b=X5bxSvu2SRkjEh9y8vZZtlQALA/zZMwxj+t6uIrdI175hBpvNKNFYx3hhxRfLCAGde J2lutKjmh/BRbA5h1mx9yujLIN711DZ/yWMsb52lUeCpbfWkB3K36OrsOgT/t3kAiz76 OPJ0r6KJzFZZkladwjiS/Tsu/od2cGFyis1FmpEVWuKI/cBGILvARpza93PBGCTdb0On bMGD6X78CVm3E/2lnZnKhENbFwXR8HkaiPlTxd/GBuFsHzj0KMCqQfZJYk5xr4qAcHUy IzPEurJlNuWa7/ygP3BcVpFv45p0kGOcjf1O7yHiqrAIhBvPcpA5NL7OHroe5iQpi23Q NVyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:to:from:subject:message-id:date :user-agent:mime-version:content-language:content-transfer-encoding; bh=Ts+2i8tNYV27lUubITeSk5Vcd4Ty359QYH6Zoy0qBPw=; b=hNBuaFPrlKDUCeZcGJia1LQ5ZBU6ZRv5V0lGthSrPr+bxw6A0JcmENc3ZzRtwd1iOi A/YQ89rOu5sdsJ6QZcenO2+yQfZV5dG0D+vn2Gf7MoME6y9sNqqHgCbJ55IVrlQssD4s 7js6hcFJ4dmYqpLgFrxU+VonJQcDbPn+Iwgvkwbkdlb8MWkk7oOXwurgjXYcZvpDXthP TZILL6CFDe/W+O2uEVeav6dsCYk8Ea11YVja+PfRoV4m8A3FoVZCdS4oH7wytbxp8nPZ SZ42b3hjmwKhkf9hWSkJkUAweYJwjSHr5FHvt6BwYbPuCqNeq5tgucBgxR9zw0vik+n/ kFTA== X-Gm-Message-State: AN3rC/6ZBm9L8Ekb0aKrgTD//LxlDguUG2YLAjsZq+yjQLqYSsFcvwxa +SOn0GOsOo2VRR80yNs= X-Received: by 10.28.175.209 with SMTP id y200mr282985wme.81.1493648731808; Mon, 01 May 2017 07:25:31 -0700 (PDT) Received: from [192.168.1.3] ([185.105.173.156]) by smtp.googlemail.com with ESMTPSA id u4sm12833943wmu.0.2017.05.01.07.25.30 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 01 May 2017 07:25:31 -0700 (PDT) To: control@debbugs.gnu.org From: Dmitry Gutov Subject: unarchive 25683 Message-ID: <845595fb-5c40-3b16-570a-8725dbe04117@yandex.ru> Date: Mon, 1 May 2017 17:25:30 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:53.0) Gecko/20100101 Thunderbird/53.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.2 (/) unarchive 25683 From unknown Sun Jun 22 11:39:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25683: semi-working patch Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 01 May 2017 14:34:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25683 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Tom Tromey Cc: 25683@debbugs.gnu.org Received: via spool by 25683-submit@debbugs.gnu.org id=B25683.149364922030447 (code B ref 25683); Mon, 01 May 2017 14:34:02 +0000 Received: (at 25683) by debbugs.gnu.org; 1 May 2017 14:33:40 +0000 Received: from localhost ([127.0.0.1]:49717 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d5COR-0007v1-Qg for submit@debbugs.gnu.org; Mon, 01 May 2017 10:33:39 -0400 Received: from mail-wm0-f52.google.com ([74.125.82.52]:37095) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d5COP-0007um-Np for 25683@debbugs.gnu.org; Mon, 01 May 2017 10:33:38 -0400 Received: by mail-wm0-f52.google.com with SMTP id m123so98450210wma.0 for <25683@debbugs.gnu.org>; Mon, 01 May 2017 07:33:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:subject:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=6g1CWZpj+o0k6xxNHXEBq5RV7ZS+Fe7lkW77jPqd9aI=; b=KJBKhAUpj9uiaqNX3sX/wVHVswiy/9a8Oxv9IKvSLHSNbgyVztzAG+uampWPrmbweR EMDxM5IiLQJ4K4hPEOJG3rU4HFtR0KbxgPN8pm1FknfR9q2IEENNY95/WhcD/zRW5xj2 cYfCX9idxqdpK9l+1Mjj8H1qxWiMkrnTfuAL2tNMDyIG0Gd5H00pmEuRt6HIXKpkc7Xu UpSO/Kvy07pgc2lUZMH/ye9vxCdHT1zd0OTqe0syN/lr3a1uGq/eZJ0BrqvrqmaDoaMv fwMye7oMwOGVlDZloms/g8+l00rD5+3mLn8MhHBWPa4yIe2tlzs3slDAQCaRLtEqxR3I 5bwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:subject:to:cc:references:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=6g1CWZpj+o0k6xxNHXEBq5RV7ZS+Fe7lkW77jPqd9aI=; b=Nkw2rg3ytVdIZzNk5xqwXt0Qukom9kSTCEVJ/iY8hcY9njz1/zEOFBnHBPrDuDOH7P CbXX8pBy+ckXznwQQ/F1Kg89Z04UvHYskPBk1KymWhBYgluEvxa7+lNtdEEhHzDGIwH2 Vx60zwp5HkV7FLfXkO+k5VYBwPVshxEfo3TV5IzLabScLX1pmG5jYQ9Un+CdbVoyN7zP bzIcckd4TSIF+jfSge5S8hx+l9p6CVde+vGiEWyZtEBcGJJjq5kSojmfw+X9KEdqL0vg 0gvCVJcKIc/bLw9e1NYMpXSQP/QhTrUjgNJbXkTzjfQLKiWU9oLenM5GjexxLLXXQkyj xfYw== X-Gm-Message-State: AN3rC/7hwanGWsm3K5hTpdvvdUQdoUUQYn90jJCPUGgP7hxvIjPhsvto 1SPNt52rvh2ej3r/Gwo= X-Received: by 10.28.142.4 with SMTP id q4mr6758112wmd.112.1493649211830; Mon, 01 May 2017 07:33:31 -0700 (PDT) Received: from [192.168.1.3] ([185.105.173.156]) by smtp.googlemail.com with ESMTPSA id l133sm7189415wmf.17.2017.05.01.07.33.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 01 May 2017 07:33:31 -0700 (PDT) From: Dmitry Gutov References: <87ziht66bc.fsf@tromey.com> <87wpcw319p.fsf_-_@tromey.com> <87o9y82yq2.fsf@tromey.com> <874m002asb.fsf@tromey.com> <87zihpzibj.fsf@tromey.com> <406ed4a9-d9d6-b610-0760-da0a424424b0@yandex.ru> <87efz0zdo2.fsf@tromey.com> <61a550f0-3f12-3761-d352-98ec02b8149d@yandex.ru> <8760kcytn6.fsf@tromey.com> Message-ID: <301668bb-d36b-985f-42a3-3f712c2f2443@yandex.ru> Date: Mon, 1 May 2017 17:33:30 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:53.0) Gecko/20100101 Thunderbird/53.0 MIME-Version: 1.0 In-Reply-To: <8760kcytn6.fsf@tromey.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.2 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.2 (/) Hey Tom, On 15.02.2017 6:17, Tom Tromey wrote: > Dmitry> Anyway, thanks for the fix! --porcelain can wait some more. > > It's on my wish-list, but after a bunch of other things. > I think I look at the per-file state very rarely if at all; > whereas vc-dir is one of my main views when working on a project. 'git status --porcelain' for vc-git-state is now in. Did you have any new ideas about getting the file permissions? I have recently noticed that your patch makes vc-dir-status-files slower. E.g., in Emacs's own repository checkout, a refresh took a fraction of a second before 3fb9f5452fbd0458f90115b0a95151b8e7a482a1, and about 3 seconds now.