Support specifying non-HEADS refs as upstream

While not typical, some users might have an upstream that isn't in
the usual refs/heads/* namespace. There's no reason not to use
those refs as the value for the upstream attribute, so support
doing so.

Change-Id: I5b119f1135c3268c20e7c4084682e860d3ee1fb1
Always fetch the specific revision given

Don't assume the revision is in refs/heads/.

Change-Id: I1f71be222ed3ed940d2265aad43d1f2d601fc03a
upload: report names of uncommitted files

When there are uncommitted files in the tree, 'repo upload' stops to
ask if it is OK to continue, but does not report the actual names of
uncommitted files.

This patch adds plumbing to have the outstanding file names reported
if desired.

BUG=None
TEST=verified that 'repo upload' properly operates with the following
    conditions present in the tree:
    . file(s) modified locally
    . file(s) added to index, but not committed
    . files not known to git
    . no modified files (the upload proceeds as expected)

Change-Id: If65d5f8e8bcb3300c16d85dc5d7017758545f80d
Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
Signed-off-by: Vadim Bendebury <vbendeb@google.com>
Exit 1 if repo download -c fails

Change-Id: I6985548bf87032b121eeccf858c4eeca1a60598c
Merge "upload: report names of uncommitted files"
Merge changes I1f71be22,I5b119f11

* changes:
  Always fetch the specific revision given
  Support specifying non-HEADS refs as upstream
Support persistent-http(s) review urls

Change-Id: I8e0065685c968dfa9dc26bcdb6ee2fa14019c509
If revision is sha hash and dest-branch is defined, use it for starting branch

Change-Id: I538c7d216f72b87629b61aee547d374a398c95da
Revert "Check for existence of refs upon initial fetch"

This reverts commit 565480588d2bff4205b437862505e77382189811.

We are reverting this change for 2 reasons:

1) It introduced a bug for users using sync -c with a reference mirror.
2) The fetch specs have recently changed to cause git to properly fail
when we request a non-existent branch of a manifest, removing the need
for this change.

Change-Id: I0f63da9bfb40cf5ffafb7979f1b8c929a738fc7b