git-debimport - create a git repository from a set of existing Debian packages
git-debimport [options] path-prefix
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).
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.
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
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.
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.
gitpkg(1), debsnap(1)
gitpkg was written by Ron <ron@debian.org>. September 21, 2007 GIT-DEBIMPORT(1)
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 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.
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.
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.