From f38abb90571e723debb5e25282166025b5c7724b Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Thu, 19 Feb 2026 10:47:26 +0100 Subject: [PATCH] pgit.sh clone: Merge code path "from-user == login" The cases from-user == login and from-user != login have different code paths and can be streamlined somewhat, so do that. Signed-off-by: Jan Lindemann --- scripts/pgit.sh | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/scripts/pgit.sh b/scripts/pgit.sh index f42378be..d6bf5cd0 100644 --- a/scripts/pgit.sh +++ b/scripts/pgit.sh @@ -179,29 +179,22 @@ cmd_clone() local pushurl=$remote_base/$login$remote_subpath/$project_name local curref="" fat_marker "Fetching project $project_name from user $fromuser" - if [ "$fromuser" = "$login" ]; then - if [ -d $project_dir ]; then - run_git -C $project_dir pull --recurse-submodules=on-demand - run_git -C $project_dir submodule foreach --recursive 'git fetch --tags -f origin' - else - run_clone $remote_base/$fromuser$remote_subpath/$project_name $project_dir + local remotename="jw-$fromuser" + [ "$fromuser" = "$login" ] && remotename="origin" + if [ -d $project_dir ]; then + run_git -C $project_dir remote | grep -q "^$remotename$" || { + run_git -C $project_dir remote add $remotename $pullurl + [ "$fromuser" = "$login" ] || run_git -C $project_dir remote set-url --push $remotename no_push + } + run_git -C $project_dir fetch --prune --recurse-submodules=on-demand $remotename $fromref + run_git -C $project_dir submodule foreach --recursive 'git fetch --tags -f origin' + if [ "$toref" ]; then + run_git -C $project_dir rebase --autostash $remotename/$fromref $toref + run_git -C $project_dir merge --ff-only $remotename/$fromref $toref fi else - local remotename="jw-$fromuser" - if [ -d $project_dir ]; then - run_git -C $project_dir remote | grep -q "^$remotename$" || { - run_git -C $project_dir remote add $remotename $pullurl - run_git -C $project_dir remote set-url --push $remotename no_push - } - run_git -C $project_dir fetch --prune --recurse-submodules=on-demand $remotename $fromref - run_git -C $project_dir submodule foreach --recursive 'git fetch --tags -f origin' - if [ "$toref" ]; then - run_git -C $project_dir rebase --autostash $remotename/$fromref $toref - run_git -C $project_dir merge --ff-only $remotename/$fromref $toref - fi - else - # set -x - run_clone $remote_base/$fromuser$remote_subpath/$project_name $project_dir + run_clone $remote_base/$fromuser$remote_subpath/$project_name $project_dir + if [ "$fromuser" != "$login" ]; then run_git -C $project_dir remote rename origin $remotename || fatal "Failed to rename remote in $project_dir" run_git -C $project_dir remote set-url --push $remotename no_push if [ $create_remote_user_repos = true ]; then