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