git-debimport(1)


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)





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.