[oe-commits] Darren Hart : create-pull-request: generalize the repository URL parsing
git version control
git at git.openembedded.org
Wed May 25 14:50:18 UTC 2011
Module: openembedded-core.git
Branch: master
Commit: 861c288e353e917374de938c4e5e927e116cd56c
URL: http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=861c288e353e917374de938c4e5e927e116cd56c
Author: Darren Hart <dvhart at linux.intel.com>
Date: Mon May 23 10:21:53 2011 -0700
create-pull-request: generalize the repository URL parsing
The existing REMOTE_URL and REMOTE_REPO parsing made assumptions regarding
the git URL format used for the known repository types. In fact, both of
these ssh URL formats are valid for all the known repositories. Specifically:
ssh://git@server/repository/path
git at server:repository/path
Generalize the parsing to work with each of these for all push URLs matching
*@*. Tested with the following URLs:
ssh://git@git.pokylinux.org/poky-contrib
ssh://git@git.pokylinux.org/poky-contrib.git
git at git.pokylinux.org:poky-contrib
git at git.pokylinux.org:poky-contrib.git
Signed-off-by: Darren Hart <dvhart at linux.intel.com>
---
scripts/create-pull-request | 29 ++++++++++++-----------------
1 files changed, 12 insertions(+), 17 deletions(-)
diff --git a/scripts/create-pull-request b/scripts/create-pull-request
index b808146..19b640f 100755
--- a/scripts/create-pull-request
+++ b/scripts/create-pull-request
@@ -97,28 +97,22 @@ while getopts "b:chi:m:o:p:r:s:u:" OPT; do
exit 1
fi
- # Rewrite known private URLs to public URLs
+ # Rewrite private URLs to public URLs
# Determine the repository name for use in the WEB_URL later
case "$REMOTE_URL" in
- ssh://git@git.pokylinux.org*)
- REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#")
- REMOTE_URL=${REMOTE_URL/'ssh://git@'/'git://'}
+ *@*)
+ USER_RE="[A-Za-z0-9_.@][A-Za-z0-9_. at -]*\$\?"
+ PROTO_RE="[a-z][a-z]*://"
+ GIT_RE="\(^\($PROTO_RE\)\?$USER_RE@\)\([^:/]*\)[:/]\(.*\)"
+ REMOTE_URL=${REMOTE_URL%.git}
+ REMOTE_REPO=$(echo $REMOTE_URL | sed "s#$GIT_RE#\4#")
+ REMOTE_URL=$(echo $REMOTE_URL | sed "s#$GIT_RE#git://\3/\4#")
;;
- ssh://git@git.yoctoproject.org*)
- REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#")
- REMOTE_URL=${REMOTE_URL/"ssh://git@"/"git://"}
- ;;
- *ssh://git@git.openembedded.org*)
- REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#")
- REMOTE_URL=${REMOTE_URL/"ssh://git@"/"git://"}
- ;;
- git at github.com:*)
- REMOTE_REPO=$(echo $REMOTE_URL | sed 's#.*:\(.*\)\(\.git\)$#\1#')
- REMOTE_URL=${REMOTE_URL/"git at github.com:"/"git://github.com/"}
+ *)
+ echo "WARNING: Unrecognized remote URL: $REMOTE_URL"
+ echo " The pull and browse URLs will likely be incorrect"
;;
esac
- # The .git suffix is optional in the URL, drop in for the REPO
- REMOTE_REPO=${REMOTE_REPO%.git}
;;
esac
done
@@ -134,6 +128,7 @@ fi
# Set WEB_URL from known remotes
+WEB_URL=""
case "$REMOTE_URL" in
*git.yoctoproject.org*)
WEB_URL="http://git.yoctoproject.org/cgit.cgi/$REMOTE_REPO/log/?h=$BRANCH"
More information about the Openembedded-commits
mailing list