The usual workaround is to do `rm –rf .git/llvm-upstream-svn` and try again.

You could also patch llvm/utils/git-svn/git-llvm to add the `--verbose` option to the `git apply` command, which would provide better diagnostic output.

HTH,

--paulr

 

From: Petr Hosek [mailto:phosek@chromium.org]
Sent: Wednesday, January 30, 2019 10:52 PM
To: Robinson, Paul
Cc: James Y Knight; llvm-dev; vedant_kumar@apple.com
Subject: Re: [llvm-dev] 'git llvm push' not working for me on Windows

 

I just hit this failure as well. I've uploaded the log to https://reviews.llvm.org/P8126. The error message is:

 

`git apply -p2 -` returned 1

error: patch failed: lib/Basic/Version.cpp:14

error: lib/Basic/Version.cpp: patch does not apply

Patch doesn't apply: maybe you should try `git pull -r` first?

 

On Thu, Nov 29, 2018 at 1:18 PM via llvm-dev <llvm-dev@lists.llvm.org> wrote:

Excellent, thanks!

--paulr

 

From: James Y Knight [mailto:jyknight@google.com]
Sent: Thursday, November 29, 2018 12:00 PM
To: Robinson, Paul
Cc: Mikhail Ramalho;  vedant_kumar@apple.com; llvm-dev
Subject: Re: [llvm-dev] 'git llvm push' not working for me on Windows

 

Aha! From your output I figured out what I screwed up. Sorry about the trouble...

 

Illustration of the issue:

svn checkout --depth=empty https://llvm.org/svn/llvm-project

svn update --depth=immediates --parents llvm/trunk/test/DebugInfo

svn update --depth=immediates --parents llvm/trunk/test/DebugInfo/Generic

 

After these commands, I expected Generic/ to be populated, but it is not, because the "--depth=immediates" *creates* the directory, but then it marks it as depth=empty. And then,  later, calling svn update --depth=immediates _doesn't override that_. This is apparently not a bug in subversion, that's is how it is "supposed" to work. It's just super confusing. If I use --depth=files instead of --depth=immediates, that fixes this issue,  since in that case, it won't create the subdirs and mark them as depth=empty.

 

Also, the --parents flag causes the same issue for parent directories. Ugh. After the following, I'd expected llvm/trunk/ to get populated, but it doesn't get populated, because  the first 'svn update' created it with sticky depth=empty:

svn checkout --depth=empty https://llvm.org/svn/llvm-project

svn update --depth=files --parents llvm/trunk/test/DebugInfo

svn update --depth=files --parents llvm/trunk/

 

Subversion has a --set-depth= argument which "fixes" this, but unfortunately, that argument *also* recursively deletes any subdirs which have already been populated. (I just want  to _add_ things, not delete already-downloaded data.)

 

In summary: subversion's sparse-checkout command-line UI is really confusing and annoying! Ugh!

 

I've pushed a commit (r347883) to hopefully fix this issue. This time for sure. 

 

You will probably need to remove the .git/llvm-upstream-svn directory, one last time, for the fix to work.

 

On Wed, Nov 28, 2018 at 3:55 PM <paul.robinson@sony.com> wrote:

Poking around in the .git\llvm-upstream-svn tree, I find that llvm\trunk\test\DebugInfo\Generic is  empty, as are all the other subdirectories of test\DebugInfo that I tried.  I have other files in the checkin that are in leaf directories but those files all exist.

I hacked git-llvm to add a –verbose option:

 

`git apply --verbose -p2 -` returned 1

Checking patch include/llvm/IR/DebugInfoFlags.def...

Checking patch include/llvm/IR/DebugInfoMetadata.h...

Checking patch lib/AsmParser/LLLexer.cpp...

Checking patch lib/AsmParser/LLParser.cpp...

Checking patch lib/AsmParser/LLToken.h...

Checking patch lib/Bitcode/Reader/MetadataLoader.cpp...

Checking patch lib/Bitcode/Writer/BitcodeWriter.cpp...

Checking patch lib/IR/AsmWriter.cpp...

Checking patch lib/IR/DebugInfoMetadata.cpp...

Checking patch test/Assembler/disubprogram.ll...

Checking patch test/Assembler/invalid-disubprogram-uniqued-definition.ll...

Checking patch test/Bindings/llvm-c/debug_info.ll...

Checking patch test/Bitcode/DISubprogram-distinct-definitions.ll...

Checking patch test/Bitcode/DISubprogram-v4.ll...

