Advertisement
Guest User

git-import-dscs

a guest
Oct 19th, 2012
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.46 KB | None | 0 0
  1. #!/bin/sh
  2. # Author: Pali Rohár
  3. # License: GPLv3+
  4. # Description: Shell script for importing Debian source packages to git (using git import-dsc)
  5. set -e
  6. test ! -d .git && git init
  7. last=nothing
  8. while test "$#" != "0"; do
  9.     git branch -D upstream || true
  10.     git branch upstream || true
  11.     git import-dsc "$1"
  12.     DATE="$(dpkg-parsechangelog | sed -n 's/Date: //p')"
  13.     AUTHOR="$(dpkg-parsechangelog | sed -n 's/Maintainer: //p')"
  14.     again=0
  15.     if git show-branch upstream; then
  16.         c1="$(git show-branch --sha1-name master | sed -n 's/^\[\(.*\)\] .*/\1/p')"
  17.         c2="$(git show-branch --sha1-name upstream | sed -n 's/^\[\(.*\)\] .*/\1/p')"
  18.         if test "$c1" != "$c2" -a "$last" != "$c2"; then
  19.             again=1
  20.             git tag -d $(git tag --contains master)
  21.             git reset --hard upstream
  22.         fi
  23.         git branch -d upstream
  24.     fi
  25.     if git show-branch HEAD^ && ! test -d debian; then
  26.         git checkout HEAD^ -- debian || true
  27.         git add debian || true
  28.         TAGS="$(git tag --contains master)"
  29.         git tag -d $TAGS
  30.         EDITOR=true git commit --amend
  31.         for tag in $TAGS; do git tag $tag; done
  32.     fi
  33.     if ! test -z "$DATE" -o -z "$AUTHOR"; then
  34.         TAGS="$(git tag --contains master)"
  35.         git tag -d $TAGS
  36.         EDITOR=true git commit --amend --date="$DATE" --author="$AUTHOR"
  37.         for tag in $TAGS; do git tag $tag; done
  38.     fi
  39.     if test "$again" = "1"; then
  40.         git branch upstream
  41.         git import-dsc "$1"
  42.         git branch -d upstream
  43.     fi
  44.     last="$(git show-branch --sha1-name master | sed -n 's/^\[\(.*\)\] .*/\1/p')"
  45.     shift
  46. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement