>That code works, but is much slower

Hmmm. You're right. We don't actually *need* to check the files out.

How about 

```csharp
var branchName = "..."
var b = repo.FindBranch(branchName);
Debug.Assert(b != null);
repo.Refs.UpdateTarget("HEAD", b.CanonicalName);
Logger.WriteInfo(string.Format("Moving HEAD to branch '{0}'", b.CanonicalName));
```

That *should* work :wink: