[pkg-fso-maint] special git layout - how to package

Joachim Breitner nomeata at debian.org
Mon Apr 27 22:20:08 UTC 2009


Hi,

Am Dienstag, den 28.04.2009, 00:05 +0200 schrieb Heiko Stuebner:
> the cornucopia-git seems to consists of subdirs representing individual 
> subprojects, e.g. libfsotransport.
> 
> libfsotransport is now needed for libgsm0710mux and therefore for fso-abyss.
> 
> Do strategies exists how such a setup could be handled with git-buildpackage, 
> or is it necessary to split libfsotransport off of its git and use a new repo?
> 
> On Sunday Mickey changed the abyss-parts to support newer vala versions - 
> 0.7.1 to be precise and this version was uploaded by the debian-vala-
> maintainers monday too - what coincidence :-).

I have faced the same issue with SHR. Here is what I did (quoting a mail
from 22. Nov 2008):

=======================
Hi again,

just some newly-won git insights that I want to share:

Am Samstag, den 22.11.2008, 02:21 +0100 schrieb Joachim Breitner:
> The branch “upstream” is actually the subdirectory
> libframeworkd-phonegui/ of their “all-in-one“ directory – I extracted
it
> in a pretty crude way, not sure if git will handle that nicely when
> merging[1].

It seems it did the trick: The new commit points to exactly the same
tree as the directory in the old commit:

$ git-show --pretty=raw 70df8b0b19e1595f299f1d510bc8789abfb2a8dd
commit 70df8b0b19e1595f299f1d510bc8789abfb2a8dd
tree 9b7996f659712bb6309c2a7f97cc4f554051bf59
parent bebb79069c8a0813e83d026a4043c240b16af7ae
author Joachim Breitner <mail at joachim-breitner.de> 1227314315 +0100
committer Joachim Breitner <mail at joachim-breitner.de> 1227314315 +0100

    Extract libframeworkd-phonegui
[..]
$ git-ls-tree 6497719cb197071c407067739fc232b0e8d98781
100644 blob 203e93a9a18372bad0ece00571e914cc2b209b5f    README
040000 tree
d7f02e094f89c4f9c4591ada119dbe9414c0c4b9    libframeworkd-phonegui-efl
040000 tree
3f7acdbd7e7c2f3c7053ed4fa389e4ab88da4f59    libframeworkd-phonegui-gtk
040000 tree
9b7996f659712bb6309c2a7f97cc4f554051bf59    libframeworkd-phonegui
[..]

(compare the last line and the tree line above)

This is actually identical to manually constructing a commit with
git-commit-tree (which is actually what you’d expect from git’s
semantics, but it’s surprising that it works).

Merging is also no problem if you always pass "-s subtree" to git-merge
– then it’s notice the common tree ids and merge accordingly.
=======================

So what you do is you find out the tree id fo the subproject with
git-ls-tree and create a new commit (probably in an empty branch
„libfsotransport“, google for how to create a new empty branch) using
git-commit-tree.

If you need more detailed instructions, just ask.

Greetings,
Joachim

-- 
Joachim "nomeata" Breitner
Debian Developer
  nomeata at debian.org | ICQ# 74513189 | GPG-Keyid: 4743206C
  JID: nomeata at joachim-breitner.de | http://people.debian.org/~nomeata
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: Dies ist ein digital signierter Nachrichtenteil
URL: <http://lists.alioth.debian.org/pipermail/pkg-fso-maint/attachments/20090428/ea05226a/attachment.pgp>


More information about the pkg-fso-maint mailing list