Merge branch 'jc/submodule-sync-no-auto-vivify'
* jc/submodule-sync-no-auto-vivify: submodule add: always initialize .git/config entry submodule sync: do not auto-vivify uninteresting submodule Conflicts: git-submodule.sh
This commit is contained in:
commit
0591c0a5be
@ -167,7 +167,9 @@ commit for each submodule.
|
||||
|
||||
sync::
|
||||
Synchronizes submodules' remote URL configuration setting
|
||||
to the value specified in .gitmodules. This is useful when
|
||||
to the value specified in .gitmodules. It will only affect those
|
||||
submodules which already have an url entry in .git/config (that is the
|
||||
case when they are initialized or freshly added). This is useful when
|
||||
submodule URLs change upstream and you need to update your local
|
||||
repositories accordingly.
|
||||
+
|
||||
|
@ -250,7 +250,6 @@ Use -f if you really want to add it." &&
|
||||
url="$repo"
|
||||
;;
|
||||
esac
|
||||
git config submodule."$path".url "$url"
|
||||
else
|
||||
|
||||
module_clone "$path" "$realrepo" "$reference" || exit
|
||||
@ -264,6 +263,7 @@ Use -f if you really want to add it." &&
|
||||
esac
|
||||
) || die "$(eval_gettext "Unable to checkout submodule '\$path'")"
|
||||
fi
|
||||
git config submodule."$path".url "$url"
|
||||
|
||||
git add $force "$path" ||
|
||||
die "$(eval_gettext "Failed to add submodule '\$path'")"
|
||||
@ -363,9 +363,8 @@ cmd_init()
|
||||
do
|
||||
# Skip already registered paths
|
||||
name=$(module_name "$path") || exit
|
||||
url=$(git config submodule."$name".url)
|
||||
test -z "$url" || continue
|
||||
|
||||
if test -z "$(git config "submodule.$name.url")"
|
||||
then
|
||||
url=$(git config -f .gitmodules submodule."$name".url)
|
||||
test -z "$url" &&
|
||||
die "$(eval_gettext "No url found for submodule path '\$path' in .gitmodules")"
|
||||
@ -376,12 +375,14 @@ cmd_init()
|
||||
url=$(resolve_relative_url "$url") || exit
|
||||
;;
|
||||
esac
|
||||
|
||||
git config submodule."$name".url "$url" ||
|
||||
die "$(eval_gettext "Failed to register url for submodule path '\$path'")"
|
||||
fi
|
||||
|
||||
# Copy "update" setting when it is not set yet
|
||||
upd="$(git config -f .gitmodules submodule."$name".update)"
|
||||
test -z "$upd" ||
|
||||
test -n "$(git config submodule."$name".update)" ||
|
||||
git config submodule."$name".update "$upd" ||
|
||||
die "$(eval_gettext "Failed to register update mode for submodule path '\$path'")"
|
||||
|
||||
@ -925,6 +926,8 @@ cmd_sync()
|
||||
;;
|
||||
esac
|
||||
|
||||
if git config "submodule.$name.url" >/dev/null 2>/dev/null
|
||||
then
|
||||
say "$(eval_gettext "Synchronizing submodule url for '\$name'")"
|
||||
git config submodule."$name".url "$url"
|
||||
|
||||
@ -937,6 +940,7 @@ cmd_sync()
|
||||
git config remote."$remote".url "$url"
|
||||
)
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
@ -25,7 +25,8 @@ test_expect_success setup '
|
||||
git clone super super-clone &&
|
||||
(cd super-clone && git submodule update --init) &&
|
||||
git clone super empty-clone &&
|
||||
(cd empty-clone && git submodule init)
|
||||
(cd empty-clone && git submodule init) &&
|
||||
git clone super top-only-clone
|
||||
'
|
||||
|
||||
test_expect_success 'change submodule' '
|
||||
@ -66,7 +67,7 @@ test_expect_success '"git submodule sync" should update submodule URLs' '
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success '"git submodule sync" should update submodule URLs if not yet cloned' '
|
||||
test_expect_success '"git submodule sync" should update known submodule URLs' '
|
||||
(cd empty-clone &&
|
||||
git pull &&
|
||||
git submodule sync &&
|
||||
@ -74,4 +75,14 @@ test_expect_success '"git submodule sync" should update submodule URLs if not ye
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success '"git submodule sync" should not vivify uninteresting submodule' '
|
||||
(cd top-only-clone &&
|
||||
git pull &&
|
||||
git submodule sync &&
|
||||
test -z "$(git config submodule.submodule.url)" &&
|
||||
git submodule sync submodule &&
|
||||
test -z "$(git config submodule.submodule.url)"
|
||||
)
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user