From unknown Sun Jun 22 11:31:24 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#25683 <25683@debbugs.gnu.org> To: bug#25683 <25683@debbugs.gnu.org> Subject: Status: 25.1.91; vc-dir shows conflicted files as "edited" Reply-To: bug#25683 <25683@debbugs.gnu.org> Date: Sun, 22 Jun 2025 18:31:24 +0000 retitle 25683 25.1.91; vc-dir shows conflicted files as "edited" reassign 25683 emacs submitter 25683 Tom Tromey severity 25683 minor thanks From debbugs-submit-bounces@debbugs.gnu.org Fri Feb 10 17:16:01 2017 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)) From debbugs-submit-bounces@debbugs.gnu.org Sat Feb 11 15:45:26 2017 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 To: 25683@debbugs.gnu.org Subject: semi-working patch 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-Debbugs-Envelope-To: 25683 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 debbugs-submit-bounces@debbugs.gnu.org Sat Feb 11 16:40:24 2017 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 To: Tom Tromey Subject: Re: semi-working patch 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-Debbugs-Envelope-To: 25683 Cc: 25683@debbugs.gnu.org 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 debbugs-submit-bounces@debbugs.gnu.org Sun Feb 12 01:17:35 2017 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 To: Tom Tromey Subject: Re: semi-working patch 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-Debbugs-Envelope-To: 25683 Cc: 25683@debbugs.gnu.org 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 debbugs-submit-bounces@debbugs.gnu.org Mon Feb 13 20:12:55 2017 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 To: Tom Tromey Subject: Re: semi-working patch 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-Debbugs-Envelope-To: 25683 Cc: 25683@debbugs.gnu.org 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 debbugs-submit-bounces@debbugs.gnu.org Tue Feb 14 09:03:12 2017 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) Subject: Re: bug#25683: semi-working patch To: Tom Tromey 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-Debbugs-Envelope-To: 25683 Cc: 25683@debbugs.gnu.org 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 debbugs-submit-bounces@debbugs.gnu.org Tue Feb 14 16:05:31 2017 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 To: Dmitry Gutov Subject: Re: bug#25683: semi-working patch 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-Debbugs-Envelope-To: 25683 Cc: Tom Tromey , 25683@debbugs.gnu.org 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 debbugs-submit-bounces@debbugs.gnu.org Tue Feb 14 19:07:53 2017 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) Subject: Re: bug#25683: semi-working patch To: 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> 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-Debbugs-Envelope-To: 25683 Cc: 25683@debbugs.gnu.org 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 debbugs-submit-bounces@debbugs.gnu.org Tue Feb 14 23:18:16 2017 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 To: Dmitry Gutov Subject: Re: bug#25683: semi-working patch 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-Debbugs-Envelope-To: 25683 Cc: Tom Tromey , 25683@debbugs.gnu.org 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 debbugs-submit-bounces@debbugs.gnu.org Tue Feb 14 23:18:38 2017 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 From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 15 08:42:56 2017 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) Subject: Re: bug#25683: semi-working patch To: 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> <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-Debbugs-Envelope-To: 25683 Cc: 25683@debbugs.gnu.org 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 unknown Sun Jun 22 11:31:24 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Thu, 16 Mar 2017 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator 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 debbugs-submit-bounces@debbugs.gnu.org Mon May 01 10:33:40 2017 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 Subject: Re: bug#25683: semi-working patch To: 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> <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-Debbugs-Envelope-To: 25683 Cc: 25683@debbugs.gnu.org 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. From unknown Sun Jun 22 11:31:24 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 30 May 2017 11:24:05 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator