OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Thomas Lotterer
Root: /e/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-re Date: 06-Mar-2003 22:15:55
Branch: HEAD Handle: 2003030621155500
Modified files:
openpkg-re openpkg-dev
Log:
partial but useful branch command implementation
Summary:
Revision Changes Path
1.57 +61 -0 openpkg-re/openpkg-dev
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-re/openpkg-dev
============================================================================
$ cvs diff -u -r1.56 -r1.57 openpkg-dev
--- openpkg-re/openpkg-dev 3 Mar 2003 10:46:29 -0000 1.56
+++ openpkg-re/openpkg-dev 6 Mar 2003 21:15:55 -0000 1.57
@@ -226,6 +226,7 @@
\$ openpkg-dev setup ..... already been done ;)
\$ openpkg-dev bash ...... enter development environment
\$ openpkg-dev update .... update development environment from master server
+ \$ openpkg-dev branch .... switch to a different branch
\$ openpkg-dev install ... install a package
\$ openpkg-dev list ...... list source and binary packages
\$ openpkg-dev diff ...... dry run "release"
@@ -245,6 +246,65 @@
)
}
+branch () {
+ anybin2branch $1
+ echo "++ branching to ${BRANCH}"
+ ( HOME=${OPENPKG_WORK}
+ export HOME
+ cvs update -r ${BRANCH}
+ )
+ echo "FIXME: please run \"cd .\" to update prompt"
+ echo "FIXME: still using ${OPENPKG_INST}, automatic instance selection not
implemented, yet"
+}
+
+# convert any (branch|instance|name) into branch and set ${BRANCH}
+#
+# Branch Instance Name
+# ------------------- ---------- --------
+# HEAD /cw CURRENT
+# OPENPKG_1_STABLE /cw1 1-STABLE
+# OPENPKG_1_2_SOLID /cw12 1.2
+# OPENPKG_1_1_SOLID /cw11 1.1
+# OPENPKG_1_0_SOLID /cw10 1.0
+#
+anybin2branch () {
+ # remove surrounding whitespaces, take first arg only, toupper
+ BRANCH=`echo $1 | cut -f 1 -d" " | tr '[a-z]' '[A-Z]'`
+
+ # strip off any abbreviated form of a leading OPENPKG_
+ BRANCH=`echo "${BRANCH}" | sed -e
's;^O\{0,1\}P\{0,1\}E\{0,1\}N\{0,1\}P\{0,1\}K\{0,1\}G\{0,1\}_\{0,1\};;'`
+
+ # transform instance into branch
+ BRANCH=`echo "${BRANCH}" | sed -e 's;^/[A-Z]\{1,\}$;HEAD;' -e
's;^/[A-Z]\{1,\}\([1-9]\);\1_;'`
+
+ # replace dots from (SOLID name) and dashes (STABLE name) with underscore for
convenience
+ BRANCH=`echo "${BRANCH}" | sed -e 's;[\.-];_;g'`
+
+ # check for HEAD (branch) aka CURRENT (name)
+ echo "CURRENT" | egrep -q "^${BRANCH}" && BRANCH="HEAD"
+ echo "HEAD" | egrep -q "^${BRANCH}" && BRANCH="HEAD"
+
+ if [ .${BRANCH} != ".HEAD" ]; then
+
+ # extract branchpoint (1, 1_1 ...) and optional direction
+ BRANBP=`echo "${BRANCH}" | sed -e
's;^\([1-9][0-9]*\(_\{0,1\}[0-9]*\)\)\(.*\)$;\1;' -e 's;_*$;;'`
+ BRANDR=`echo "${BRANCH}" | sed -e
's;^\([1-9][0-9]*\(_\{0,1\}[0-9]*\)\)\(.*\)$;\3;' -e 's;^_*;;'`
+
+ # select direction, check optional direction
+ echo ${BRANBP} | grep -q '_'
+ if [ $? = 0 ]; then
+ BRANCH="OPENPKG_${BRANBP}_SOLID"
+ echo "SOLID" | egrep -q "^${BRANDR}" || die "automatic (SOLID) vs.
manual (${BRANDR}) direction mismatch"
+ else
+ BRANCH="OPENPKG_${BRANBP}_STABLE"
+ echo "STABLE" | egrep -q "^${BRANDR}" || die "automatic (STABLE) vs.
manual (${BRANDR}) direction mismatch"
+ fi
+
+ unset BRANBP
+ unset BRANDR
+ fi
+}
+
bash () {
cd ${OPENPKG_WORK} || die "cannot cd to ${OPENPKG_WORK}"
@@ -724,6 +784,7 @@
case ${cmd} in
setup | s* ) cmd="setup" ;;
update | u* ) cmd="update" ;;
+ branch | br* ) cmd="branch" ;;
bash | b* ) cmd="bash" ;;
list | l* ) cmd="list" ;;
diff | d* ) cmd="diff" ;;
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [EMAIL PROTECTED]