[pacman-dev] [PATCH] makepkg: speed up svn revision check for large repositories
Allan McRae
allan at archlinux.org
Wed Jul 16 07:47:36 EDT 2008
Dan McGee wrote:
> On Wed, Jul 16, 2008 at 6:33 AM, Allan McRae <allan at archlinux.org> wrote:
>
>> 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...
>>
>
> Hmm, ok. That does make sense.
>
> Whatever works and is simplest is fine with me, and it would be ideal
> for it to work on platforms besides Linux as well.
>
More google searching on this and requiring to correct my previous
assertions... "LC_ALL=C" is equivalent to "LC_ALL=POSIX". Just using
"LC_ALL=" does require "LANG=" as if LC_ALL is unset it then looks at
the LANG variable.
So the following all are equivalent (I think...):
LC_ALL= LANG=
LC_ALL=C <- my vote
LC_ALL=POSIX
Allan
More information about the pacman-dev
mailing list