Diff
Not logged in

Differences From:

File cvs2fossil.txt part of check-in [812c91bb8d] - Added some musings to one of the situations to deal with. by aku on 2008-02-04 06:26:46. [view]

To:

File cvs2fossil.txt part of check-in [c9270189c2] - Added tracking of file removal in changesets. by aku on 2008-02-05 15:52:35. [view]

@@ -1,67 +1,12 @@
 
 Known problems and areas to work on
 ===================================
 
-*	Currently not properly tracking when a file is removed on some
-	branch (detectable by a 'dead' revision (optype)) during the
-	import of changesets.
-
 *	Not yet able to handle the specification of multiple projects
 	for one CVS repository. I.e. I can, for example, import all of
 	tcllib, or a single subproject of tcllib, like tklib, but not
 	multiple sub-projects in one go.
-
-*	An internal error thrown when trying to import tcllib of
-	tcllib shows that I am apparently not properly handling the
-	possibility of more than one symbol used to create a
-	vendor-branch with.
-
-	In tcllib most files (18) have 'tcllib-vendor-branch' as the
-	name of their vendor branch, done in 2000, however two files
-	use the name 'vendor' instead, they were done in 2003. Each
-	set of files corresponds a single changeset.
-
-	This causes the code importing the changesets to flip out when
-	the second changeset tries to create ':trunk:' and finds it
-	already existing (both changesets are the last trunk-changeset
-	on the vendor branch :) )
-
-	Not sure yet if I should try to abort this at the beginning,
-	i.e. CVS integrity failure, force the user to manually edit
-	the RCS archives to bring the symbol used for the vendor
-	branch into sync. Or if I should allow the import to let this
-	slide by, by simply assuming that all such second changesets
-	should not try to create the :trunk: if it exists.
-
-	---
-	Another possibility is to somehow identify such symbols and
-	rewrite the structures on my own, i.e. choose one of the
-	symbols as the canonical vendor branch V and rewrite all
-	revisions using other vendor branch symbols to use V. This
-	would have to happen somewhere in either pass CollateSymbols
-	or in pass FilterSymbols.
-
-	Thinking about it would have to happen before we even start to
-	aggregate the branch/tag/commit counts, so that all of them
-	apply to V later on, instead of spread over several symbols.
-
-	Luckily we have all the relevant information in the state
-	database, in the tables 'revision' and 'symbol'.
-
-	Thinking even more, this type of symbol rewriting, whether by
-	the importer, or directly in the rcs archives before doing the
-	import, will not address the fact that both changesets will
-	have file revisions in them which declare that they are the
-	last trunk changeset on the vendor branch, despite the second
-	changeset added about three years after the previous last
-	trunk changeset on the vendor branch.
-
-	It seems that I will have to rewrite the changeset import to
-	simply allow for this situation and force the second changeset
-	(and any further) to be non-trunk on the vendor-branch,
-	whatever I do after collecting the revision. And if I do that
-	I don't really a good reason to rewrite the symbols.
 
 *	An internal error thrown when trying to import bwidget of
 	tcllib shows that there have to be some situation I am not
 	handling correctly in the cycle-breaker and sorting passes.