bzr fast-import fails on importing cvs2git dump

Bug #351713 reported by J. Bobby Lopez
2
Affects Status Importance Assigned to Milestone
Bazaar Fast Import
Fix Released
Undecided
Unassigned

Bug Description

Please see the Bazaar mailing list discussion where this problem was first identified at:
https://lists.ubuntu.com/archives/bazaar/2009q1/055766.html

bzr fastimport version from 'bzr log' is:
revno: 167
committer: Ian Clatworthy <ian.clatworthy@…>
branch nick: fastimport
timestamp: Fri 2009-03-27 16:19:51 +1000
message:
    incremental packing for chk formats

BZR version info:
Bazaar (bzr) 1.5
    Python interpreter: /usr/bin/python 2.4.4
    Python standard library: /usr/lib/python2.4
    bzrlib: /usr/lib/python2.4/site-packages/bzrlib
    Bazaar configuration: /home/jbl/.bazaar
    Bazaar log file: /home/jbl/.bzr.log

I was able to replicate the issue with a single file and a single revision. Here are the details:

Created a new CVS project with a single file, 'upload.php':

#$ cvs -d /codebase/CVS-REPOS/jbl import -m "test commit" upload-test jbldata start
N upload-test/upload.php
No conflicts created by this import

Checked out the new project:

#$ cvs -d /codebase/CVS-REPOS/jbl checkout upload-test
cvs checkout: Updating upload-test
U upload-test/upload.php

At this point, modified the 'upload.php' file and added a single line.

Committed the modification:

#$ cvs commit -m "additional line"
cvs commit: Examining .
Checking in upload.php;
/codebase/CVS-REPOS/jbl/upload-test/upload.php,v <-- upload.php
new revision: 1.2; previous revision: 1.1
done

Converted the new CVS project to a GIT dump:

#$ ./cvs2svn-trunk/cvs2git --dumpfile=upload-cvs-git.dump --blobfile
=upload-cvs-git.blob --username=jbl /codebase/CVS-REPOS/jbl/upload-test
----- pass 1 (CollectRevsPass) -----
Examining all CVS ',v' files...
/codebase/CVS-REPOS/jbl/upload-test/upload.php,v
Done
Time for pass1 (CollectRevsPass): 0.418 seconds.
----- pass 2 (CleanMetadataPass) -----
Converting metadata to UTF8...
Done
Time for pass2 (CleanMetadataPass): 0.093 seconds.
----- pass 3 (CollateSymbolsPass) -----
Checking for forced tags with commits...
Done
Time for pass3 (CollateSymbolsPass): 0.084 seconds.
----- pass 4 (FilterSymbolsPass) -----
Filtering out excluded symbols and summarizing items...
Done
Time for pass4 (FilterSymbolsPass): 0.083 seconds.
----- pass 5 (SortRevisionSummaryPass) -----
Sorting CVS revision summaries...
Done
Time for pass5 (SortRevisionSummaryPass): 0.098 seconds.
----- pass 6 (SortSymbolSummaryPass) -----
Sorting CVS symbol summaries...
Done
Time for pass6 (SortSymbolSummaryPass): 0.117 seconds.
----- pass 7 (InitializeChangesetsPass) -----
Creating preliminary commit sets...
Done
Time for pass7 (InitializeChangesetsPass): 0.425 seconds.
----- pass 8 (BreakRevisionChangesetCyclesPass) -----
Breaking revision changeset dependency cycles...
Done
Time for pass8 (BreakRevisionChangesetCyclesPass): 0.104 seconds.
----- pass 9 (RevisionTopologicalSortPass) -----
Generating CVSRevisions in commit order...
Done
Time for pass9 (RevisionTopologicalSortPass): 0.099 seconds.
----- pass 10 (BreakSymbolChangesetCyclesPass) -----
Breaking symbol changeset dependency cycles...
Done
Time for pass10 (BreakSymbolChangesetCyclesPass): 0.084 seconds.
----- pass 11 (BreakAllChangesetCyclesPass) -----
Breaking CVSSymbol dependency loops...
Done
Time for pass11 (BreakAllChangesetCyclesPass): 0.108 seconds.
----- pass 12 (TopologicalSortPass) -----
Generating CVSRevisions in commit order...
Done
Time for pass12 (TopologicalSortPass): 0.093 seconds.
----- pass 13 (CreateRevsPass) -----
Mapping CVS revisions to Subversion commits...
Creating Subversion r1 (Project initialization)
Creating Subversion r2 (commit)
Creating Subversion r3 (copying to tag 'start')
Creating Subversion r4 (commit)
Done
Time for pass13 (CreateRevsPass): 0.102 seconds.
----- pass 14 (SortSymbolsPass) -----
Sorting symbolic name source revisions...
Done
Time for pass14 (SortSymbolsPass): 0.085 seconds.
----- pass 15 (IndexSymbolsPass) -----
Determining offsets for all symbolic names...
Done.
Time for pass15 (IndexSymbolsPass): 0.076 seconds.
----- pass 16 (OutputPass) -----
Time for pass16 (OutputPass): 0.059 seconds.
cvs2svn Statistics:
------------------
Total CVS Files: 1
Total CVS Revisions: 2
Total CVS Branches: 0
Total CVS Tags: 1
Total Unique Tags: 1
Total Unique Branches: 0
CVS Repos Size in KB: 1
Total SVN Commits: 4
First Revision Date: Mon Mar 30 11:09:28 2009
Last Revision Date: Mon Mar 30 11:11:04 2009
------------------
Timings (seconds):
------------------
0.418 pass1 CollectRevsPass
0.093 pass2 CleanMetadataPass
0.084 pass3 CollateSymbolsPass
0.083 pass4 FilterSymbolsPass
0.098 pass5 SortRevisionSummaryPass
0.117 pass6 SortSymbolSummaryPass
0.425 pass7 InitializeChangesetsPass
0.104 pass8 BreakRevisionChangesetCyclesPass
0.099 pass9 RevisionTopologicalSortPass
0.084 pass10 BreakSymbolChangesetCyclesPass
0.108 pass11 BreakAllChangesetCyclesPass
0.093 pass12 TopologicalSortPass
0.102 pass13 CreateRevsPass
0.085 pass14 SortSymbolsPass
0.076 pass15 IndexSymbolsPass
0.059 pass16 OutputPass
2.127 total

Created a new test bzr repository:

  mkdir upload-test-bzr
  cd upload-test-bzr/
  bzr init .

Attempt to import GIT dumps with bzr fastimport:

#$ cat ../upload-cvs-git.* | bzr fast-import -
bzr: ERROR: Revision {(('upload.php-20090330151314-dlxwua2gbqxbub35-1'
, 'jbl_jbl-20090330150928-vzoub36f0wlcpp8q'),)} not present in
"<bzrlib.knit.KnitGraphIndex object at 0xb7645c2c>".

Revision history for this message
J. Bobby Lopez (bobby-lopez) wrote :
Revision history for this message
Ian Clatworthy (ian-clatworthy) wrote :

I tried your dump files with bzr-fastimport rev 172 and bzr.dev rev 4252. It seems to import fine with that combination. I changed the default algorithm in fastimport rev 171 to always use inventory deltas, regardless of the bzr repo format. Even so, your files still import OK for me regardless of whether I use the --default or --classic mode. I therefore suspect the problem is not with fast-import but with your version of Bazaar.

Are you able to try a later version of Bazaar? Things have progressed a lot since 1.5.

Revision history for this message
J. Bobby Lopez (bobby-lopez) wrote :

This works in Bazaar 1.13. Closing as fixed.

Changed in bzr-fastimport:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.