diff options
author | Karel Kočí <cynerd@email.cz> | 2017-02-25 19:30:37 +0100 |
---|---|---|
committer | Karel Kočí <cynerd@email.cz> | 2017-02-25 19:30:37 +0100 |
commit | e7086db0959d70e51cb04d8821d6b8b13ebf8878 (patch) | |
tree | b7d86e619369d4286ec50c59a8074b3cb84cd373 /utils | |
parent | ff931f9bcdfb16ccb9ee0c6aa0085a5688e7d2cc (diff) | |
download | myconfigs-e7086db0959d70e51cb04d8821d6b8b13ebf8878.tar.gz myconfigs-e7086db0959d70e51cb04d8821d6b8b13ebf8878.tar.bz2 myconfigs-e7086db0959d70e51cb04d8821d6b8b13ebf8878.zip |
Update the way git repositories are handled
Diffstat (limited to 'utils')
-rw-r--r-- | utils/inst | 19 |
1 files changed, 14 insertions, 5 deletions
@@ -51,12 +51,21 @@ checkdiff() { fi done # Now checkout git repositories - for g in `find "$1" -name .git -type f -printf '%h '`; do + for g in `find "$1" -type d -exec test -e '{}'/.git \; -print -prune`; do G="${g#$1}" - COMMIT=$( cd "$1/$G" && git rev-parse HEAD ) - echo "Checkout of git repository: $2/$G" - # TODO this doesn't seems to work - ( cd "$2/$G" && git --work-tree=. checkout -f "$COMMIT" ) + PREV="$(pwd)" + cd "$2/$G" + # Check if we have any change at all + if git --work-tree=. diff --exit-code -s; then + echo "No difference detected in git: $2/$G" + else + echo "Checkout of git repository: $2/$G" + # Checkout all files to HEAD + git --work-tree=. checkout -f HEAD + # Update all submodules + git --work-tree=. submodule update + fi + cd "$PREV" done else dodiff "$1" "$2" |