[pacman-dev] [PATCH 4/4] makepkg: git: update existing sources in srcdir without removing them first.

Allan McRae allan at archlinux.org
Tue Dec 17 22:34:40 EST 2013


On 18/12/13 03:34, SamLT wrote:
> 
> Hello,
> 
> [sorry could not hit the reply button since I'm new to this list]
> 
> 
>> William Giokas 1007380 at gmail.com
>> Tue Dec 10 14:56:18 EST 2013
>>
>> Previous message: [pacman-dev] [PATCH 4/4] makepkg: git: update existing sources in srcdir without removing them first.
>> Next message: [pacman-dev] [PATCH 4/4] makepkg: git: update existing sources in srcdir without removing them first.
>> Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
>>
>> On Tue, Dec 10, 2013 at 09:39:51AM +0100, Lukas Jirkovsky wrote:
>>> On Mon, Dec 9, 2013 at 10:10 PM, Dave Reisner <d at falconindy.com> wrote:
>>>> This groundbreaking idea has been proposed and rejected several times
>>>> already.
>>>>
>>>
>>> Can you point me to where they were rejected? I have submitted the
>>> patches implementing this functionality in the past, but they were
>>> rejected because of technical problems, not because of the idea
>>> itself. This new patch series should fix all the issues that were
>>> present in my previous attempts. Also I remember that Allan set
>>> FS#35050 as due in 4.2.0 probably because I was working on it.
>>
>> For the tl;dr:
>>
>> Here's how we use git sources at the moment:
>>
>> - Create bare clone (no checked out files)
>> - Clone the bare clone to build dir
>> - Build
>> - Possible cleanup
>>
>> With a shallow clone the first two steps won't work at all. Look at the
>> manual page for git-clone(1):
>>
>>   A shallow repository has a number of limitations (you cannot clone or
>>   fetch from it, nor push from nor into it)...
>>
>> As you can see, we can't do the second step, and if we do the first step
>> with --depth=1, then it would essentially just give us a useless set of
>> files.
> 
> 
> I've also read the link you gave earlier about why shallow clones are bad:
> https://mailman.archlinux.org/pipermail/aur-general/2013-April/022938.html
> 
> 
> While I agree that the first step should *not* be a shallow clone, I fail
> to see why we clone the whole history for the build dir.
> 
> AFAICS, the whole discussion in both of these threads is about the first
> step, I'm talking about the second step, ie making the sources to the
> build dir
> 
> Uwe Koloska said "local clones are cheap",
> (https://mailman.archlinux.org/pipermail/aur-general/2013-April/022955.html
> ) while I agree it's fast it also copies a whole bunch of files which
> won't be used for the build (namely the .git directory).
> Although, this does not feel right(to me), I cannot find any tangible
> reason other that premature EOL of our beloved SSD *sick*.

I think hardlinks are used a lot by git here (provided SRCDEST is on the
same partition).

> Anyway, why not just doing something like this for step 2:
>    cd $git archive --format=tar --prefix=$pkgname/ . | tar xf - -C $srcdir
> 
> (or even a shallow clone) 
> 

Because we do the branch/tag/commit checkout after we create the $srcdir
copy.

> I may be missing something, eg, I've never played with git submodules and don't
> know how well this approach would work with them.
> 
> What do you think?
> 
> 
> Thanks for your time!
> 
> 
> sam
> 
> 
>>
>> Thanks,
>> --
>> William Giokas | KaiSforza | http://kaictl.net/
>> GnuPG Key: 0x73CD09CF
>> Fingerprint: F73F 50EF BBE2 9846 8306  E6B8 6902 06D8 73CD 09CF
>> -------------- next part --------------
> 
> 
> 



More information about the pacman-dev mailing list