mirror of
https://gitlab.com/xonotic/xonotic
synced 2025-02-21 13:06:52 +00:00
new save/restore branches commands
This commit is contained in:
parent
2a8628fbe7
commit
9c65237846
106
all
106
all
@ -101,7 +101,7 @@ check_mergeconflict()
|
||||
|
||||
enter()
|
||||
{
|
||||
verbose cd "$1"
|
||||
$2 cd "$1"
|
||||
check_mergeconflict "$1"
|
||||
}
|
||||
|
||||
@ -143,7 +143,7 @@ case "$cmd" in
|
||||
;;
|
||||
esac
|
||||
if [ -d "$d0/$d" ]; then
|
||||
enter "$d0/$d"
|
||||
enter "$d0/$d" verbose
|
||||
case "$d" in
|
||||
.)
|
||||
;;
|
||||
@ -183,7 +183,7 @@ case "$cmd" in
|
||||
fi
|
||||
exists=false
|
||||
for d in $repos; do
|
||||
enter "$d0/$d"
|
||||
enter "$d0/$d" verbose
|
||||
if git rev-parse "refs/heads/$branch" >/dev/null 2>&1; then
|
||||
exists=true
|
||||
verbose git checkout "$branch"
|
||||
@ -224,7 +224,7 @@ case "$cmd" in
|
||||
else
|
||||
for d in $repos; do
|
||||
dv=`visible_repo_name "$d"`
|
||||
enter "$d0/$d"
|
||||
enter "$d0/$d" verbose
|
||||
a=
|
||||
while [ x"$a" != x"y" -a x"$a" != x"n" ]; do
|
||||
echo "Branch in $dv?"
|
||||
@ -243,14 +243,35 @@ case "$cmd" in
|
||||
for d in $repos; do
|
||||
enter "$d0/$d"
|
||||
echo "In $d:"
|
||||
git branch -a | sed 's/^/ /; /->/d'
|
||||
cd "$d0"
|
||||
git branch -a -v -v | cut -c 3- | while read -r BRANCH REV UPSTREAM TEXT; do
|
||||
case "$UPSTREAM" in
|
||||
\[*)
|
||||
UPSTREAM=${UPSTREAM#\[}
|
||||
UPSTREAM=${UPSTREAM%\]}
|
||||
UPSTREAM=${UPSTREAM%:*}
|
||||
;;
|
||||
*)
|
||||
TEXT="$UPSTREAM $TEXT"
|
||||
UPSTREAM=
|
||||
;;
|
||||
esac
|
||||
if [ x"$REV" = x"->" ]; then
|
||||
continue
|
||||
fi
|
||||
BRANCH=${BRANCH#remotes/}
|
||||
echo -n " $BRANCH"
|
||||
if [ -n "$UPSTREAM" ]; then
|
||||
echo -n " (tracking $UPSTREAM)"
|
||||
fi
|
||||
#echo " $TEXT"
|
||||
echo
|
||||
done
|
||||
done
|
||||
;;
|
||||
merge)
|
||||
for d in $repos; do
|
||||
dv=`visible_repo_name "$d"`
|
||||
enter "$d0/$d"
|
||||
enter "$d0/$d" verbose
|
||||
r=`git symbolic-ref HEAD`
|
||||
r=${r#refs/heads/}
|
||||
if git log HEAD..origin/master | grep .; then
|
||||
@ -273,7 +294,7 @@ case "$cmd" in
|
||||
push|commit)
|
||||
for d in $repos; do
|
||||
dv=`visible_repo_name "$d"`
|
||||
enter "$d0/$d"
|
||||
enter "$d0/$d" verbose
|
||||
r=`git symbolic-ref HEAD`
|
||||
r=${r#refs/heads/}
|
||||
if git diff HEAD | grep .; then
|
||||
@ -309,11 +330,11 @@ case "$cmd" in
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
enter "$d0/fteqcc"
|
||||
enter "$d0/fteqcc" verbose
|
||||
verbose make $MAKEFLAGS
|
||||
enter "$d0/data/xonotic-data.pk3dir"
|
||||
enter "$d0/data/xonotic-data.pk3dir" verbose
|
||||
verbose make FTEQCC="$d0/fteqcc/fteqcc.bin" $MAKEFLAGS
|
||||
enter "$d0/darkplaces"
|
||||
enter "$d0/darkplaces" verbose
|
||||
verbose make $MAKEFLAGS sv-debug
|
||||
verbose make $MAKEFLAGS cl-debug
|
||||
verbose make $MAKEFLAGS sdl-debug
|
||||
@ -343,11 +364,72 @@ case "$cmd" in
|
||||
;;
|
||||
each|foreach)
|
||||
for d in $repos; do
|
||||
enter "$d0/$d"
|
||||
enter "$d0/$d" verbose
|
||||
verbose "$@"
|
||||
cd "$d0"
|
||||
done
|
||||
;;
|
||||
save-patches)
|
||||
outfile=$1
|
||||
patchdir=`mktemp -d -t save-patches.XXXXXX`
|
||||
for d in $repos; do
|
||||
enter "$d0/$d" verbose
|
||||
git branch -v -v | cut -c 3- | {
|
||||
i=0
|
||||
while read -r BRANCH REV UPSTREAM TEXT; do
|
||||
case "$UPSTREAM" in
|
||||
\[*)
|
||||
UPSTREAM=${UPSTREAM#\[}
|
||||
UPSTREAM=${UPSTREAM%\]}
|
||||
UPSTREAM=${UPSTREAM%:*}
|
||||
TRACK=true
|
||||
;;
|
||||
*)
|
||||
UPSTREAM=origin/master
|
||||
TRACK=false
|
||||
;;
|
||||
esac
|
||||
if [ x"$REV" = x"->" ]; then
|
||||
continue
|
||||
fi
|
||||
if git format-patch -o "$patchdir/$i" "$UPSTREAM".."$BRANCH" | grep .; then
|
||||
echo "$d" > "$patchdir/$i/info.txt"
|
||||
echo "$BRANCH" > "$patchdir/$i/info.txt"
|
||||
echo "$UPSTREAM" >> "$patchdir/$i/info.txt"
|
||||
echo "$TRACK" >> "$patchdir/$i/info.txt"
|
||||
i=$(($i+1))
|
||||
else
|
||||
rm -rf "$patchdir/$i"
|
||||
fi
|
||||
done
|
||||
}
|
||||
done
|
||||
( cd "$patchdir" && tar cvzf - . ) > "$outfile"
|
||||
rm -rf "$patchdir"
|
||||
;;
|
||||
restore-patches)
|
||||
infile=$1
|
||||
patchdir=`mktemp -d -t restore-patches.XXXXXX`
|
||||
( cd "$patchdir" && tar xvzf - ) < "$infile"
|
||||
# detach the head
|
||||
for P in "$patchdir"/*/info.txt; do
|
||||
D=${P%/info.txt}
|
||||
exec 3<"$P"
|
||||
read -r d <&3
|
||||
read -r BRANCH <&3
|
||||
read -r UPSTREAM <&3
|
||||
read -r TRACK <&3
|
||||
verbose git checkout HEAD^0
|
||||
verbose git branch -D "$BRANCH"
|
||||
if [ x"$TRACK" = x"true" ]; then
|
||||
verbose git checkout --track -b "$BRANCH" "$UPSTREAM"
|
||||
else
|
||||
verbose git branch -b "$BRANCH" "$UPSTREAM"
|
||||
fi
|
||||
verbose git am "$D"
|
||||
done
|
||||
rm -rf "$patchdir"
|
||||
;;
|
||||
*)
|
||||
echo "Usage:"
|
||||
echo " $SELF pull"
|
||||
|
Loading…
Reference in New Issue
Block a user