unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#14443: 24.3.50; log-view-diff and log-view-diff-changeset broken in vc-bzr-change-log-mode and vc-annotate-mode (on w32)
@ 2013-05-22 22:22 Dmitry Gutov
  2013-05-23  7:25 ` Glenn Morris
  0 siblings, 1 reply; 11+ messages in thread
From: Dmitry Gutov @ 2013-05-22 22:22 UTC (permalink / raw)
  To: 14443


1. find-file //lisp/progmodes/ruby-mode.el

2. Press C-x v L, C-x v l or C-x v g.

3. Pick a revision, press d or D.

4. See something like either of the following:

=== modified file 'lisp/progmodes/ruby-mode.el'
bzr: ERROR: [Error 2] The system cannot find the file specified

=== modified file 'lisp/ChangeLog'
bzr: ERROR: [Error 2] The system cannot find the file specified


In GNU Emacs 24.3.50.4 (i686-pc-mingw32)
 of 2013-05-23 on SOL
Bzr revision: 112672 monnier@iro.umontreal.ca-20130522213500-10ibn1m9ze3b0pgc
Windowing system distributor `Microsoft Corp.', version 6.1.7601





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#14443: 24.3.50; log-view-diff and log-view-diff-changeset broken in vc-bzr-change-log-mode and vc-annotate-mode (on w32)
  2013-05-22 22:22 bug#14443: 24.3.50; log-view-diff and log-view-diff-changeset broken in vc-bzr-change-log-mode and vc-annotate-mode (on w32) Dmitry Gutov
@ 2013-05-23  7:25 ` Glenn Morris
  2013-05-23 12:09   ` Dmitry Gutov
  2013-05-23 16:23   ` Eli Zaretskii
  0 siblings, 2 replies; 11+ messages in thread
From: Glenn Morris @ 2013-05-23  7:25 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: 14443

Dmitry Gutov wrote:

> 1. find-file //lisp/progmodes/ruby-mode.el
>
> 2. Press C-x v L, C-x v l or C-x v g.
>
> 3. Pick a revision, press d or D.
>
> 4. See something like either of the following:
>
> === modified file 'lisp/progmodes/ruby-mode.el'
> bzr: ERROR: [Error 2] The system cannot find the file specified

Works fine on GNU/Linux.
Does '//' (in step 1) mean something special on MS Windows?





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#14443: 24.3.50; log-view-diff and log-view-diff-changeset broken in vc-bzr-change-log-mode and vc-annotate-mode (on w32)
  2013-05-23  7:25 ` Glenn Morris
@ 2013-05-23 12:09   ` Dmitry Gutov
  2013-05-23 16:09     ` Glenn Morris
  2013-05-23 16:23   ` Eli Zaretskii
  1 sibling, 1 reply; 11+ messages in thread
From: Dmitry Gutov @ 2013-05-23 12:09 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 14443

On 23.05.2013 11:25, Glenn Morris wrote:
> Dmitry Gutov wrote:
>
>> 1. find-file //lisp/progmodes/ruby-mode.el
>>
>> 2. Press C-x v L, C-x v l or C-x v g.
>>
>> 3. Pick a revision, press d or D.
>>
>> 4. See something like either of the following:
>>
>> === modified file 'lisp/progmodes/ruby-mode.el'
>> bzr: ERROR: [Error 2] The system cannot find the file specified
>
> Works fine on GNU/Linux.

Yes, sorry, next time instead of "on w32" I'll write "w32-only".
I usually test these kind of bugs in both.

> Does '//' (in step 1) mean something special on MS Windows?

Nope, just an abbreviation.





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#14443: 24.3.50; log-view-diff and log-view-diff-changeset broken in vc-bzr-change-log-mode and vc-annotate-mode (on w32)
  2013-05-23 12:09   ` Dmitry Gutov
@ 2013-05-23 16:09     ` Glenn Morris
  2013-05-23 16:46       ` Dmitry Gutov
  0 siblings, 1 reply; 11+ messages in thread
