Subject: bug#66212: 30.0.50; C-x v v and vc-diff with fossil-scm

From: Eli Zaretskii <[email-masked]>
Date: Fri, 29 Sep 2023 10:12:49 +0300

> From: "Alfred M. Szmidt" <[email-masked]>
> Date: Tue, 26 Sep 2023 08:25:01 -0400
> 
> 
> When trying to use C-x v v in a vc-diff buffer, and when the version
> control system is Fossil (this is using GNU patch):
> 
> Checking in foo...
> user-error: Patch failed: can't find file to patch at input line 5
> Perhaps you used the wrong -p or --strip option?
> The text leading up to this was:
> --------------------------
> |Index: foo
> |==================================================================
> |--- foo
> |+++ foo
> --------------------------
> File to patch: 
> Skip this patch? [y] 
> Skipping patch.
> 1 out of 1 hunk ignored
> 
> 
> To reproduce, make a empty Fossil repostiroy, add and commit a file,
> add a line, C-x v =, C-x v v.  vc-fossil has to be installed.

Crystal ball says that vc-fossil (which is not part of Emacs, AFAICT)
either doesn't instruct Fossil to produce root-relative file names in
the diffs (IOW, "foo" above should actually ne "some/directory/foo"),
or doesn't set the default-directory of the vc-diff buffer to the
directory of the files as named in the diffs.