Differences From:
File
cvs2fossil.txt
part of check-in
[e1dbf3186d]
- 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 :/
by
aku on
2008-02-04 06:05:11.
[view]
To:
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]
@@ -31,8 +31,37 @@
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.