Blob Blame History Raw
#!/bin/bash -e
set -x
pkg=$1
if [[ -z "$pkg" ]] ; then
    echo "usage: $0 PKG"
fi
first=$(echo $pkg | cut -c1)
p=$(echo packages/$first*/$pkg)
b=pkg_$pkg
if [ -e $p/.git ] ; then
    echo "$pkg already has a git repo"
    if ! [ -e ~/openSUSE/$p/.git ] ; then
        cp -al $p/.git ~/openSUSE/$p
    fi
    ( cd $p ; git push -u origin master)
    exit 0
fi
git branch -D $b || :
git subtree split --prefix=$p -b $b
loglines=$(git log $b |wc -l)
if [ $loglines -gt 400000 ] ; then
  echo bad split... aborting!
  exit 1
fi
pushd $p
git init
git remote add merged "../../.."
git remote add origin https://code.opensuse.org/package/$pkg
git fetch merged $b
git reset --hard FETCH_HEAD
if ! git fetch origin ; then
    (cd ../../../ && scripts/pagure-new-package $pkg)
fi
git push -u origin master
popd
scripts/pagure-set-projectoptions $pkg
git branch -D $b
cp -al $p/.git ~/openSUSE/$p
rm -rf .git/subtree-cache
git pull --rebase prod master