Guys,
Trying to sort out my git issues, I have been picking through
switch_all_submodules_to_head_and_clean. I cannot understand what the purpose of
the line:
git submodule foreach "$THISSCRIPT $gituser"
That line causes git to step through each of its submodules and call:
"switch_all_submodules_to_head_and_clean <gitUser>"
Why? The script has already done everything at least once before? Dissecting
the script it does:
git reset --hard HEAD
git clean -dxf
git pull
git reset --hard HEAD
git clean -dxf
sed -i "s/system@/$gituser@/g" .gitmodules # or 's/system@//g'
git submodule init
git submodule update
git submodule foreach "git checkout master"
git submodule foreach "git pull"
then it does:
git submodule foreach "$THISSCRIPT $gituser"
Which causes this script to be run all over again on each submodule... I have
changed this version of my script as follows and it seems to run on each
submodule anyway:
git reset --hard HEAD
git clean -dxf
git pull
git reset --hard HEAD
git clean -dxf
sed -i "s/system@/$gituser@/g" .gitmodules # or 's/system@//g'
git submodule init
git submodule update --recursive
git submodule foreach --recursive "git checkout master"
git submodule foreach --recursive "git pull"
git pull gets everything:
16:32 archangel:/dat_f/tde/git> git pull
remote: Counting objects: 14, done
remote: Finding sources: 100% (12/12)
remote: Total 12 (delta 8), reused 12 (delta 8)
Unpacking objects: 100% (12/12), done.
From
http://scm.trinitydesktop.org/scm/git/tde
bf1ed1c..3f21128 master -> origin/master
Fetching submodule main/tdegraphics
remote: Counting objects: 928, done
remote: Finding sources: 100% (467/467)
remote: Total 467 (delta 462), reused 467 (delta 462)
Receiving objects: 100% (467/467), 35.02 KiB, done.
Resolving deltas: 100% (462/462), completed with 455 local objects.
<snip>
git submodule init inits everything:
16:33 archangel:/dat_f/tde/git> git submodule init
Submodule 'experimental' () registered for path 'experimental'
Submodule 'main/applications/abakus' () registered for path
'main/applications/abakus'
Submodule 'main/applications/adept' () registered for path
'main/applications/adept'
<snip>
git submodule update --recursive updates everything:
16:34 archangel:/dat_f/tde/git> git submodule update --recursive
Submodule path 'main/applications/abakus': checked out
'af16f2796aed9a860d405ba77193bf4b9b90c21e'
Submodule path 'main/applications/kio-locate': checked out
'7415e07f61682107169f11e79cc0c8e50fb409a2'
<snip>
git submodule foreach --recursive "git checkout master" checks it all out:
16:35 archangel:/dat_f/tde/git> git submodule foreach --recursive "git checkout
master"
Entering 'experimental'
Already on 'master'
Entering 'main/applications/abakus'
Already on 'master'
<snip>
Entering 'main/applications/kio-locate'
Previous HEAD position was 7415e07... Remove spurious TQ_OBJECT instances
Switched to branch 'master'
Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
Entering 'main/applications/kio-locate/cmake'
Already on 'master'
<snip>
git submodule foreach --recursive "git pull" pulls everything:
16:35 archangel:/dat_f/tde/git> git submodule foreach --recursive "git pull"
Entering 'experimental'
Already up-to-date.
Entering 'main/applications/abakus'
remote: Counting objects: 17, done
remote: Finding sources: 100% (9/9)
remote: Total 9 (delta 8), reused 9 (delta 8)
Unpacking objects: 100% (9/9), done.
From
http://scm.trinitydesktop.org/scm/git/abakus
af16f27..45794e3 master -> origin/master
Updating af16f27..45794e3
Fast-forward
src/abakuslistview.h | 6 +++---
src/editor.h | 4 ++--
src/function.h | 2 +-
src/mainwindow.h | 2 +-
src/resultlistview.h | 2 +-
src/valuemanager.h | 2 +-
6 files changed, 9 insertions(+), 9 deletions(-)
Entering 'main/applications/abakus/admin'
Already up-to-date.
Entering 'main/applications/abakus/cmake'
Already up-to-date.
<snip>
Why step through the modules doing it all over again? On my box, it just
crashes with the error:
"This script can only be run from a top level git directory. Exiting..."
What say the experts?
--
David C. Rankin, J.D.,P.E.