Restore order of operations after D4056
Summary:
See discussion in D4056. In findRevision() we call loadWorkingCopyDifferentialRevisions(). However, this method depends upon the state of the working copy, because the end of the commit range it examines is HEAD. Prior to D4056 we checked out the target branch before calling findRevision(); after D4056 we call it earlier.
This isn't problematic in the arc land case, but in the arc land <branch> case it means we may fail to identify a revision, or identify the wrong revision, because HEAD isn't where we expect it to be.
Instead, unconditionally check out the target branch before finding the revision.
See http://dl.dropbox.com/u/116385/Slingshot/Pictures/Screen%20Shot%202012-12-03%20at%203.43.45%20PM.png for a transcript of the issue.
Test Plan: Reproduced issue as per link above. Ran arc land --keep-branch --hold somebranch successfully after this patch.
Reviewers: DurhamGoode, zeeg
Reviewed By: DurhamGoode
CC: aran
Differential Revision: https://secure.phabricator.com/D4072