[pacman-dev] [PATCH] makepkg: speed up svn revision check for large repositories

Allan McRae allan at archlinux.org
Wed Jul 16 07:33:38 EDT 2008


Dan McGee wrote:
> On Wed, Jul 16, 2008 at 1:45 AM, Xavier <shiningxc at gmail.com> wrote:
>   
>> Allan McRae wrote:
>>     
>>> Dan McGee wrote:
>>>       
>>>> On Tue, Jul 15, 2008 at 7:15 PM, Dan McGee <dan at archlinux.org> wrote:
>>>>
>>>>         
>>>>> Using the suggestion from FS#10905, use 'svn info' rather than 'svn log' to
>>>>> get the current revision number, which is much quicker for large Subversion
>>>>> repositories. Eventually git will rule the world. :)
>>>>>
>>>>> Signed-off-by: Dan McGee <dan at archlinux.org>
>>>>> ---
>>>>>  scripts/makepkg.sh.in |    2 +-
>>>>>  1 files changed, 1 insertions(+), 1 deletions(-)
>>>>>
>>>>> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
>>>>> index b810d60..2ab2aef 100644
>>>>> --- a/scripts/makepkg.sh.in
>>>>> +++ b/scripts/makepkg.sh.in
>>>>> @@ -1017,7 +1017,7 @@ devel_check() {
>>>>>                elif [ ! -z ${_svntrunk} ] && [ ! -z ${_svnmod} ] ; then
>>>>>                        [ $(type -p svn) ] || return 0
>>>>>                        msg "$(gettext "Determining latest svn revision...")"
>>>>> -                       newpkgver=$(svn log $_svntrunk --limit 1 -q | sed -n 's/^r\([0-9]*\) .*$/\1/p')
>>>>> +                       newpkgver=$(LC_ALL= LANG= svn info $_svntrunk | sed -n 's/^Last Changed Rev: \([0-9]*\)$/\1/p')
>>>>>
>>>>>           
>>>> I settled on this after I saw a similar use case elsewhere in makepkg:
>>>>   echo "# $(LC_ALL= LANG= date -u)" >>.PKGINFO
>>>> I think it makes sense. Let me know if anyone has better ideas.
>>>>
>>>>
>>>>         
>>>  From memory, that is the cleaner way to unset the locales so it is all
>>> good.
>>>
>>>       
>> Here is a filtered output of git grep LC_ALL :
>>
>> contrib/bacman:echo "# $(LC_ALL=C date)"            >> .PKGINFO
>>     
> This one should probably change to match makepkg anyway...
>
>   
>> doc/makepkg.8.txt:seeking help or for other purposes, you may wish to
>> run "`LC_ALL=C makepkg`" so
>>     
> I don't think this one is as big of deal, do you?
>
>   
>> scripts/makepkg.sh.in:  echo "# $(LC_ALL= LANG= date -u)" >>.PKGINFO
>>
>> So maybe we could change the first two for a better consistency?
>>     

Hmmm, after some google searching.  LC_ALL appears to override any other 
LC_* variable and the LANG variable.  So "LANG=" here is redundant.  I 
couldn't find whether there is a difference between "LC_ALL=C" and 
"LC_ALL=" but I am suspecting there isn't...

Allan






More information about the pacman-dev mailing list