[llvm-dev] 'git llvm push' not working for me on Windows (original) (raw)

Petr Hosek via llvm-dev llvm-dev at lists.llvm.org
Fri Feb 1 18:37:16 PST 2019


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:[https://llvm.org/svn/llvm−project/cfe/trunk/URL: [https://llvm.org/svn/llvm-project/cfe/trunk/URL:https://llvm.org/svn/llvmproject/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 at 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 at chromium.org] Sent: Wednesday, January 30, 2019 10:52 PM To: Robinson, Paul Cc: James Y Knight; llvm-dev; vedantkumar 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> wrote: Excellent, thanks! --paulr From: James Y Knight [mailto:jyknight at google.com] Sent: Thursday, November 29, 2018 12:00 PM To: Robinson, Paul Cc: Mikhail Ramalho; vedantkumar 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> 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/debuginfo.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] *On Behalf Of *via llvm-dev Sent: Wednesday, November 28, 2018 2:39 PM To: mikhail.ramalho at gmail.com; jyknight at google.com Cc: llvm-dev at lists.llvm.org; vedantkumar 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] Sent: Wednesday, November 28, 2018 12:27 PM To: jyknight at google.com Cc: Robinson, Paul; llvm-dev at lists.llvm.org; vedantkumar 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> 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> 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> 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> 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] *On Behalf Of *Vedant Kumar Sent: Thursday, November 22, 2018 9:38 AM To: Robinson, Paul Cc: zturner at google.com; jyknight at google.com; 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> 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 <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; jyknight at google.com Cc: 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 <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> 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> 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 http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


LLVM Developers mailing list 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 http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-- Mikhail Ramalho.


LLVM Developers mailing list 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 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/ad1639b6/attachment.html>



More information about the llvm-dev mailing list