[PATCH] import: report directory-relative paths in error messages (issue5224)
kbullock+mercurial at ringworld.org
Thu Sep 1 11:02:50 EDT 2016
> On Sep 1, 2016, at 09:18, liscju <piotr.listkiewicz at gmail.com> wrote:
> # HG changeset patch
> # User liscju <piotr.listkiewicz at gmail.com>
> # Date 1472208500 -7200
> # Fri Aug 26 12:48:20 2016 +0200
> # Node ID 6437b071045756ba8b76c90ece76df83afc52989
> # Parent b1809f5d7630a3fff0fa715bbd30dba0f07672a8
> import: report directory-relative paths in error messages (issue5224)
> Import uses paths relative to the root of the repository, so when
> user imports patch with paths relative to the current working directory
> import aborts with 'unable to find file for patching'.
> This patch improves this situation by warning the user that paths are
> relative to the root of repository when the path exists from
> current working directory.
> diff --git a/mercurial/patch.py b/mercurial/patch.py
> --- a/mercurial/patch.py
> +++ b/mercurial/patch.py
> @@ -669,6 +669,11 @@ class patchfile(object):
> self.mode = (False, False)
> if self.missing:
> self.ui.warn(_("unable to find '%s' for patching\n") % self.fname)
> + wvfs = backend.repo.wvfs
That's a layering violation, and not every backend has a 'repo' (only repo backends do). Also I think you're overthinking it; just warn unconditionally and let the user sort it out.
> + if wvfs.exists(wvfs.reljoin(backend.repo.getcwd(), self.fname)):
> + self.ui.warn(_("Note that paths are relative to the root "
> + "of repository, use --prefix option to "
> + "change it\n"))
pacem in terris / мир / शान्ति / سَلاَم / 平和
Kevin R. Bullock
More information about the Mercurial-devel