Hi Jason,
        Sorry - I was on vacation for the past month; I think I understand what 
you mean now... you want to cache the output of 'hg manifest' and just 
parse it later repeatedly.  That seems fine to me.

cheers,
steve

Jason Zhao wrote:
> Hi,Steve and Dan:
> 
> Stephen Lau wrote:
>> Hi Jason,
>>
>>>> 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.
>>
>> I'm not sure I understand what you mean here by replace "hg manifest" 
>> with "echo"?
> It just replaced "hg manifest" with "echo",
> 1.put "FILELIST=`hg manifest`" once to setup a snapshot when it is 
> "mercurial",E.g
> 
> SCM_MODE=`detect_scm`
> ......
> if [[ $SCM_MODE == "unknown" ]];then
> ......
> elif [ "$SCM_MODE" = "mercurial" ]; then
>        codemgr_ws=`hg root 2>/dev/null`
>        FILELIST=`hg manifest`    <---------------   put all "hg 
> manifest" result to FILELIST variable at the beginning of "mercurial 
> judgement"
> else
>        fail "No available SCM found"
> fi
> 
> 
> 2.then when try to "egrep " from the $FILELIST.E.g:
>   for dir; do
>       dirs="$dirs|$dir"
>   done
>   dirs=${dirs#|}
>   echo "$FILELIST" | egrep "^($dirs)/.*/${pat#s.}\$"    
> <-------------------        Here,original one is 'hg manifest | egrep 
> "^($dirs)/.*/${pat#s.}\$" '
> 
> In my test,"echo $FILELIST" is a little bit faster than "hg manifest" in 
> my x4200 with the same "flg.flp -r" report.
> ############   with echo "$FILELIST" | egrep "^($dirs)/.*/${pat#s.}\$"  
> ##############
> [root at sol-x4200-3]#time flg.flp -r
> 
> real    0m55.189s
> user    0m46.166s
> sys     0m11.712s
> ##########################################################################
> 
> 
> ############   with "hg manifest |   | egrep "^($dirs)/.*/${pat#s.}\$" 
> ##################
> [root at sol-x4200-3]#time flg.flp -r
> 
> real    1m43.686s
> user    1m37.640s
> sys     0m8.640s
> ##########################################################################
> 
> 
> Please correct me if something misunderstand.
> 
> Thanks
> Jason


-- 
stephen lau // stevel at sun.com | 650.786.0845 | http://whacked.net
opensolaris // solaris kernel development

Reply via email to