bzr fast-import fails on importing cvs2git dump
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:/
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/
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/
N upload-
No conflicts created by this import
Checked out the new project:
#$ cvs -d /codebase/
cvs checkout: Updating upload-test
U upload-
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/
new revision: 1.2; previous revision: 1.1
done
Converted the new CVS project to a GIT dump:
#$ ./cvs2svn-
=upload-
----- pass 1 (CollectRevsPass) -----
Examining all CVS ',v' files...
/codebase/
Done
Time for pass1 (CollectRevsPass): 0.418 seconds.
----- pass 2 (CleanMetadataPass) -----
Converting metadata to UTF8...
Done
Time for pass2 (CleanMetadataP
----- pass 3 (CollateSymbols
Checking for forced tags with commits...
Done
Time for pass3 (CollateSymbols
----- pass 4 (FilterSymbolsPass) -----
Filtering out excluded symbols and summarizing items...
Done
Time for pass4 (FilterSymbolsP
----- pass 5 (SortRevisionSu
Sorting CVS revision summaries...
Done
Time for pass5 (SortRevisionSu
----- pass 6 (SortSymbolSumm
Sorting CVS symbol summaries...
Done
Time for pass6 (SortSymbolSumm
----- pass 7 (InitializeChan
Creating preliminary commit sets...
Done
Time for pass7 (InitializeChan
----- pass 8 (BreakRevisionC
Breaking revision changeset dependency cycles...
Done
Time for pass8 (BreakRevisionC
----- pass 9 (RevisionTopolo
Generating CVSRevisions in commit order...
Done
Time for pass9 (RevisionTopolo
----- pass 10 (BreakSymbolCha
Breaking symbol changeset dependency cycles...
Done
Time for pass10 (BreakSymbolCha
----- pass 11 (BreakAllChange
Breaking CVSSymbol dependency loops...
Done
Time for pass11 (BreakAllChange
----- pass 12 (TopologicalSor
Generating CVSRevisions in commit order...
Done
Time for pass12 (TopologicalSor
----- 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 SortRevisionSum
0.117 pass6 SortSymbolSumma
0.425 pass7 InitializeChang
0.104 pass8 BreakRevisionCh
0.099 pass9 RevisionTopolog
0.084 pass10 BreakSymbolChan
0.108 pass11 BreakAllChanges
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.
, 'jbl_jbl-
"<bzrlib.
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.