From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dan Nicolaescu Newsgroups: gmane.emacs.devel Subject: Re: vc-directory breakage Date: Mon, 05 May 2008 18:10:05 -0700 Message-ID: <200805060110.m461A565005739@sallyv1.ics.uci.edu> References: <20080505152149.E5BB99F054B@snark.thyrsus.com> <857ie8ahr3.fsf@lola.goethe.zz> <20080506000456.GA14206@thyrsus.com> <200805060036.m460aVto021222@sallyv1.ics.uci.edu> <20080506004849.GA14523@thyrsus.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1210036402 22121 80.91.229.12 (6 May 2008 01:13:22 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 6 May 2008 01:13:22 +0000 (UTC) Cc: "Eric S. Raymond" , emacs-devel@gnu.org To: esr@thyrsus.com Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue May 06 03:13:56 2008 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1JtBkh-00020p-Tk for ged-emacs-devel@m.gmane.org; Tue, 06 May 2008 03:13:56 +0200 Original-Received: from localhost ([127.0.0.1]:46093 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JtBk0-0002lz-0F for ged-emacs-devel@m.gmane.org; Mon, 05 May 2008 21:13:12 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JtBjw-0002ls-Qf for emacs-devel@gnu.org; Mon, 05 May 2008 21:13:08 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JtBjw-0002le-DI for emacs-devel@gnu.org; Mon, 05 May 2008 21:13:08 -0400 Original-Received: from [199.232.76.173] (port=41784 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JtBjw-0002lY-4k for emacs-devel@gnu.org; Mon, 05 May 2008 21:13:08 -0400 Original-Received: from sallyv1.ics.uci.edu ([128.195.1.109]) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_3DES_EDE_CBC_SHA1:24) (Exim 4.60) (envelope-from ) id 1JtBjw-00037l-44 for emacs-devel@gnu.org; Mon, 05 May 2008 21:13:08 -0400 X-ICS-MailScanner-Watermark: 1210641008.00123@LRtMs7qKWgpopVZinv7UuA Original-Received: from mothra.ics.uci.edu (mothra.ics.uci.edu [128.195.6.93]) by sallyv1.ics.uci.edu (8.13.7+Sun/8.13.7) with ESMTP id m461A565005739; Mon, 5 May 2008 18:10:05 -0700 (PDT) In-Reply-To: <20080506004849.GA14523@thyrsus.com> (Eric S. Raymond's message of "Mon, 5 May 2008 20:48:49 -0400") Original-Lines: 65 X-ICS-MailScanner: Found to be clean X-ICS-MailScanner-SpamCheck: not spam, SpamAssassin (score=-0.146, required 5, autolearn=disabled, ALL_TRUSTED -1.44, FB_WORD2_END_DOLLAR 1.29) X-ICS-MailScanner-From: dann@mothra.ics.uci.edu X-detected-kernel: by monty-python.gnu.org: Solaris 10 (beta) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:96559 Archived-At: "Eric S. Raymond" writes: > Dan Nicolaescu : > > "Eric S. Raymond" writes: > > > > > To my knowledge, VC is not in a broken state now. Stefan fixed one of > > > the blocker bugs yesterday, probably while I was flat on my back and > > > hooked up to a heart monitor, and I got the other one this morning. > > > > There still are some issues. This: > > > > (defun vc-generic-status-printer (fileentry) > > (let* ((file (vc-dir-fileinfo->name fileentry)) > > (backend (vc-responsible-backend file))) > > (vc-call-backend backend 'status-printer fileentry))) > > > > is not quite right. > > (vc-dir-fileinfo->name fileentry) is not an absolute file name, doing > > vc-responsible-backend on that is not going to work. > > Ah. There's some Lisp function I need to wrap that arg in to make > it a full pathname, then; I've forgotten which it is, though expand-file-name > > Also please put the backend in a buffer-local variable in the vc-dir > > buffer, that way all the vc-responsible-backend calls in vc-generic-* can be > > eliminated. > > With that change this code will work. > > It does not work right now for at least hg, git and svn. > > The recommended change may be a good idea, but I'm not sure. Those backend > checks are now being done at file granularity because some people were vocal > about support for mixing multiple VCSes in a directory. If we depended > on a per-directory buffer-local variable, that would get more difficult. Stefan just explained this one. > What is the actual failure you are seeing? For a mercurial repo: intern(nil [0 0 0 0 Makefile\.mk 0 0 0 0 0 0 0 0 0 ~/r/hgtest/ 0 0]) vc-file-getprop(nil vc-mtn-root) vc-mtn-root("Makefile.mk") vc-mtn-responsible-p("Makefile.mk") apply(vc-mtn-responsible-p "Makefile.mk") vc-call-backend(Mtn responsible-p "Makefile.mk") byte-code("^H\306^Y\211^Z\203+^@\n@^Q^K\203^W^@\307 \310\f#\204$^@\307 \311\f#\203$^@\312\313 \"\210\nA\211^R\204^H^@*^$ vc-responsible-backend("Makefile.mk") vc-generic-status-printer(("Makefile.mk" added [cl-struct-vc-hg-extra-fileinfo copied "Makefile"] nil nil nil)) #[(G76001 data) "^HJ !\210\302c\207" [G76001 data "\n"] 2](--ewoc--user-pp-- ("Makefile.mk" added [cl-struct-vc-hg-extra-filei$ apply(#[(G76001 data) "^HJ !\210\302c\207" [G76001 data "\n"] 2] --ewoc--user-pp-- ("Makefile.mk" added [cl-struct-vc-hg-ext$ (lambda (&rest --cl-rest--) (apply #[... "^HJ !\210\302c\207" [G76001 data "\n"] 2] (quote --ewoc--user-pp--) --cl-rest--))(("M$ ewoc--refresh-node((lambda (&rest --cl-rest--) (apply #[... "^HJ !\210\302c\207" [G76001 data "\n"] 2] (quote --ewoc--user$ ewoc-invalidate([cl-struct-ewoc # (lambda (&rest --cl-rest--) (apply #[... "^HJ !\210\302c\207" [G76001 d$ vc-dir-update((("config.h" missing nil) ("config.mk" edited nil) ("dmenu_path" removed nil) ("b/c" edited nil) ("m/n" edited ni$ #[(G37817 entries &optional more-to-come) "r^HJq\210\306 ^HJ\"\210\n?\205'^@\307^K\310\"\211^\\203#^@\311\312\313\f\"\314\$ apply(#[(G37817 entries &optional more-to-come) "r^HJq\210\306 ^HJ\"\210\n?\205'^@\307^K\310\"\211^\\203#^@\311\312\313\$ (lambda (&rest --cl-rest--) (apply #[... "r^HJq\210\306 ^HJ\"\210\n?\205'^@\307^K\310\"\211^\\203#^@\311\312\313\f\"\314\$ vc-hg-after-dir-status((lambda (&rest --cl-rest--) (apply #[... "r^HJq\210\306 ^HJ\"\210\n?\205'^@\307^K\310\"\211^\\203$ eval((vc-hg-after-dir-status (quote (lambda ... ...)))) vc-exec-after((vc-hg-after-dir-status (quote (lambda ... ...)))) vc-process-sentinel(# "finished\n")