Diff for "Code/Imports"

Not logged in - Log In / Register

Differences between revisions 6 and 19 (spanning 13 versions)
Revision 6 as of 2008-10-10 15:30:03
Size: 3961
Editor: 92-237-59-186
Comment: Publication
Revision 19 as of 2012-09-27 14:41:50
Size: 3575
Editor: host86-165-56-242
Comment: Removing Mercurial imports
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from Code/Imports/Draft
~-[[FrontPage|Launchpad Help]] > [[Code]] > Imports from CVS and Subversion -~
################ We need to combine this page with VcsImports

~-[[FrontPage|Launchpad Help]] > [[Code]] > Imports from Bazaar, CVS, Subversion and Git -~
Line 8: Line 9:
There's a lot of free software code available in CVS or Subversion (SVN) repositories. They are well-understood and often convenient for the core developers. While they do have the disadvantage that branching and merging are not well supported, they're still effective and hence widely used. There's a lot of free software code available in CVS, Subversion (SVN) and Git repositories, or Bazaar repositories that aren't hosted on Launchpad. Sometimes you're going to want to have this code available on Launchpad in Bazaar. Perhaps you use Bazaar for your project and you'd like to use a Git-based project as a dependency. Perhaps you'd like to do some work on a CVS project but would prefer to use a more modern version control system. Maybe you'd like to hack on a project that uses Subversion, but you don't have commit rights.
Line 10: Line 11:
The biggest downside to this approach, however, is that it treats newcomers and drive-by participants as second-class citizens. They don't get any form of revision control that can interoperate with that core team. Instead, they have to email patches, which can rot over time.

Launchpad and Bazaar can help you address this problem without asking the project's core developers to change en-masse to a different version control system. You can ask Launchpad to import a CVS or Subversion repository into a Bazaar branch on Launchpad.
If any of this is striking a chord, then you probably want to know about Launchpad's code import system. Read on.
Line 16: Line 15:
Launchpad supports the import of the primary development trunk of a project from CVS or SVN. A good example is the Drupal project. Launchpad imports Drupal's trunk as [[https://launchpad.net/drupal/main|its "main" series]] in Launchpad.

||<tablestyle="font-size: 0.8em; width:30%; background:#F1F1ED; margin: 1em 1em 0 0;" style="padding:0.5em;">{{attachment:drupal-import.png}}||
||<style="text-align: center;">'''Drupal's main series - an import'''||
Launchpad supports the import of the primary development trunk of a project from CVS, SVN or Git. A good example is the Drupal project. Launchpad imports Drupal's trunk as [[https://launchpad.net/drupal/head|its "head" series]] in Launchpad.
Line 22: Line 18:

Perhaps the most visible difference between a branch that's the result of an import from CVS or Subversion is that the branch's owner is the [[https://code.edge.launchpad.net/~vcs-imports|VCS imports]] team/
Line 29: Line 23:
Unfortunately, the initial import process is not an exact science. CVS and Subversion don't record enough information for a deterministic import into Bazaar, which is more rigorous about things like renames and changesets. Unfortunately, the initial import process is not an exact science.  CVS and Subversion don't record enough information for a deterministic import into Bazaar, which is more rigorous about things like renames and changesets.  (Git mostly does, but sometimes represents that information [[http://blog.launchpad.net/code/git-branch-imports-now-in-public-beta|quite differently]] from how Bazaar does.)
Line 31: Line 25:
In most cases, where the CVS and SVN repositories have not been manually edited or altered, we can infer what we need and the import goes through smoothly. Sometimes, however, people have tried to work around limitations in CVS or SVN by altering the repositories behind-the-scenes. This is
especially true of CVS, where people have to manually tinker with its internals to do renames.
In most cases, where the CVS and SVN repositories have not been manually edited or altered, we can infer what we need and the import goes through smoothly. Sometimes, however, people have tried to work around limitations in CVS or SVN by altering the repositories behind-the-scenes. This is especially true of CVS, where people have to manually tinker with its internals to do renames.
Line 38: Line 31:
For this reason, we don't have an automated process for the import. Instead, you [[https://code.edge.launchpad.net/+code-imports/+new|request one]] and we put it in a queue. Sometimes it takes just an hour or two, sometimes it can take days to get a good import together. In a very few cases, the old repositories are so wedged that we can't get all the history exactly right. It's best just to get started and see how it goes. We are constantly improving the voodoo. For this reason, we don't have an automated process for the import. Instead, you [[https://code.launchpad.net/+code-imports/+new|request one]] and we put it in a queue. Sometimes it takes just an hour or two, sometimes it can take days to get a good import together. In a very few cases, the old repositories are so wedged that we can't get all the history exactly right. It's best just to get started and see how it goes. We are constantly improving the voodoo.
Line 44: Line 37:
||<tablestyle="width: 100%;"> ~-[[Code/PersonalBranches|< Personal branches]] -~ ||<style="text-align: right;"> ~- [[Answers|Answers >]] -~ ||
||<tablestyle="width: 100%;"> ~-[[Code/PersonalBranches|< Personal branches]] -~ ||<style="text-align: right;"> ~- [[Answers|Community support >]] -~ ||

Launchpad Help > Code > Imports from Bazaar, CVS, Subversion and Git

Overview

There's a lot of free software code available in CVS, Subversion (SVN) and Git repositories, or Bazaar repositories that aren't hosted on Launchpad. Sometimes you're going to want to have this code available on Launchpad in Bazaar. Perhaps you use Bazaar for your project and you'd like to use a Git-based project as a dependency. Perhaps you'd like to do some work on a CVS project but would prefer to use a more modern version control system. Maybe you'd like to hack on a project that uses Subversion, but you don't have commit rights.

If any of this is striking a chord, then you probably want to know about Launchpad's code import system. Read on.

Trunk imports

Launchpad supports the import of the primary development trunk of a project from CVS, SVN or Git. A good example is the Drupal project. Launchpad imports Drupal's trunk as its "head" series in Launchpad.

As you can see, there's a Bazaar branch of Drupal's code. Launchpad updates that branch regularly by importing the latest from Drupal's trunk CVS repository. It works just like any other branch in Launchpad: you can see the latest commits and you can create your own Bazaar branch of it and then upload it back to Launchpad.

Requesting an import

Import precision

Unfortunately, the initial import process is not an exact science. CVS and Subversion don't record enough information for a deterministic import into Bazaar, which is more rigorous about things like renames and changesets. (Git mostly does, but sometimes represents that information quite differently from how Bazaar does.)

In most cases, where the CVS and SVN repositories have not been manually edited or altered, we can infer what we need and the import goes through smoothly. Sometimes, however, people have tried to work around limitations in CVS or SVN by altering the repositories behind-the-scenes. This is especially true of CVS, where people have to manually tinker with its internals to do renames.

Making your request

So, a good import is part voodoo, part science, part luck. An import will not lose data - we can verify that the result of a checkout of the Bazaar branch is identical to a checkout of the CVS branch. But getting it to that point may well require inspection and custom work.

For this reason, we don't have an automated process for the import. Instead, you request one and we put it in a queue. Sometimes it takes just an hour or two, sometimes it can take days to get a good import together. In a very few cases, the old repositories are so wedged that we can't get all the history exactly right. It's best just to get started and see how it goes. We are constantly improving the voodoo.

Next step

Informal support happens in many different places in the free software world. Launchpad aims to bring bug tracker-like qualities to giving and asking for help. Let's look at Launchpad Answers.

< Personal branches

Community support >

Code/Imports (last edited 2012-09-27 14:41:50 by host86-165-56-242)