> On Nov 16, 2017, at 7:09 AM, Alex Blewitt via swift-dev <swift-dev@swift.org> > wrote: > >> On 16 Nov 2017, at 14:30, Geordie J via swift-dev <swift-dev@swift.org >> <mailto: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 <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
A scheme is not a branch. A scheme is a list of (repo, branch). This allows for the underlying branch to vary per repo. > > 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
_______________________________________________ swift-dev mailing list swift-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-dev