Checking patch test/Bitcode/DISubprogram-v4.ll.bc...

Checking patch test/DebugInfo/Generic/invalid.ll...

error: test/DebugInfo/Generic/invalid.ll: No such file or directory

Checking patch test/DebugInfo/debugify.ll...

Checking patch test/Linker/replaced-function-matches-first-subprogram.ll...

Checking patch test/Transforms/GCOVProfiling/three-element-mdnode.ll...

Patch doesn't apply: maybe you should try `git pull -r` first?

 

 

From: llvm-dev [mailto:llvm-dev-bounces@lists.llvm.org] On Behalf Of via llvm-dev
Sent: Wednesday, November 28, 2018 2:39 PM
To: mikhail.ramalho@gmail.com; jyknight@google.com
Cc: llvm-dev@lists.llvm.org; vedant_kumar@apple.com
Subject: Re: [llvm-dev] 'git llvm push' not working for me on Windows

 

And now it's failing for me also… complaining about "no such file or directory" on a file that plainly  exists.

Verbose log attached.

--paulr

 

From: Mikhail Ramalho [mailto:mikhail.ramalho@gmail.com]
Sent: Wednesday, November 28, 2018 12:27 PM
To: jyknight@google.com
Cc: Robinson, Paul;  llvm-dev@lists.llvm.org;  vedant_kumar@apple.com
Subject: Re: [llvm-dev] 'git llvm push' not working for me on Windows

 

OK, I've managed to do it: 

 

I was trying to push it from a build/ directory, maybe that's why the git apply was failing. 

 

Pushing the commit from the root of the repo worked.

 

Em qua, 28 de nov de 2018 às 16:40, Mikhail Ramalho <mikhail.ramalho@gmail.com> escreveu:

Hi,

 

The patch only changes one file in clang. Here's the patch: https://reviews.llvm.org/D54974

 

Attached the log. It seems to complain about the git apply -p2.

 

Maybe it's something related to arc?

 

Em qua, 28 de nov de 2018 às 15:37, James Y Knight <jyknight@google.com> escreveu:

Can you please run "git llvm --verbose push" and send me the output?

 

BTW, I've just committed a fix for the handling of binary patch data when you're running it under python3.X. I don't believe that was a regression from my recent changes, but if  you're using python3, you could see if that fixes it for you.

 

On Tue, Nov 27, 2018 at 7:20 PM Mikhail Ramalho via llvm-dev <llvm-dev@lists.llvm.org> wrote:

I'm facing this now on Linux. 

 

Any idea how to fix it?

 

Em seg, 26 de nov de 2018 às 20:22, via llvm-dev <llvm-dev@lists.llvm.org> escreveu:

I've verified that none of the files I tried to check in had Windows-style line endings. It's something  else.

--paulr

 

From: vsk@apple.com [mailto:vsk@apple.com] On Behalf Of Vedant Kumar
Sent: Thursday, November 22, 2018 9:38 AM
To: Robinson, Paul
Cc: zturner@google.com; jyknight@google.com;  llvm-dev@lists.llvm.org
Subject: Re: [llvm-dev] 'git llvm push' not working for me on Windows

 

As a test case, try committing a change to clang/test/SemaCXX/sourceranges.cpp?

 

I believe most editors force Windows-style line endings for that file (they show up in my vim as “^M”). I recently tried to commit a change to that file using “git llvm push” on macOS,  but hit what I think is the same issue. At least, the error message was the same.

vedant (sent from my iPhone)


On Nov 21, 2018, at 10:06 AM, via llvm-dev <llvm-dev@lists.llvm.org> wrote:

FTR the commit where it failed for me had both llvm and clang changes.  I wonder if that contributed.

--paulr

 

From: llvm-dev [mailto:llvm-dev-bounces@lists.llvm.org] On Behalf Of via llvm-dev
Sent: Monday, November 19, 2018 6:01 PM
To: zturner@google.com; jyknight@google.com
Cc: llvm-dev@lists.llvm.org
Subject: Re: [llvm-dev] 'git llvm push' not working for me on Windows

 

Hm.  Just now it worked for me for r347271.  If it happens again I'll try verbose mode and attach  a log.

Thanks,

--paulr

 

From: Zachary Turner [mailto:zturner@google.com]
Sent: Monday, November 19, 2018 5:26 PM
To: James Y Knight
Cc: Robinson, Paul; llvm-dev
Subject: Re: [llvm-dev] 'git llvm push' not working for me on Windows

 

