> On 16 Nov 2017, at 14:30, Geordie J via swift-dev <swift-dev@swift.org> wrote: > > Hello, > > I recently asked about building a particular Swift release and couldn’t find > the correct tag. It turns out there are two issues with this: > > 1. Somehow "git checkout swift-4.0.2-RELEASE” doesn’t work. In fact, the > commit that tag references > (https://github.com/apple/swift/commit/efb12f4d7a6aa7575333c13fbcdb7782426b130a > > <https://github.com/apple/swift/commit/efb12f4d7a6aa7575333c13fbcdb7782426b130a>) > doesn’t seem to exist locally even after running “git fetch”, so I can’t > even check out that commit’s parent and cherry-pick the release commit. > > This is spooky enough to make me think I’m doing something wrong: can someone > confirm or deny that this release tag really exists outside of GitHub?
You almost certainly haven't fetched the tag from GitHub successfully. When you run 'git fetch', you'll pull down the configured options as in the .git/config file. For example, I have: [remote "origin"] url = https://github.com/apple/swift pushurl = no_push fetch = +refs/heads/*:refs/remotes/origin/* As a result, it won't explicitly fetch the tag for me. You can do fetch --tags, in which case, it will pull all of them, or you can configure your repository to fetch that specific tag as well (or specify it on the command line, like git fetch origin refs/tags/swift-4.0.2-RELEASE:refs/remotes/origin/swift-4.0.2-RELEASE). > 2. The “stable” branch of llvm (which is automatically referenced when I run > utils/update-checkout) isn’t compatible with that tag (its parent commit at > least). Frustratingly, checking out "swift-4.0-branch” in both apple/swift > and apple/swift-llvm does not build on linux either. This appears to be due > to a rename/move of Dwarf.h somewhere along the line. If you are missing some of the required downstream projects, you can run: ./swift/utils/update-checkout --clone You can explicitly ask to check out a branch (aka 'scheme'): ./swift/utils/update-checkout --scheme swift-4.0-branch and you can checkout a specific tag: ./swift/utils/update-checkout --tag swift-4.0.2-RELEASE You can do a clean checkout by using --reset-to-remote, which might help clean your repository state up a little. I managed to use this to check out the repository, from a base clone of Swift: ./utils/update-checkout --clone --tag swift-4.0.2-RELEASE What version are you at for the LLVM repository after using the above? Mine resolves to: 2dedb62a0bcb69354e15a54be89fb5dfa63275d2
_______________________________________________ swift-dev mailing list swift-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-dev