Write safe.directory items to system git config

This is necessary for more consistent behavior across multiple
distro versions. Apparently somewhere along the way, git started
looking at the current user's home directory instead of $HOME.

Related-Bug: https://bugs.launchpad.net/devstack/+bug/1968798

 Conflicts:
       unstack.sh

Change-Id: I941ef5ea90970a0901236afe81c551aaf24ac1d8
(cherry picked from commit 4baeb3b51f)
(cherry picked from commit 9616d22938)
(cherry picked from commit d86f23b153)
(cherry picked from commit ea636e0a92)
This commit is contained in:
Dan Smith 2022-04-13 13:44:07 -07:00 committed by Ghanshyam Mann
parent 9c399a865d
commit 06c5cb0adc
2 changed files with 11 additions and 1 deletions

View File

@ -594,8 +594,13 @@ function git_clone {
# about how we clone and work with repos. Mark them safe globally
# as a work-around.
#
# NOTE(danms): On bionic (and likely others) git-config may write
# ~stackuser/.gitconfig if not run with sudo -H. Using --system
# writes these changes to /etc/gitconfig which is more
# discoverable anyway.
#
# [1] https://github.com/git/git/commit/8959555cee7ec045958f9b6dd62e541affb7e7d9
sudo git config --global --add safe.directory ${git_dest}
sudo git config --system --add safe.directory ${git_dest}
# print out the results so we know what change was used in the logs
cd $git_dest

View File

@ -184,3 +184,8 @@ if is_service_enabled cinder && is_package_installed lvm2; then
fi
clean_pyc_files
# Clean any safe.directory items we wrote into the global
# gitconfig. We can identify the relevant ones by checking that they
# point to somewhere in our $DEST directory.
sudo sed -i "/directory=${DEST}/ d" /etc/gitconfig