Dan:
Thanks for your comments.
> > >>function detect_scm
> > >>{
> > >> #
> > >> # The presence of $CODEMGR_WS and a Codemgr_wsdata
> directory> >> # is our clue that this is a teamware workspace.
> > >> #
> > >> if [[ -n $CODEMGR_WS && -d "$CODEMGR_WS/Codemgr_wsdata"
> ]]; then
> > >>
> > >
> > >Wouldn't the output of workspace name be more appropriate here?
> > >
> > I am not sure what you meant?
> > output the workspace name?
Please forgive me,still not sure.
You meant like this?
if [[ -n `workspace name` && -d "`workspace name`/Codemgr_wsdata" ]]; then
>
> > I made a test,the time take almost the same for "hg locate" and
> "hg manifest"
> > in the directory of "hg root",see below.
> > ######### hg locate "glob:$dir/**/${pat#s.}" #########
> > # time flg.flp -r
> > ......
> > real 3m38.654s
> > user 2m41.522s
> > sys 0m24.115s
> >
> > ######### hg manifest | grep "^$dir/.*/${pat#s.}\$" #######
> > # time flg.flp -r
> > ......
> > real 10m11.090s
> > user 8m2.345s
> > sys 0m45.250s
>
I think I was wrong for the time computation,actually
hg locate "glob:$dir/**/${pat#s.}"
can only search in the 2nd or more directories,and it will lose $dir single
one.So the results is unfair.Maybe it should be "hg locate
're:$dir/.*/*.${pat#s.}'",but it take much longer time.
I think the "grep" take some time in "hg manifest" case.Then actually it took
about 5 minutes for "hg manifest" in my GX270.There was a mistake to compute
the former one because of my typo.
>
> Hm. The command is run multiple times. I'd probably just find a
> way to
> not have to do that. Something like
>
> for dir; do
> dirs="$dirs|$dir"
> done
> dirs=${dirs#|}
> hg manifest | egrep "^($dirs)/.*/${pat#s.}\$"
>
> or something like that. I dunno if that'd actually do what needs
> to happen
> there.
Yes, it is faster.
Here is a time running:
# pwd
$SRC/uts
# time flg.flp -r
real 1m43.533s
user 1m37.697s
sys 0m8.441s
It is running in my x4200, 2 times faster than before.
And takes about 3 minutes in my DELL GX270.
real 2m57.556s
user 2m33.094s
sys 0m12.130s
Could we use "echo" to take the place "hg manifest".In my test,"echo" often
faster than "hg manifest" a little bit.
>
> > >> while read srcfile; do
> > >> if [ "$RELPATHS" != y -o $CURTREE = $codemgr_ws ]; then
> > >
> > >Why the change of adding "-o $CURTREE = $codemgr_ws"?
> > >
> > This is because when I run "flg.flp -r" at $CODEMGR_WS($CURTREE
> is
> > $CODEMGR_WS),
>
> So this is a pre-existing bug?
>
Yes,I think so.
If I run "flg.flp -r" in $CODEMGR_WS,it will be stopless to compute relative
path.
Thanks
Jason