Message ID | 20221026083204.21333-1-msuchanek@suse.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | apply: Allow creating files with git patches | expand |
Hello, looking closer the patch really is malformed: --------- series -------- newfile.patch -p2 ----- newfile.patch ----- Patch description diff --git a/someproject/uselesss.c b/someproject/uselesss.c new file mode 100644 --- /dev/null +++ b/uselesss.c @@ -0,0 +1,3 @@ +/* + * This patch creates a useless file + */ ------------------------- Not sure if it is desirable to handle better, and if there is even a better way. Thanks Michal On Wed, Oct 26, 2022 at 10:32:04AM +0200, Michal Suchanek wrote: > In git 2.38.0 it is not possible to create a file with apply when the diff > looks like git diff. > > It either complains that the source file is not /dev/null or that it is > not the same as the destination. > > something.patch > No author found in something.patch > --- > Sometext > > Author: A. U. Thor <au@thor.com> > gitdiff_verify_name: line: b/somefile.c > @@ -0,0 +1,379 @@ > +/* > ... > , isnull: 0, *name: somefile.c, side: 1, another: (null) > error: git apply: bad git-diff - inconsistent new filename on line 80 > > something.patch > No author found in something.patch > --- > Sometext > > Author: A. U. Thor <au@thor.com> > gitdiff_verify_name: line: a/somefile.c > +++ b/somefile.c > @@ -0,0 +1,379 @@ > +/* > ... > , isnull: 1, *name: (null), side: 0 > error: git apply: bad git-diff - expected /dev/null on line 80 > > Signed-off-by: Michal Suchanek <msuchanek@suse.de> > --- > apply.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/apply.c b/apply.c > index 2b7cd930ef..9dd01da271 100644 > --- a/apply.c > +++ b/apply.c > @@ -928,7 +928,7 @@ static int gitdiff_verify_name(struct gitdiff_data *state, > return error(_("git apply: bad git-diff - expected /dev/null, got %s on line %d"), > *name, state->linenr); > another = find_name(state->root, line, NULL, state->p_value, TERM_TAB); > - if (!another || strcmp(another, *name)) { > + if (another && strcmp(another, *name)) { > free(another); > return error((side == DIFF_NEW_NAME) ? > _("git apply: bad git-diff - inconsistent new filename on line %d") : > -- > 2.38.0 >
diff --git a/apply.c b/apply.c index 2b7cd930ef..9dd01da271 100644 --- a/apply.c +++ b/apply.c @@ -928,7 +928,7 @@ static int gitdiff_verify_name(struct gitdiff_data *state, return error(_("git apply: bad git-diff - expected /dev/null, got %s on line %d"), *name, state->linenr); another = find_name(state->root, line, NULL, state->p_value, TERM_TAB); - if (!another || strcmp(another, *name)) { + if (another && strcmp(another, *name)) { free(another); return error((side == DIFF_NEW_NAME) ? _("git apply: bad git-diff - inconsistent new filename on line %d") :
In git 2.38.0 it is not possible to create a file with apply when the diff looks like git diff. It either complains that the source file is not /dev/null or that it is not the same as the destination. something.patch No author found in something.patch --- Sometext Author: A. U. Thor <au@thor.com> gitdiff_verify_name: line: b/somefile.c @@ -0,0 +1,379 @@ +/* ... , isnull: 0, *name: somefile.c, side: 1, another: (null) error: git apply: bad git-diff - inconsistent new filename on line 80 something.patch No author found in something.patch --- Sometext Author: A. U. Thor <au@thor.com> gitdiff_verify_name: line: a/somefile.c +++ b/somefile.c @@ -0,0 +1,379 @@ +/* ... , isnull: 1, *name: (null), side: 0 error: git apply: bad git-diff - expected /dev/null on line 80 Signed-off-by: Michal Suchanek <msuchanek@suse.de> --- apply.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)