I added the second part because the preindex repo was never cloned so it failed the first time you ran fab preindex_views

and I removed git submodule init from clone_repo because it's already in update_code() so it seemed redundant.

There's other with cd()'s here so at least it doesn't add any new failure mode?

Should I always be using user=env.sudo_user when I call sudo()?