> 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

Reply via email to