git workflows for general Ubuntu development

Nish Aravamudan nish.aravamudan at
Tue Nov 15 00:58:44 UTC 2016

On 15.11.2016 [09:57:56 +1300], Michael Hudson-Doyle wrote:
> On 15 November 2016 at 01:51, Robie Basak <robie.basak at> wrote:
> > On the server team, we've been working on a process that uses git to do
> > our "Ubuntu merges". As a consequence, we now have a mechanism that can
> > import package histories into git on Launchpad. We think that this work
> > opens up a bunch of new possibilities, such as for drive-by contributors
> > submitting merge proposals entirely through git.
> >
> This is pretty exciting! Do you think your work will fulfil the goals of
> the UDD project or is there still some stuff that's out of scope?

Is there a list of those goals? I have never used UDD and wasn't
contributing to Ubuntu when it was in-use.

> > We'll be talking about our work tomorrow, as part of the Ubuntu Online
> > Summit. The session page is at
> >
> > and is currently scheduled for 2016-11-15 18:00 UTC. Times may change,
> > so be sure to check the schedule tomorrow.
> >
> > I originally wrote about this in August 2014
> > (
> > We've come on a long way since then. Our automated git imports preserve
> > histories. Where relevant, Ubuntu packages are correctly parented from
> > their Debian origins. We hope to start running this live soon, which
> > will import package uploads into our git trees as they happen rather
> > than on-demand. Once this is live, anyone will be able to easily clone
> > from the "current" Ubuntu packaging git trees, which we think is useful
> > in itself.
> >
> > If you're interested, we'd love your feedback. What are your use cases?
> > What sort of workflows would you like to see? You can see some further
> > notes of ours as they form in the pad on the session page linked above.
> > What have we missed?
> >
> The two questions I have (which are touched on but not afaics really
> answered in the notes are) 1) how does this work if I already maintain the
> packaging for some package in git? 2) what about dgit?

1) No impact to you -- we currently don't have plans to 'import the
world' (meaning all source packages). If the importer were to run
against that source package, though, it would simply import the source
package(s) according to Launchpad's publishing history in Debiand and
Ubuntu. What is most interesting, perhaps, is that you can push
'upload/<version>' tags to the repository the importer uses (presuming
permissions) and the importer will recognize that tag, compare it to the
corresponding upload in Launchpad (source package comparison) and if
they match, it will use the upload-tag as the imported-commit, and
parent it into the history. So if you have broken-out changes (and this
is true for merges too) in your git tree, you can use the upload/ tags
to reflect that. There is no presumption of common ancestry, so the
resulting history (if you have a separate repository right now), might
look a little strange, but it should work :)

It's a bit hand-wavy written out like that, so feel free to ping me on
IRC (nacc) and I'll try and help clarify.

2) dgit does not fully meet our needs at this time. It's going to be
something Robie covers in more detail in the UOS session, but hopefully
he'll be able to respond here, as well.


Nishanth Aravamudan
Ubuntu Server
Canonical Ltd

More information about the Ubuntu-devel-discuss mailing list