On Sunday 02,January,2011 02:39 PM, Chow Loong Jin wrote:
> On Monday 12,July,2010 11:59 PM, Guido Günther wrote:
>> Hi Chow,
>> On Mon, Jul 12, 2010 at 03:27:42PM +0800, Chow Loong Jin wrote:
>>> On Monday 12,July,2010 03:10 PM, Guido Günther wrote:
>>>> severity 588752 normal
>>>> thanks
>>>>
>>>> Hi,
>>>>
>>>> On Mon, Jul 12, 2010 at 05:17:29AM +0800, Chow Loong Jin wrote:
>>>>> Package: git-buildpackage
>>>>> Version: 0.4.65ubuntu1
>>>>> Severity: important
>>>>>
>>>>>
>>>>> As mentioned in the subject, without pristine-tar in use, or using
>>>>> --git-no-pristine-tar, git-buildpackage fails with submodules in two 
>>>>> areas:
>>>>>
>>>>>  * Creating the orig tarball from tag or upstream-branch
>>>>>  * Exporting the contents of the debian-branch to a separate directory
>>>>>    (--git-export-dir)
>>>>>
>>>>> In both cases, the contents of the submodule is left out, meaning that the
>>>>> contents of the submodule are missing from both the exported directory 
>>>>> and orig
>>>>> tarball, leading to it being completely missing from the generated 
>>>>> package.
>>>>>
>>>>> This is due to git-archive not handling submodules, as it only exports the
>>>>> contents of a tree-ish, which does not include submodules by
>>>>> design. git-buildpackage relies on git-archive both for exporting the
>>>>> directory, as well as for generating the tarball. A possible solution 
>>>>> would be
>>>>> to workaround these two areas, by looping through each submodule and
>>>>> exporting to the export-dir or catenating the contents into the generated 
>>>>> tarball.
>>>> Thanks for your analysis! Yes, with submodules we need to loop over
>>>> submodules. Seems other have stumbled of the not subarchive-awareness of
>>>> git-archive too:
>>>>
>>>> http://github.com/meitar/git-archive-all.sh
>>>
>>> Yes, I had also taken a look at git-archive-all.sh prior to filing this bug
>>> report. Is anyone already working on this issue? If not, then I will get to 
>>> work
>>> translating relevant parts of git-archive-all.sh into Python and 
>>> integrating its
>>> functionality within the git-buildpackage script as soon as possible, as
>>> Banshee's daily builds[1] have to be suspended until this issue is fixed. I
>>> will, of course, attach my patch here when I am done.
>> AFAIK nobody is working on this yet, so go ahead and let me know if I
>> can help with anything!
>> Cheers,
>>  -- Guido
> 
> Alright, I've gotten around to coding up support for this, which can be found 
> at
> git://git.debian.org/users/hyperair-guest/git-buildpackage.git under the
> "submodule-support" branch.
> 
> I've only patched in support for git-buildpackage, and it only works when the
> submodules in the debian-branch = the submodules in the upstream-branch at the
> moment. Is there some way in git-buildpackage where I can checkout the current
> upstream branch without nuking any local changes in the event of
> --git-ignore-new? Perhaps via stash or something
> 

I've just committed more changes which use git stash to save changes if the tree
is dirty, switch to treeish to generate the tarballs or export the tree, and
switch back, and stash pop.

I think it's usable now. :-)

-- 
Kind regards,
Loong Jin

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to