From: Timo Myyrä Subject: Re: Unable to add new patch, "file has unexpected status" To: "Herbert J. Skuhra" Cc: gameoftrees@openbsd.org Date: Mon, 31 Jan 2022 17:48:23 +0200 Stefan Sperling [2022-01-30, 19:28 +0100]: > On Sun, Jan 30, 2022 at 05:08:35PM +0100, Herbert J. Skuhra wrote: > >> On Sun, Jan 30, 2022 at 05:57:20PM +0200, Timo Myyrä wrote: >> > Stefan Sperling [2022-01-30, 16:05 +0100]: >> > >> > > On Sun, Jan 30, 2022 at 04:19:31PM +0200, Timo Myyrä wrote: >> > > >> > >> >> > >> I got following error when I try to add new local patch to a port: >> > >> >> > >> tmy@asteroid ecl $ got add lang/ecl/patches/patch-src_cmp_cmpmain_lsp >> > >> got: /usr/ports/lang/ecl/lang/ecl/patches/patch-src_cmp_cmpmain_lsp: file has unexpected status >> >> 1. This patch only adds debug info. >> 2. You run different commands before and now ... the first is obviously >> wrong. > > Oh, right. Now I see it too :) Timo, you need to specify paths > relative to your current working directory. > > The error message could be improved, though. How about this? > > $ got add foo/bar > got: /home/stsp/src/got/foo/bar: No such file or directory > $ > > diff c7b1723265fdbbef35d01135261fab2ca7d52f88 /home/stsp/src/got > blob - 02ace087b87f181bf1e2f38cb278ab69608602f7 > file + lib/worktree.c > --- lib/worktree.c > +++ lib/worktree.c > @@ -3874,7 +3874,10 @@ schedule_addition(void *arg, unsigned char status, uns > } > > if (status != GOT_STATUS_UNVERSIONED) { > - err = got_error_path(ondisk_path, GOT_ERR_FILE_STATUS); > + if (status == GOT_STATUS_NONEXISTENT) > + err = got_error_set_errno(ENOENT, ondisk_path); > + else > + err = got_error_path(ondisk_path, GOT_ERR_FILE_STATUS); > goto done; > } > I'm in favor of more accurate error message. I recall this isn't the first time I've tripped in got giving the full path and not relative path from current directory. Why "got st ." does not show relative path names from current directory? timo