Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Added some musings to one of the situations to deal with.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:812c91bb8da14910a5d9418bcbf1b92b0ebe8505
User & Date: aku 2008-02-04 06:26:46
Context
2008-02-05
06:08
Removed bogus (early) unset. check-in: 7caaf7af user: aku tags: trunk
2008-02-04
06:26
Added some musings to one of the situations to deal with. check-in: 812c91bb user: aku tags: trunk
06:05
Reworked the revision import to use the new state tracking system instead of the simple array. Moved some log outputs. Added a file listing the known problems to prevent me from forgetting stuff as it piles up :/ check-in: e1dbf318 user: aku tags: trunk
Changes

Changes to cvs2fossil.txt.

29
30
31
32
33
34
35





























36
37
38
39
40
41
42
	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.






























*	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.

	It tries to import a changeset on the
	'scriptics-sc-2-0-beta-branch' line of development (X), which
	has no commits yet. So it goes to the parent LOD to get the







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
	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.

	It tries to import a changeset on the
	'scriptics-sc-2-0-beta-branch' line of development (X), which
	has no commits yet. So it goes to the parent LOD to get the