Usually every time I've seen that error message, it's been related to line ending normalization.  But James is right, I did use it successfully this morning as well as yesterday.

 

On Mon, Nov 19, 2018 at 1:03 PM James Y Knight via llvm-dev <llvm-dev@lists.llvm.org> wrote:

It does sound like I must've broken something, but I believe zturner used it on windows successfully. Perhaps you could help me debug the issue? Possibly running it with --verbose  would show something useful.

 

On Mon, Nov 19, 2018 at 1:32 PM <paul.robinson@sony.com> wrote:

I am consistently getting:

`git apply -p2 -` returned 1
error: include/llvm/IR/DIBuilder.h: No such file or directory
[[ etc ]]
Patch doesn't apply; maybe you should try `git pull -r` first?

My usual response to a problem from git-llvm (which is most often
an anti-virus issue) is to blow away .git\llvm-upstream-svn but
that doesn't help this time.

I see James Knight did a "performance improvement" on Friday,
perhaps that doesn't work so well on Windows?  The main
performance cost is one-time, and as long as my anti-virus isn't
trashing things behind my back the performance is just fine;
so it's not clear this is really a necessary improvement.
If it's interfering with developing the new git repo, then I'd
suggest making it optional or platform-dependent.

As a workaround I fetched the previous version of git-llvm 
and put it earlier in my PATH, that worked.

--paulr

_______________________________________________
LLVM Developers mailing list
llvm-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

_______________________________________________
LLVM Developers mailing list
llvm-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

_______________________________________________
LLVM Developers mailing list
llvm-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

 

--

 

Mikhail Ramalho.

_______________________________________________
LLVM Developers mailing list
llvm-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

 

--

 

Mikhail Ramalho.

 

--

 

Mikhail Ramalho.

_______________________________________________
LLVM Developers mailing list
llvm-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

">

(original) (raw)

