| gbp-import-orig(1) | git-buildpackage Manual | gbp-import-orig(1) |
gbp-import-orig - Import an upstream source from tarball, or git tag and tarball, into a git repository
gbp import-orig
[--version] [--help] [--verbose]
[--color=[auto|on|off]] [--color-scheme= COLOR_SCHEME]
[--upstream-version= version] [--[no-]merge]
[--merge-mode= [auto|merge|replace]]
[--upstream-branch= branch_name] [--debian-branch=
branch_name] [--upstream-vcs-tag= tag-format]
[--[no-]sign-tags] [--keyid= gpg-keyid]
[--upstream-tag= tag-format] [--filter=
pattern]... [--component= component]...
[--[no-]pristine-tar] [--[no-]filter-pristine-tar]
[--[no-]symlink-orig] [--postimport=cmd]
[--postunpack=cmd] [--[no-]interactive]
[--[no-]rollback] [--upstream-signatures=[auto|on|off]]
filename | url | --uscan
gbp import-orig imports upstream sources into a Git repository optionally linking to upstream's git history. It can import from three sources:
If the tarballs name is already of the form package-name_version.orig.tar.gz, the version information is determined from the tarball's filename, otherwise it can be given on the command line via --upstream-version. If the source package name or version can't be determined, gbp import-orig will prompt for it unless --no-interactive is given.
The sources are placed on the upstream branch (default: upstream), tagged and merged onto the debian branch (default: master). This is either done using plain git merge or by creating a new tree that consists of the new upstream version plus the debian/ directory. The later is used for source format 3.0 (quilt) packages since direct modifications of the upstream sources are not allowed in that format and so a 1:1 replacement of the upstream sources is almost always desired. It can be tweaked via the --merge-mode.
When using the --upstream-vcs-tag option the tag matching the version of the imported release will be added as additinoal parent of the commit created for the imported tarball. This ties the upstream git commit history to the Debian packaging history and allows for e.g. easy cherry-picking of patches and comparison of upstream git and the upstream tarball.
In case of an error gbp import-orig will rollback (undo) all changes it has done to the repository (see the --rollback option).
Note that for projects using multiple tarballs the name of the additional components needs to be specified via the --component command line option or via gbp.conf (see below for details).
merge does a Git merge leaving you on your own in case of merge conflict resolution.
replace mode on the other hand makes the head of the Debian packaging branch identical to the newly imported tree but preserves the content of the debian/ directory while keeping the current head as well as the newly imported tree as parents of the generated commit. This is similar to a theirs merge strategy while preserving debian/.
The default is auto which uses replace for 3.0 (quilt) packages and merge otherwise.
Using additional original tarballs is a feature of the 3.0 (quilt) source format. See the dpkg-source manpage for details. This is currently considered an experimental feature and might change incompatibly.
This is a good idea if not using pristine-tar since it avoids creating a new tarball with a different md5sum.
Download and import a new upstream version using the information from debian/watch
gbp import-orig --uscan
Fetch tarball from an URL
gbp import-orig https://debian.example.com/sid/upstream-tarball-0.1.tar.gz
Import a local tarball
gbp import-orig ../upstream-tarball-0.1.tar.gz
Several gbp.conf files are parsed to set defaults for the above command-line arguments. See the gbp.conf(5) manpage for details.
gbp-buildpackage(1), gbp-import-dsc(1),
gbp-import-dscs(1), gbp-dch(1), gbp.conf(5),
uscan(1), debuild(1), git(1), pristine-tar(1),
The Git-Buildpackage Manual
⟨file:///usr/share/doc/git-buildpackage/manual-html/index.html⟩
Guido Günther <agx@sigxcpu.org>
| 10 April 2025 |