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}" ) )