[Kde-scm-interest] Braindump: fixups
Thiago Macieira
thiago at kde.org
Sat Jul 19 15:43:31 CEST 2008
Oswald Buddenhagen wrote:
>On Fri, Jul 18, 2008 at 11:07:15PM -0300, Thiago Macieira wrote:
>> -> must not let this tool execute on the CVS branches imported since
>> cvs2svn did a lousy job.
>
>i'm aware of one actual breakage (which i would try to fix retroactively
>if i get some time allocated for that). or do you see some more
>fundamental problem?
The symptom is that the old branches have a lot fewer files than the
corresponding trunk at the time. I don't know if it's cvs2svn's fault or
if we failed at tagging/branching correctly with CVS back when.
That's the main problem.
There's a smaller one which is that the dates and SVN revisions are
completely out of whack. The KDE 2.0, 2.1 and 2.2 branches are spaced
less than a month apart or something.
Those are the user-visible problems. For those reasons, the old
branches/tags are completely useless (especially 1.0 and 1.1) when
imported into Git. I could simply drop them and save us the problem.
The problem I was alluding to in the tool is the way that cvs2svn did the
branching. Today, when we say "branch" in svn (which is what I meant
as "proper branching") is to do:
svn cp .....trunk/KDE/kdelibs ....branches/KDE/4.1/kdelibs
or even:
svn cp .....trunk/KDE ....branches/KDE/4.1
However, CVS didn't track directories, so cvs2svn only preserves the files
correctly. And it tries to be correct up to each individual CVS file's
revision. So the branching it did is equivalent to:
svn mkdir ....branches/KDE/2.0
svn cp -r XYZ .....trunk/kdelibs ....branches/KDE/2.0/kdelibs
svn cp -r
XYW .....trunk/kdelibs/kdecore ....branches/KDE/2.0/kdelibs/kdecore
svn cp -r XYT ....kdecore/kdeversion.h ....kdecore/kdeversion.h
This means that the tool sees those branchings as a lot of
individual "copy with history" in the same commit, which is completely
unrepresentable in Git (which is irrelevant, since it is supposed to
represent one state in history, despite what cvs2svn did).
It might be possible to fix history for the old CVS tags later on by
re-doing the job. (Extract the tagged sources from CVS again, find the
proper Git commit in master given the tagging date and then re-create the
branch representing the tag)
--
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
PGP/GPG: 0x6EF45358; fingerprint:
E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/kde-scm-interest/attachments/20080719/814668a6/attachment.pgp
More information about the Kde-scm-interest
mailing list