Provided by: gitpkg_0.29_all bug

NAME

       git-debimport - create a git repository from a set of existing Debian packages

SYNOPSIS

       git-debimport [options] path-prefix

DESCRIPTION

       This  program  will  create  a  git  repository  of  all  files  that  match  ${path-prefix}_*.diff.gz or
       ${path-prefix}_*.debian.tar.{gz,bz2,xz} (with their corresponding orig.tar.{gz,bz2,xz}), or of all  files
       that match ${path-prefix}_*.tar.{gz,bz2,xz} (for Debian native packages).

OPTIONS

       The following options are available:

       --fetch
              Attempt  to  download  all available versions from snapshot.debian.org rather than use an existing
              set of packages.  The debsnap(1) utility, from devscripts 2.10.63 or later, must be  available  in
              the  path to use this option (earlier debsnap versions only supported snapshot.debian.net which is
              no longer a functional mirror).  The packages will be downloaded into the location implied by  the
              path-prefix  where  they  would  normally  be  expected  to  exist  already  without  this option.
              Downloaded packages will not automatically be removed after this operation is complete.

       --late-merge
              Early versions of git-debimport would only merge the upstream and debian branches after the import
              of  all packages was complete.  This avoids an import failing where the merge might have conflicts
              that would need to be manually resolved.  We know the import of the next  package  in  the  series
              will contain a resolution to any such conflict, so delaying the merge allows the import to proceed
              without intervention or introducing changes that were not part of the original history.   It  does
              however produce a lesser quality history for the purposes of browsing the Debian changes.  All the
              original packages may be retrieved from such a repo with perfect fidelity, but  the  diff  between
              adjacent Debian versions will be mingled with upstream changes too.

              The  default  for current versions of git-debimport is to merge each new upstream release as it is
              imported.  This gives a much more natural and useful looking history, but may fail in some  cases.
              Use  this  option  to  employ  the older more reliable method for packages that generate conflicts
              during import.

       -v, --verbose
              Be more noisy about reporting operations in progress.  Mostly only useful with the --fetch  option
              at present.

EXAMPLE

       Import an archive of existing 'mypackagename' packages from mysrcdir:
       $ mkdir mydestdir && cd mydestdir
       $ git-debimport ../mysrcdir/mypackagename

       Import all available versions of gitpkg from snapshot.debian.org:
       $ mkdir mydestdir && cd mydestdir
       $ git-debimport --fetch ../my-gitpkg-sources/gitpkg

NOTES

       It  is  unfortunate  that  at  the  present  time,  many of the tools for importing source to git from an
       existing revision control system all leave something to be desired.  This  script  does  not  solve  that
       problem.  What it does do however is create a repository that makes it possible to accurately extract all
       of the earlier packages which were injected to it.  This is sadly more than can be said for the result of
       running git-cvsimport on a repo created by cvs-buildpackage, for example.

       It  is currently very simple, and makes a number of hard-coded assumptions about the resulting repo.  For
       debian-versioned packages it will create a repo with two branches:

       upstream - for the pristine upstream source
       master - for the Debianised source

       Native versioned packages will have only the master branch.

       While the loss of fine grained history on individual commits is most regrettable, this script  enables  a
       maintainer  to  import  a  usable  record  of  the  previously  released  packages  as  a base for future
       development.  This may be an acceptable trade-off for people who feel  the  advantage  of  moving  future
       development  to  git  now outweighs the inconvenience of needing to refer to a legacy repository for full
       details of previous commits.

       Hopefully the problems of accurately importing from other revision control systems  will  be  solved  one
       day,  but  in  the  meantime,  a brief but accurate history seems more useful than a detailed but largely
       bogus one.

       With the addition of the debsnap(1) tool, the useful life of this has been extended beyond the originally
       envisaged  need.  People who do not have access to the original revision control history at all can build
       for themselves a useful base for further development, quickly and easily,  from  the  packages  that  are
       still available on public snapshot mirrors.

BUGS

       git-debimport does not currently handle packages with mixed 'native' and debian-versioned releases.  This
       may be added in a later version if people have real examples of such packages they wish to import with it
       and we figure out a sensible convention for how they should be stored in the resulting repository.

       Nothing  particularly intelligent is done with format 3.0 (quilt) patches currently.  The debian/patches,
       if any, are simply imported verbatim as found in the source package.  Ideally they should be committed to
       some  git  branch  and  generated  on  demand at export time, rather than perpetuating the patch-in-patch
       nightmare.  Any packages so imported will be recreated accurately on export, but this  isn't  really  the
       best form to actually work with them in git in most cases.

SEE ALSO

       gitpkg(1), debsnap(1)

AUTHOR

       gitpkg was written by Ron <ron@debian.org>.

                                               September 21, 2007                               GIT-DEBIMPORT(1)