sync.sh 611 B

12345678910111213141516171819
  1. #! /bin/bash
  2. set -euo pipefail
  3. cd "$(git rev-parse --show-toplevel)"
  4. STD_PATH=src/crypto/ed25519/internal/edwards25519/field
  5. LOCAL_PATH=curve25519/internal/field
  6. LAST_SYNC_REF=$(cat $LOCAL_PATH/sync.checkpoint)
  7. git fetch https://go.googlesource.com/go master
  8. if git diff --quiet $LAST_SYNC_REF:$STD_PATH FETCH_HEAD:$STD_PATH; then
  9. echo "No changes."
  10. else
  11. NEW_REF=$(git rev-parse FETCH_HEAD | tee $LOCAL_PATH/sync.checkpoint)
  12. echo "Applying changes from $LAST_SYNC_REF to $NEW_REF..."
  13. git diff $LAST_SYNC_REF:$STD_PATH FETCH_HEAD:$STD_PATH | \
  14. git apply -3 --directory=$LOCAL_PATH
  15. fi