From: Glenn Morris @ 2013-05-23 16:09 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: 14443


Can you edebug it and find out exactly what filename is passed to the OS?
Presumably it doesn't like it for some reason.





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#14443: 24.3.50; log-view-diff and log-view-diff-changeset broken in vc-bzr-change-log-mode and vc-annotate-mode (on w32)
  2013-05-23  7:25 ` Glenn Morris
  2013-05-23 12:09   ` Dmitry Gutov
@ 2013-05-23 16:23   ` Eli Zaretskii
  1 sibling, 0 replies; 11+ messages in thread
From: Eli Zaretskii @ 2013-05-23 16:23 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 14443, dgutov

> From: Glenn Morris <rgm@gnu.org>
> Date: Thu, 23 May 2013 03:25:29 -0400
> Cc: 14443@debbugs.gnu.org
> 
> Dmitry Gutov wrote:
> 
> > 1. find-file //lisp/progmodes/ruby-mode.el
> >
> > 2. Press C-x v L, C-x v l or C-x v g.
> >
> > 3. Pick a revision, press d or D.
> >
> > 4. See something like either of the following:
> >
> > === modified file 'lisp/progmodes/ruby-mode.el'
> > bzr: ERROR: [Error 2] The system cannot find the file specified
> 
> Works fine on GNU/Linux.

Works fine for me on w32 as well.

Dmitry, you will have to dig deeper.  E.g., what command is sent down
to bzr in this case and barfs?





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#14443: 24.3.50; log-view-diff and log-view-diff-changeset broken in vc-bzr-change-log-mode and vc-annotate-mode (on w32)
  2013-05-23 16:09     ` Glenn Morris
@ 2013-05-23 16:46       ` Dmitry Gutov
  2013-05-23 16:52         ` Eli Zaretskii
  2013-05-23 16:59         ` Glenn Morris
  0 siblings, 2 replies; 11+ messages in thread
From: Dmitry Gutov @ 2013-05-23 16:46 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 14443

On 23.05.2013 20:09, Glenn Morris wrote:
>
> Can you edebug it and find out exactly what filename is passed to the OS?
> Presumably it doesn't like it for some reason.

vc-bzr.el uses lexical-binding, so `edebug-eval-expression' doesn't 
help. Putting a `message' call in `vc-bzr-diff' yields this:

files: (~/vc/emacs-bzr/trunk/) buffer: *vc-diff* rev1: 112671 rev2: 112672

 > Dmitry, you will have to dig deeper.  E.g., what command is sent down
 > to bzr in this case and barfs?

I'm not sure how to find out. `vc-do-command' receives the following 
arguments:

buffer: *vc-diff* command: bzr file-or-list: nil flags: (diff 
--diff-options -u -r 112671..112672)

By the way, here's a (somewhat related) command that fails when invoked 
from command line:

   bzr diff --diff-options -U0

