James Carlson wrote: > Roland Mainz writes: > > > SVN support in tools, yes. In ON build, "huh." > > > > Well, the whole ksh93-integration stuff is done via Subversion since the > > beginning. I did one attempt to do some work with Mercurial long ago, > > lost the work of two weeks because Mercurial ate parts of the tree and > > then we never tried it again until today... > > I don't think anyone is working on making ON's build system support > Subversion. It'd have limited utility as the gate itself is > Mercurial.
Right... but when we made the decision (AFAIK that was in April/May 2006) for Subversion Mercurial wasn't stable. And a later attempt to use Mercurial resulted in a ultimate worse case scenerio because hg ate parts of the tree (and destroyed two weeks of work). > > > In the mean time, "touch usr/src/tools/findunref/exception_list.svn" (or > > > whatever which_scm reports for Subversion) should get you by. > > > > It seems I am getting "unknown" in this case (somehow the use of > > Subversion isn't detected properly... ;-( ) and I would need a file > > called "usr/src/tools/findunref/exception_list.unknown". > > That's an interesting problem that needs some debugging in your > environment. What should be happening here is that the SCM_TYPE > variable should be set by the `nightly' script, and the findunref > Makefile uses this to figure out the right per-SCM exception_list.* > file. In the meantime I found the problem is simply that "usr/" is the base of our tree while "which_scm" expects that the root is one directory above that directory. Attached is a prototype patch ("which_scm_usr_base_patch001.diff.txt") which solves the issue (but it may be nice to do more cleanup, e.g. replace the "set --" usage with normal arrays (which is less error prone in this case, too). I can make a more complete patch for that on demand later...). ---- Bye, Roland -- __ . . __ (o.\ \/ /.o) roland.mainz at nrubsig.org \__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer /O /==\ O\ TEL +49 641 3992797 (;O/ \/ \O;) -------------- next part -------------- Index: src/tools/scripts/which_scm.sh =================================================================== --- src/tools/scripts/which_scm.sh (revision 1173) +++ src/tools/scripts/which_scm.sh (working copy) @@ -1,4 +1,4 @@ -#!/usr/bin/ksh -p +#!/usr/bin/ksh93 # # CDDL HEADER START # @@ -53,13 +53,15 @@ # Check for well-known tree-type source code management (SCM) systems. function primary_type { - typeset scmid + nameref scmid=$1 + + scmid="" - [ -d "$1/Codemgr_wsdata" ] && scmid="$scmid teamware" - [ -d "$1/.hg" ] && scmid="$scmid mercurial" - [ -d "$1/CVS" ] && scmid="$scmid cvs" - [ -d "$1/.svn" ] && scmid="$scmid subversion" - echo $scmid + [[ -d "$2/Codemgr_wsdata" || -d "$2/usr/Codemgr_wsdata" ]] && scmid+=" teamware" + [[ -d "$2/.hg" || -d "$2/usr/.hg" ]] && scmid+=" mercurial" + [[ -d "$2/CVS" || -d "$2/usr/CVS" ]] && scmid+=" cvs" + [[ -d "$2/.svn" || -d "$2/usr/.svn" ]] && scmid+=" subversion" + return 0 } if [[ -n "$CODEMGR_WS" ]]; then @@ -67,8 +69,8 @@ print -u2 "which_scm: $CODEMGR_WS is not a directory." exit 1 fi - set -- $(primary_type "$CODEMGR_WS") - if [[ $# != 1 ]]; then + set -- $(primary_type tmp "$CODEMGR_WS" ; print "$tmp") + if (( $# != 1 )) then set -- unknown fi echo "$1 $CODEMGR_WS" @@ -88,12 +90,12 @@ # Scan upwards looking for top of tree. DIR=$ORIG_CWD -CWD_TYPE=$(primary_type "$DIR") +primary_type CWD_TYPE "$DIR" SCM_TYPE= while [[ "$DIR" != / ]]; do - set -- $(primary_type "$DIR") - if [[ $# > 1 ]]; then - echo "unknown $ORIG_CWD" + set -- $(primary_type tmp "$DIR" ; print "$tmp") + if (( $# > 1 )); then + printf "unknown %s\n" "$ORIG_CWD" exit 0 fi SCM_TYPE="$1"