[llvm-dev] 'git llvm push' not working for me on Windows

via llvm-dev llvm-dev at lists.llvm.org
Fri Feb 1 14:56:01 PST 2019


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 at chromium.org]
Sent: Wednesday, January 30, 2019 10:52 PM
To: Robinson, Paul
Cc: James Y Knight; llvm-dev; vedant_kumar at 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 at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:
Excellent, thanks!
--paulr

From: James Y Knight [mailto:jyknight at google.com<mailto:jyknight at google.com>]
Sent: Thursday, November 29, 2018 12:00 PM
To: Robinson, Paul
Cc: Mikhail Ramalho; vedant_kumar at apple.com<mailto:vedant_kumar at 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 at sony.com<mailto:paul.robinson at 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 at lists.llvm.org<mailto:llvm-dev-bounces at lists.llvm.org>] On Behalf Of via llvm-dev
Sent: Wednesday, November 28, 2018 2:39 PM
To: mikhail.ramalho at gmail.com<mailto:mikhail.ramalho at gmail.com>; jyknight at google.com<mailto:jyknight at google.com>
Cc: llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>; vedant_kumar at apple.com<mailto:vedant_kumar at 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 at gmail.com<mailto:mikhail.ramalho at gmail.com>]
Sent: Wednesday, November 28, 2018 12:27 PM
To: jyknight at google.com<mailto:jyknight at google.com>
Cc: Robinson, Paul; llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>; vedant_kumar at apple.com<mailto:vedant_kumar at 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 at gmail.com<mailto:mikhail.ramalho at 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 at google.com<mailto:jyknight at 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 at lists.llvm.org<mailto:llvm-dev at 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 at lists.llvm.org<mailto:llvm-dev at 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 at apple.com<mailto:vsk at apple.com> [mailto:vsk at apple.com<mailto:vsk at apple.com>] On Behalf Of Vedant Kumar
Sent: Thursday, November 22, 2018 9:38 AM
To: Robinson, Paul
Cc: zturner at google.com<mailto:zturner at google.com>; jyknight at google.com<mailto:jyknight at google.com>; llvm-dev at lists.llvm.org<mailto:llvm-dev at 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 at lists.llvm.org<mailto:llvm-dev at 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 at lists.llvm.org] On Behalf Of via llvm-dev
Sent: Monday, November 19, 2018 6:01 PM
To: zturner at google.com<mailto:zturner at google.com>; jyknight at google.com<mailto:jyknight at google.com>
Cc: llvm-dev at lists.llvm.org<mailto:llvm-dev at 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 at 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 at lists.llvm.org<mailto:llvm-dev at 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 at sony.com<mailto:paul.robinson at 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 at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
_______________________________________________
LLVM Developers mailing list
llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
_______________________________________________
LLVM Developers mailing list
llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


--

Mikhail Ramalho.
_______________________________________________
LLVM Developers mailing list
llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


--

Mikhail Ramalho.


--

Mikhail Ramalho.
_______________________________________________
LLVM Developers mailing list
llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190201/04db93a8/attachment.html>


More information about the llvm-dev mailing list