(`bzr diff' works fine.)

Does Bazaar require additional programs to be installed? After recent 
overhaul of my MinGW installation, a number of Unix utilities became 
unavailable globally, including `diff'.





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#14443: 24.3.50; log-view-diff and log-view-diff-changeset broken in vc-bzr-change-log-mode and vc-annotate-mode (on w32)
  2013-05-23 16:46       ` Dmitry Gutov
@ 2013-05-23 16:52         ` Eli Zaretskii
  2013-05-23 19:53           ` Dmitry Gutov
  2013-05-23 16:59         ` Glenn Morris
  1 sibling, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2013-05-23 16:52 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: 14443

> Date: Thu, 23 May 2013 20:46:07 +0400
> From: Dmitry Gutov <dgutov@yandex.ru>
> CC: 14443@debbugs.gnu.org, Eli Zaretskii <eliz@gnu.org>
> 
> I'm not sure how to find out.

You could put a breakpoint on call-process and examine its arguments,
for example.

> `vc-do-command' receives the following arguments:
> 
> buffer: *vc-diff* command: bzr file-or-list: nil flags: (diff 
> --diff-options -u -r 112671..112672)

Why do you use --diff-options?  "bzr diff" works as if -u was
specified anyway, and will use its internal emulation of Diff if you
don't pass --diff-options.

> By the way, here's a (somewhat related) command that fails when invoked 
> from command line:
> 
>    bzr diff --diff-options -U0
> 
> (`bzr diff' works fine.)
> 
> Does Bazaar require additional programs to be installed?

Only if you use --diff-options.

> After recent overhaul of my MinGW installation, a number of Unix
> utilities became unavailable globally, including `diff'.

That's probably related.  So restore your diff.exe, and things will
work again.  They do for me, because my diff.exe is in perfect working
order.





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#14443: 24.3.50; log-view-diff and log-view-diff-changeset broken in vc-bzr-change-log-mode and vc-annotate-mode (on w32)
  2013-05-23 16:46       ` Dmitry Gutov
  2013-05-23 16:52         ` Eli Zaretskii
@ 2013-05-23 16:59         ` Glenn Morris
  1 sibling, 0 replies; 11+ messages in thread
From: Glenn Morris @ 2013-05-23 16:59 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: 14443

Dmitry Gutov wrote:

>   bzr diff --diff-options -U0
>
> (`bzr diff' works fine.)
>
> Does Bazaar require additional programs to be installed?

bzr help diff:

 --diff-options=ARG    Pass these options to the external diff program.

So, don't specify --diff-options if you don't have a working "diff"
executable.





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#14443: 24.3.50; log-view-diff and log-view-diff-changeset broken in vc-bzr-change-log-mode and vc-annotate-mode (on w32)
  2013-05-23 16:52         ` Eli Zaretskii
@ 2013-05-23 19:53           ` Dmitry Gutov
  2013-05-23 20:17             ` Eli Zaretskii
  0 siblings, 1 reply; 11+ messages in thread
From: Dmitry Gutov @ 2013-05-23 19:53 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 14443

On 23.05.2013 20:52, Eli Zaretskii wrote:
>> Date: Thu, 23 May 2013 20:46:07 +0400
>> From: Dmitry Gutov <dgutov@yandex.ru>
>> CC: 14443@debbugs.gnu.org, Eli Zaretskii <eliz@gnu.org>
>>
>> I'm not sure how to find out.
>
> You could put a breakpoint on call-process and examine its arguments,
> for example.

I've rummaged around the manual a bit, and still don't understand what 
the recommended workflow is.

Should I normally do `edebug-defun' before adding a breakpoint?

How do I display the value of a local variable? Even after breakpoint 
hits, using `edebug-eval-expression' with the variable name still gives 
me "variable is void".

How do I un-instrument a function? AFAICS, there are no commands like 
`edebug-cancel-', `-reset-' or `-remove-'.

Please point me at any relevant documentation.

>> `vc-do-command' receives the following arguments:
>>
>> buffer: *vc-diff* command: bzr file-or-list: nil flags: (diff
>> --diff-options -u -r 112671..112672)
>
> Why do you use --diff-options?  "bzr diff" works as if -u was
> specified anyway, and will use its internal emulation of Diff if you
> don't pass --diff-options.

`vc-bzr-diff' does that automatically because `diff-switches' is '-u' here.

If I remove that explicit setting from my config, it falls back to "-c", 
and that (when external diff program is present, of course) makes vc-bzr 
produce context diffs.
Curiously, vc-git still uses the unified format in that case.

Setting it to nil works as you expected.

>> After recent overhaul of my MinGW installation, a number of Unix
>> utilities became unavailable globally, including `diff'.
>
> That's probably related.  So restore your diff.exe, and things will
> work again.  They do for me, because my diff.exe is in perfect working
> order.

I've done that, works fine now. Sorry for the false alarm, I should have 
investigated it more myself first.

Using diff.exe from the GnuWin32 collection is recommended, right?





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#14443: 24.3.50; log-view-diff and log-view-diff-changeset broken in vc-bzr-change-log-mode and vc-annotate-mode (on w32)
  2013-05-23 19:53           ` Dmitry Gutov
@ 2013-05-23 20:17             ` Eli Zaretskii
  2013-05-23 20:25               ` Dmitry Gutov
  0 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2013-05-23 20:17 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: 14443

> Date: Thu, 23 May 2013 23:53:52 +0400
> From: Dmitry Gutov <dgutov@yandex.ru>
> CC: rgm@gnu.org, 14443@debbugs.gnu.org
> 
> On 23.05.2013 20:52, Eli Zaretskii wrote:
> >> Date: Thu, 23 May 2013 20:46:07 +0400
> >> From: Dmitry Gutov <dgutov@yandex.ru>
> >> CC: 14443@debbugs.gnu.org, Eli Zaretskii <eliz@gnu.org>
> >>
> >> I'm not sure how to find out.
> >
> > You could put a breakpoint on call-process and examine its arguments,
> > for example.
> 
> I've rummaged around the manual a bit, and still don't understand what 
> the recommended workflow is.
> 
> Should I normally do `edebug-defun' before adding a breakpoint?

Actually, I meant GDB on the C level, but since you asked...

Yes, at least that's what I do.

> How do I display the value of a local variable?

C-x C-e with point after it, I guess.  I'm quite sure it worked for me
when I used that last.

> How do I un-instrument a function? AFAICS, there are no commands like 
> `edebug-cancel-', `-reset-' or `-remove-'.

Reload the .el file.

> Using diff.exe from the GnuWin32 collection is recommended, right?

That's what I use, yes.





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#14443: 24.3.50; log-view-diff and log-view-diff-changeset broken in vc-bzr-change-log-mode and vc-annotate-mode (on w32)
  2013-05-23 20:17             ` Eli Zaretskii
@ 2013-05-23 20:25               ` Dmitry Gutov
  0 siblings, 0 replies; 11+ messages in thread
From: Dmitry Gutov @ 2013-05-23 20:25 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 14443

On 24.05.2013 0:17, Eli Zaretskii wrote:
>>> You could put a breakpoint on call-process and examine its arguments,
>>> for example.
>>
>> I've rummaged around the manual a bit, and still don't understand what
>> the recommended workflow is.
>>
>> Should I normally do `edebug-defun' before adding a breakpoint?
>
> Actually, I meant GDB on the C level, but since you asked...

Oh. Though I believe it's called something like `Fcall_process' there.

>> How do I display the value of a local variable?
>
> C-x C-e with point after it, I guess.  I'm quite sure it worked for me
> when I used that last.

Then I guess you've used it in a buffer without lexical-binding.

>> How do I un-instrument a function? AFAICS, there are no commands like
>> `edebug-cancel-', `-reset-' or `-remove-'.
>
> Reload the .el file.

Thanks! It's kind of an obvious solution, but I could've spent quite a 
while looking for a specialized command.





^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2013-05-23 20:25 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-22 22:22 bug#14443: 24.3.50; log-view-diff and log-view-diff-changeset broken in vc-bzr-change-log-mode and vc-annotate-mode (on w32) Dmitry Gutov
2013-05-23  7:25 ` Glenn Morris
2013-05-23 12:09   ` Dmitry Gutov
2013-05-23 16:09     ` Glenn Morris
2013-05-23 16:46       ` Dmitry Gutov
2013-05-23 16:52         ` Eli Zaretskii
2013-05-23 19:53           ` Dmitry Gutov
2013-05-23 20:17             ` Eli Zaretskii
2013-05-23 20:25               ` Dmitry Gutov
2013-05-23 16:59         ` Glenn Morris
2013-05-23 16:23   ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).