> 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

Reply via email to