Ensure .repo/alternates is writable by the invoking user.

The only way to trigger this is if references were set up, but
never instantiated.

BUG=chromium-os:31682
TEST=manual permission checking.

Change-Id: Ibfc9dadf838f554cd10411753b5769117b1b1d42
Reviewed-on: https://gerrit.chromium.org/gerrit/24932
Reviewed-by: Brian Harring <ferringb@chromium.org>
Tested-by: Brian Harring <ferringb@chromium.org>
Commit-Ready: Brian Harring <ferringb@chromium.org>
diff --git a/sdk_lib/enter_chroot.sh b/sdk_lib/enter_chroot.sh
index 904e805..dbff0d3 100755
--- a/sdk_lib/enter_chroot.sh
+++ b/sdk_lib/enter_chroot.sh
@@ -276,6 +276,14 @@
       repo.reference)
     if [ -n "${REFERENCE_DIR}" ]; then
 
+      ALTERNATES="${FLAGS_trunk}/.repo/alternates"
+
+      # Ensure this directory exists ourselves, and has the correct ownership.
+      [ -d "${ALTERNATES}" ] || mkdir "${ALTERNATES}"
+      [ -w "${ALTERNATES}" ] || sudo chown -R "${USER}" "${ALTERNATES}"
+
+      unset ALTERNATES
+
       IFS=$'\n';
       required=( $( "${FLAGS_trunk}/chromite/lib/rewrite_git_alternates.py" \
         "${FLAGS_trunk}" "${REFERENCE_DIR}" "${CHROOT_TRUNK_DIR}" ) )