I already figured it out. Turned out some sources like clang/lib/Basic/Version.cpp contain Subversion keywords (in this particular case it's URLURLURL). Subversion would automatically substitute these in the internal checkout that's used by git-llvm-push, but Git wouldn't, so when trying to apply the patch generated by Git you'll get and error because while Git patch has URLURLURL, the Subversion checkout would have something like URL:<ahref="https://llvm.org/svn/llvm−project/cfe/trunk/URL: <a href="https://llvm.org/svn/llvm-project/cfe/trunk/URL:<ahref="https://llvm.org/svn/llvmproject/cfe/trunk/">https://llvm.org/svn/llvm-project/cfe/trunk/$. The workaround I came up with is to do the keyword substitution in the generated patch (https://github.com/llvm/llvm-project/blob/master/llvm/utils/git-svn/git-llvm#L321).

On Fri, Feb 1, 2019 at 2:56 PM <paul.robinson@sony.com> wrote:

The usual workaround is to do \`rm –rf .git/llvm-upstream-svn\` and try again.

You could also patch llvm/utils/git-svn/git-llvm to add the \`--verbose\` option to the \`git apply\` command, which would provide better diagnostic output.

HTH,

--paulr

From: Petr Hosek \[mailto:phosek@chromium.org\]
Sent: Wednesday, January 30, 2019 10:52 PM
To: Robinson, Paul
Cc: James Y Knight; llvm-dev; vedant\_kumar@apple.com
Subject: Re: \[llvm-dev\] 'git llvm push' not working for me on Windows

I just hit this failure as well. I've uploaded the log to https://reviews.llvm.org/P8126. The error message is:

\`git apply -p2 -\` returned 1

error: patch failed: lib/Basic/Version.cpp:14

error: lib/Basic/Version.cpp: patch does not apply

Patch doesn't apply: maybe you should try \`git pull -r\` first?

On Thu, Nov 29, 2018 at 1:18 PM via llvm-dev <llvm-dev@lists.llvm.org> wrote:

Excellent, thanks!

--paulr

From: James Y Knight \[mailto:jyknight@google.com\]
Sent: Thursday, November 29, 2018 12:00 PM
To: Robinson, Paul
Cc: Mikhail Ramalho; vedant\_kumar@apple.com; llvm-dev
Subject: Re: \[llvm-dev\] 'git llvm push' not working for me on Windows

Aha! From your output I figured out what I screwed up. Sorry about the trouble...

Illustration of the issue:

svn checkout --depth=empty https://llvm.org/svn/llvm-project

svn update --depth=immediates --parents llvm/trunk/test/DebugInfo

svn update --depth=immediates --parents llvm/trunk/test/DebugInfo/Generic

After these commands, I expected Generic/ to be populated, but it is not, because the "--depth=immediates" \*creates\* the directory, but then it marks it as depth=empty. And then, later, calling svn update --depth=immediates \_doesn't override that\_. This is apparently not a bug in subversion, that's is how it is "supposed" to work. It's just super confusing. If I use --depth=files instead of --depth=immediates, that fixes this issue, since in that case, it won't create the subdirs and mark them as depth=empty.

Also, the --parents flag causes the same issue for parent directories. Ugh. After the following, I'd expected llvm/trunk/ to get populated, but it doesn't get populated, because the first 'svn update' created it with sticky depth=empty:

svn checkout --depth=empty https://llvm.org/svn/llvm-project

svn update --depth=files --parents llvm/trunk/test/DebugInfo

svn update --depth=files --parents llvm/trunk/

Subversion has a --set-depth= argument which "fixes" this, but unfortunately, that argument \*also\* recursively deletes any subdirs which have already been populated. (I just want to \_add\_ things, not delete already-downloaded data.)

In summary: subversion's sparse-checkout command-line UI is really confusing and annoying! Ugh!

I've pushed a commit (r347883) to hopefully fix this issue. This time for sure.

You will probably need to remove the .git/llvm-upstream-svn directory, one last time, for the fix to work.

On Wed, Nov 28, 2018 at 3:55 PM <paul.robinson@sony.com> wrote:

Poking around in the .git\\llvm-upstream-svn tree, I find that llvm\\trunk\\test\\DebugInfo\\Generic is empty, as are all the other subdirectories of test\\DebugInfo that I tried. I have other files in the checkin that are in leaf directories but those files all exist.

I hacked git-llvm to add a –verbose option:

\`git apply --verbose -p2 -\` returned 1

Checking patch include/llvm/IR/DebugInfoFlags.def...

Checking patch include/llvm/IR/DebugInfoMetadata.h...

Checking patch lib/AsmParser/LLLexer.cpp...

Checking patch lib/AsmParser/LLParser.cpp...

Checking patch lib/AsmParser/LLToken.h...

Checking patch lib/Bitcode/Reader/MetadataLoader.cpp...

Checking patch lib/Bitcode/Writer/BitcodeWriter.cpp...

Checking patch lib/IR/AsmWriter.cpp...

Checking patch lib/IR/DebugInfoMetadata.cpp...

Checking patch test/Assembler/disubprogram.ll...

Checking patch test/Assembler/invalid-disubprogram-uniqued-definition.ll...

Checking patch test/Bindings/llvm-c/debug\_info.ll...

Checking patch test/Bitcode/DISubprogram-distinct-definitions.ll...

Checking patch test/Bitcode/DISubprogram-v4.ll...

Checking patch test/Bitcode/DISubprogram-v4.ll.bc...

Checking patch test/DebugInfo/Generic/invalid.ll...

error: test/DebugInfo/Generic/invalid.ll: No such file or directory

Checking patch test/DebugInfo/debugify.ll...

Checking patch test/Linker/replaced-function-matches-first-subprogram.ll...

Checking patch test/Transforms/GCOVProfiling/three-element-mdnode.ll...

Patch doesn't apply: maybe you should try \`git pull -r\` first?

From: llvm-dev \[mailto:llvm-dev-bounces@lists.llvm.org\] On Behalf Of via llvm-dev
Sent: Wednesday, November 28, 2018 2:39 PM
To: mikhail.ramalho@gmail.com; jyknight@google.com
Cc: llvm-dev@lists.llvm.org; vedant\_kumar@apple.com
Subject: Re: \[llvm-dev\] 'git llvm push' not working for me on Windows

And now it's failing for me also… complaining about "no such file or directory" on a file that plainly exists.

Verbose log attached.

--paulr

From: Mikhail Ramalho \[mailto:mikhail.ramalho@gmail.com\]
Sent: Wednesday, November 28, 2018 12:27 PM
To: jyknight@google.com
Cc: Robinson, Paul; llvm-dev@lists.llvm.org; vedant\_kumar@apple.com
Subject: Re: \[llvm-dev\] 'git llvm push' not working for me on Windows

OK, I've managed to do it:

I was trying to push it from a build/ directory, maybe that's why the git apply was failing.

Pushing the commit from the root of the repo worked.

Em qua, 28 de nov de 2018 às 16:40, Mikhail Ramalho <mikhail.ramalho@gmail.com> escreveu:

Hi,

The patch only changes one file in clang. Here's the patch: https://reviews.llvm.org/D54974

Attached the log. It seems to complain about the git apply -p2.

Maybe it's something related to arc?

Em qua, 28 de nov de 2018 às 15:37, James Y Knight <jyknight@google.com> escreveu:

Can you please run "git llvm --verbose push" and send me the output?

BTW, I've just committed a fix for the handling of binary patch data when you're running it under python3.X. I don't believe that was a regression from my recent changes, but if you're using python3, you could see if that fixes it for you.

On Tue, Nov 27, 2018 at 7:20 PM Mikhail Ramalho via llvm-dev <llvm-dev@lists.llvm.org> wrote:

I'm facing this now on Linux.

Any idea how to fix it?

Em seg, 26 de nov de 2018 às 20:22, via llvm-dev <llvm-dev@lists.llvm.org> escreveu:

I've verified that none of the files I tried to check in had Windows-style line endings. It's something else.

--paulr

From: vsk@apple.com \[mailto:vsk@apple.com\] On Behalf Of Vedant Kumar
Sent: Thursday, November 22, 2018 9:38 AM
To: Robinson, Paul
Cc: zturner@google.com; jyknight@google.com; llvm-dev@lists.llvm.org
Subject: Re: \[llvm-dev\] 'git llvm push' not working for me on Windows

As a test case, try committing a change to clang/test/SemaCXX/sourceranges.cpp?

I believe most editors force Windows-style line endings for that file (they show up in my vim as “^M”). I recently tried to commit a change to that file using “git llvm push” on macOS, but hit what I think is the same issue. At least, the error message was the same.

vedant (sent from my iPhone)


On Nov 21, 2018, at 10:06 AM, via llvm-dev <llvm-dev@lists.llvm.org> wrote:

FTR the commit where it failed for me had both llvm and clang changes. I wonder if that contributed.

--paulr

From: llvm-dev \[mailto:llvm-dev-bounces@lists.llvm.org\] On Behalf Of via llvm-dev
Sent: Monday, November 19, 2018 6:01 PM
To: zturner@google.com; jyknight@google.com
Cc: llvm-dev@lists.llvm.org
Subject: Re: \[llvm-dev\] 'git llvm push' not working for me on Windows

Hm. Just now it worked for me for r347271\. If it happens again I'll try verbose mode and attach a log.

Thanks,

--paulr

From: Zachary Turner \[mailto:zturner@google.com\]
Sent: Monday, November 19, 2018 5:26 PM
To: James Y Knight
Cc: Robinson, Paul; llvm-dev
Subject: Re: \[llvm-dev\] 'git llvm push' not working for me on Windows

Usually every time I've seen that error message, it's been related to line ending normalization. But James is right, I did use it successfully this morning as well as yesterday.

On Mon, Nov 19, 2018 at 1:03 PM James Y Knight via llvm-dev <llvm-dev@lists.llvm.org> wrote:

It does sound like I must've broken something, but I believe zturner used it on windows successfully. Perhaps you could help me debug the issue? Possibly running it with --verbose would show something useful.

On Mon, Nov 19, 2018 at 1:32 PM <paul.robinson@sony.com> wrote:

I am consistently getting:

\`git apply -p2 -\` returned 1
error: include/llvm/IR/DIBuilder.h: No such file or directory
\[\[ etc \]\]
Patch doesn't apply; maybe you should try \`git pull -r\` first?

My usual response to a problem from git-llvm (which is most often
an anti-virus issue) is to blow away .git\\llvm-upstream-svn but
that doesn't help this time.

I see James Knight did a "performance improvement" on Friday,
perhaps that doesn't work so well on Windows? The main
performance cost is one-time, and as long as my anti-virus isn't
trashing things behind my back the performance is just fine;
so it's not clear this is really a necessary improvement.
If it's interfering with developing the new git repo, then I'd
suggest making it optional or platform-dependent.

As a workaround I fetched the previous version of git-llvm
and put it earlier in my PATH, that worked.

\--paulr

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
LLVM Developers mailing list
llvm-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
LLVM Developers mailing list
llvm-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
LLVM Developers mailing list
llvm-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


--

Mikhail Ramalho.

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
LLVM Developers mailing list
llvm-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


--

Mikhail Ramalho.


--

Mikhail Ramalho.

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
LLVM Developers mailing list
llvm-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev