tagging the known working cases and leaving the rest of them as branches
would work, but would leave you with a slightly inconsistant result (i.e.
you'd also probably want to warn the user that they're missing some tags).

here's a few more alternatives for consideration:

option 1:

do the same as the previous suggestion, but instead of "leave as branch",
tag the head (instead of the parent), and leave it as a headless commit.

pros: everything is consistantly a tag
cons: you end up with some headless commits for the corner cases

option 2:

rename the tags branches as "svn-tags" and tag the heads of the branches
as tags

pros: truer to the actual history, very simple, possibly idempotent
cons: extra and arguably ugly branch history

option 3:

in the non-trivial case, tag the head of the branch, and rewrite the
history so that it appears to directly branch from the common
ancestor (i.e. graft) and rebasing (i.e. filter-branch) it to make the
graft integrated into the repo history.

this is basically option 1 plus some git vodoo to prevent the ancestry
history of the otherwise headless commit from being lost.

pros: should cover corner cases more gracefully
cons: more complicated, changes history.

-- 

Attachment: signature.asc
Description: Digital signature

Reply via email to