Fix: git_safe() korrigiert Eigentümer automatisch bei User-Wechsel
chown -R nur wenn APP_DIR nicht dem APP_USER gehört, sonst nur .git. Verhindert "Your local changes would be overwritten" nach root-Läufen. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>main v1.1.312
parent
b107e9a580
commit
a119686bfa
|
|
@ -68,11 +68,18 @@ artisan_up(){
|
|||
git_safe(){
|
||||
# System-Level safe.directory (root schreibt /etc/gitconfig → gilt für alle User)
|
||||
git config --system --add safe.directory "${APP_DIR}" >/dev/null 2>&1 || true
|
||||
# User-Level als Fallback
|
||||
# Wenn APP_DIR einem anderen User gehört (z.B. nach User-Wechsel mailwolt→www-data),
|
||||
# kompletten Baum neu besitzen — nur wenn nötig (einmalig teuer, danach billig)
|
||||
local dir_owner
|
||||
dir_owner="$(stat -c '%U' "${APP_DIR}" 2>/dev/null || echo '')"
|
||||
if [[ -n "${dir_owner}" && "${dir_owner}" != "${APP_USER}" ]]; then
|
||||
echo "[i] Eigentümer-Korrektur: ${APP_DIR} → ${APP_USER} (war: ${dir_owner})"
|
||||
chown -R "${APP_USER}":"${APP_GROUP}" "${APP_DIR}" 2>/dev/null || true
|
||||
else
|
||||
# Nur .git sicherstellen (schnell)
|
||||
chown -R "${APP_USER}":"${APP_GROUP}" "${APP_DIR}/.git" 2>/dev/null || true
|
||||
fi
|
||||
as_app "git config --global --add safe.directory ${APP_DIR} >/dev/null 2>&1 || true"
|
||||
# .git vollständig + APP_DIR-Eintrag dem APP_USER gehören
|
||||
chown "${APP_USER}":"${APP_GROUP}" "${APP_DIR}" 2>/dev/null || true
|
||||
chown -R "${APP_USER}":"${APP_GROUP}" "${APP_DIR}/.git" 2>/dev/null || true
|
||||
}
|
||||
|
||||
git_dirty_check(){
|
||||
|
|
|
|||
Loading…
Reference in New Issue