Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 May 2020 10:05:19 +0200
From:      =?UTF-8?Q?Ulrich_Sp=C3=B6rlein?= <uqs@freebsd.org>
To:        Ed Maste <emaste@freebsd.org>
Cc:        freebsd-git@freebsd.org, "portmgr@FreeBSD.org" <portmgr@freebsd.org>
Subject:   Re: cvs2svn made lots of old ports tags basically empty
Message-ID:  <CAJ9axoQKPRsDApNBZ2uQ4N2ys0L_e7aHjWX2qGo%2BycvSG2k3Yg@mail.gmail.com>
In-Reply-To: <CAPyFy2BY%2BgXc9A-J=oLh_akfb4%2BedaPE5Rd-PoTqx4To9hXL6A@mail.gmail.com>
References:  <CAJ9axoTvFskmDGawUnGGMQRWmM2=PBiCghPVzE8%2B3R1P-3na3g@mail.gmail.com> <CAPyFy2BY%2BgXc9A-J=oLh_akfb4%2BedaPE5Rd-PoTqx4To9hXL6A@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Am Mo., 4. Mai 2020 um 20:50 Uhr schrieb Ed Maste <emaste@freebsd.org>:
>
> On Sat, 2 May 2020 at 11:09, Ulrich Sp=C3=B6rlein <uqs@freebsd.org> wrote=
:
> >
> > Note that it copies the root, but then deletes everything _but_ Mk. I
> > take it this is not what was wanted and the release tags are supposed
> > to ship a full tree, not just Mk?
>
> I presume so. I think we'd need to look at the CVS version of the repo
> to determine what happened here.
>
> I wonder if we can just skip these old tags in the conversion though?
> If they were already broken by cvs2svn we probably don't need them
> now.

Parts of the "back outs" are repo-copies for sure. Consider this tag
of 2.2.1 in 1997 (I don't think postgresql 9.2 was a thing back then
...)

r7590 | cvs2svn | 1997-08-15 17:44:59 +0200 (Fri, 15 Aug 1997) | 1 line
Changed paths:
   A /tags/RELEASE_2_2_1 (from /head:5975)
   D /tags/RELEASE_2_2_1/CVSROOT
   D /tags/RELEASE_2_2_1/Mk
   D /tags/RELEASE_2_2_1/archivers/sharutils
   D /tags/RELEASE_2_2_1/audio/speak_freely
   D /tags/RELEASE_2_2_1/audio/vat
   D /tags/RELEASE_2_2_1/benchmarks/unixbench
   D /tags/RELEASE_2_2_1/comms/mgetty+sendfax/files/mgettycfg.in
   D /tags/RELEASE_2_2_1/databases/msql3
   D /tags/RELEASE_2_2_1/databases/p5-DBI-137
   D /tags/RELEASE_2_2_1/databases/postgresql-devel
   D /tags/RELEASE_2_2_1/databases/postgresql-devel-server
   D /tags/RELEASE_2_2_1/databases/postgresql73
   D /tags/RELEASE_2_2_1/databases/postgresql73-server
   D /tags/RELEASE_2_2_1/databases/postgresql74-server
   D /tags/RELEASE_2_2_1/databases/postgresql80-server
   D /tags/RELEASE_2_2_1/databases/postgresql81-server
   D /tags/RELEASE_2_2_1/databases/postgresql82-server
   D /tags/RELEASE_2_2_1/databases/postgresql83-server
   D /tags/RELEASE_2_2_1/databases/postgresql84-server
   D /tags/RELEASE_2_2_1/databases/postgresql90-server
   D /tags/RELEASE_2_2_1/databases/postgresql91-server
   D /tags/RELEASE_2_2_1/databases/postgresql92-server

Which means it shouldn't end up in the tag, but then again, it should
also not be in head at that point in time. And that tag is utterly
useless w/o the Mk/, which sadly also gets deleted (did we ever
repo-copy this around?). This affects all tags up to and including
3.0.0; the 3.1.0 tag looks more sane.

I've patched this up in a way I think that makes sense, but really,
portmgr needs to bless this. It should be ok to have the "extra"
directories there, as they are not hooked up to the category Makefile
(IIUC), it would also be possible to go in, detect all
ports-repocopies at least for the release tags and delete the extras.
Should be straight-forward to script, but it would need to be done by
someone else.

For ports especially, the state is easy enough to detect, e.g.

% git ls-tree -r release/2.2.1|egrep "postgresql.*server"|sort
100644 blob 2743afb2583571c35102bf8eaaea63811cb418bc
databases/postgresql-devel-server/pkg-descr
100644 blob 2743afb2583571c35102bf8eaaea63811cb418bc
databases/postgresql73-server/pkg-descr
100644 blob 2743afb2583571c35102bf8eaaea63811cb418bc
databases/postgresql74-server/pkg-descr
100644 blob 2743afb2583571c35102bf8eaaea63811cb418bc
databases/postgresql80-server/pkg-descr
100644 blob 2743afb2583571c35102bf8eaaea63811cb418bc
databases/postgresql81-server/pkg-descr
100644 blob 2743afb2583571c35102bf8eaaea63811cb418bc
databases/postgresql82-server/pkg-descr
100644 blob 2743afb2583571c35102bf8eaaea63811cb418bc
databases/postgresql83-server/pkg-descr
100644 blob 2743afb2583571c35102bf8eaaea63811cb418bc
databases/postgresql84-server/pkg-descr
100644 blob 2743afb2583571c35102bf8eaaea63811cb418bc
databases/postgresql90-server/pkg-descr
100644 blob 2743afb2583571c35102bf8eaaea63811cb418bc
databases/postgresql91-server/pkg-descr
100644 blob 2743afb2583571c35102bf8eaaea63811cb418bc
databases/postgresql92-server/pkg-descr
100644 blob 43a0ebb2e780459c3f2a8b053a5817a554ab9848
databases/postgresql-devel-server/pkg-plist
100644 blob 43a0ebb2e780459c3f2a8b053a5817a554ab9848
databases/postgresql73-server/pkg-plist
100644 blob 43a0ebb2e780459c3f2a8b053a5817a554ab9848
databases/postgresql74-server/pkg-plist
100644 blob 43a0ebb2e780459c3f2a8b053a5817a554ab9848
databases/postgresql80-server/pkg-plist
100644 blob 43a0ebb2e780459c3f2a8b053a5817a554ab9848
databases/postgresql81-server/pkg-plist
100644 blob 43a0ebb2e780459c3f2a8b053a5817a554ab9848
databases/postgresql82-server/pkg-plist
100644 blob 43a0ebb2e780459c3f2a8b053a5817a554ab9848
databases/postgresql83-server/pkg-plist
100644 blob 43a0ebb2e780459c3f2a8b053a5817a554ab9848
databases/postgresql84-server/pkg-plist
100644 blob 43a0ebb2e780459c3f2a8b053a5817a554ab9848
databases/postgresql90-server/pkg-plist
100644 blob 43a0ebb2e780459c3f2a8b053a5817a554ab9848
databases/postgresql91-server/pkg-plist
100644 blob 43a0ebb2e780459c3f2a8b053a5817a554ab9848
databases/postgresql92-server/pkg-plist
100644 blob 4c24a164fbd6f2794b789df0556480c3806a3e0f
databases/postgresql-devel-server/scripts/createuser
100644 blob 4c24a164fbd6f2794b789df0556480c3806a3e0f
databases/postgresql73-server/scripts/createuser
100644 blob 4c24a164fbd6f2794b789df0556480c3806a3e0f
databases/postgresql74-server/scripts/createuser
100644 blob 4c24a164fbd6f2794b789df0556480c3806a3e0f
databases/postgresql80-server/scripts/createuser
100644 blob 4c24a164fbd6f2794b789df0556480c3806a3e0f
databases/postgresql81-server/scripts/createuser
100644 blob 4c24a164fbd6f2794b789df0556480c3806a3e0f
databases/postgresql82-server/scripts/createuser
100644 blob 4c24a164fbd6f2794b789df0556480c3806a3e0f
databases/postgresql83-server/scripts/createuser
100644 blob 4c24a164fbd6f2794b789df0556480c3806a3e0f
databases/postgresql84-server/scripts/createuser
100644 blob 4c24a164fbd6f2794b789df0556480c3806a3e0f
databases/postgresql90-server/scripts/createuser
100644 blob 4c24a164fbd6f2794b789df0556480c3806a3e0f
databases/postgresql91-server/scripts/createuser
100644 blob 4c24a164fbd6f2794b789df0556480c3806a3e0f
databases/postgresql92-server/scripts/createuser
100644 blob 55a303f3106a6b5ed65d9fc73ef4cc0f8ecef48c
databases/postgresql-devel-server/pkg-comment
100644 blob 55a303f3106a6b5ed65d9fc73ef4cc0f8ecef48c
databases/postgresql73-server/pkg-comment
100644 blob 55a303f3106a6b5ed65d9fc73ef4cc0f8ecef48c
databases/postgresql74-server/pkg-comment
100644 blob 55a303f3106a6b5ed65d9fc73ef4cc0f8ecef48c
databases/postgresql80-server/pkg-comment
100644 blob 55a303f3106a6b5ed65d9fc73ef4cc0f8ecef48c
databases/postgresql81-server/pkg-comment
100644 blob 55a303f3106a6b5ed65d9fc73ef4cc0f8ecef48c
databases/postgresql82-server/pkg-comment
100644 blob 55a303f3106a6b5ed65d9fc73ef4cc0f8ecef48c
databases/postgresql83-server/pkg-comment
100644 blob 55a303f3106a6b5ed65d9fc73ef4cc0f8ecef48c
databases/postgresql84-server/pkg-comment
100644 blob 55a303f3106a6b5ed65d9fc73ef4cc0f8ecef48c
databases/postgresql90-server/pkg-comment
100644 blob 55a303f3106a6b5ed65d9fc73ef4cc0f8ecef48c
databases/postgresql91-server/pkg-comment
100644 blob 55a303f3106a6b5ed65d9fc73ef4cc0f8ecef48c
databases/postgresql92-server/pkg-comment
100644 blob 9974efd8df42684a748c41b6287226a7a776982c
databases/postgresql-devel-server/files/post-install-notes
100644 blob 9974efd8df42684a748c41b6287226a7a776982c
databases/postgresql73-server/files/post-install-notes
100644 blob 9974efd8df42684a748c41b6287226a7a776982c
databases/postgresql74-server/files/post-install-notes
100644 blob 9974efd8df42684a748c41b6287226a7a776982c
databases/postgresql80-server/files/post-install-notes
100644 blob 9974efd8df42684a748c41b6287226a7a776982c
databases/postgresql81-server/files/post-install-notes
100644 blob 9974efd8df42684a748c41b6287226a7a776982c
databases/postgresql82-server/files/post-install-notes
100644 blob 9974efd8df42684a748c41b6287226a7a776982c
databases/postgresql83-server/files/post-install-notes
100644 blob 9974efd8df42684a748c41b6287226a7a776982c
databases/postgresql84-server/files/post-install-notes
100644 blob 9974efd8df42684a748c41b6287226a7a776982c
databases/postgresql90-server/files/post-install-notes
100644 blob 9974efd8df42684a748c41b6287226a7a776982c
databases/postgresql91-server/files/post-install-notes
100644 blob 9974efd8df42684a748c41b6287226a7a776982c
databases/postgresql92-server/files/post-install-notes
100644 blob c0343bd90bf8602451a28bba3d8895f59549517d
databases/postgresql-devel-server/Makefile
100644 blob c0343bd90bf8602451a28bba3d8895f59549517d
databases/postgresql73-server/Makefile
100644 blob c0343bd90bf8602451a28bba3d8895f59549517d
databases/postgresql74-server/Makefile
100644 blob c0343bd90bf8602451a28bba3d8895f59549517d
databases/postgresql80-server/Makefile
100644 blob c0343bd90bf8602451a28bba3d8895f59549517d
databases/postgresql81-server/Makefile
100644 blob c0343bd90bf8602451a28bba3d8895f59549517d
databases/postgresql82-server/Makefile
100644 blob c0343bd90bf8602451a28bba3d8895f59549517d
databases/postgresql83-server/Makefile
100644 blob c0343bd90bf8602451a28bba3d8895f59549517d
databases/postgresql84-server/Makefile
100644 blob c0343bd90bf8602451a28bba3d8895f59549517d
databases/postgresql90-server/Makefile
100644 blob c0343bd90bf8602451a28bba3d8895f59549517d
databases/postgresql91-server/Makefile
100644 blob c0343bd90bf8602451a28bba3d8895f59549517d
databases/postgresql92-server/Makefile

% git ls-tree -r release/2.2.1|egrep "databases/Makefile"
100644 blob d53f752d7966588ffc8846d72ce2841f2e607299    databases/Makefile
% git cat-file -p d53f752d7966588ffc8846d72ce2841f2e607299
# $Id: Makefile,v 1.10 1996/10/24 00:02:50 jfitz Exp $
#
    SUBDIR +=3D exodus
    SUBDIR +=3D gdbm
    SUBDIR +=3D gnats
    SUBDIR +=3D msql
    SUBDIR +=3D p5-DBD-mSQL
    SUBDIR +=3D p5-DBI
    SUBDIR +=3D p5-Msql
    SUBDIR +=3D p5-Pg
    SUBDIR +=3D postgres95
    SUBDIR +=3D xfsql

.include <bsd.port.subdir.mk>

See? Only "postgres95" should be there. Hmm, except that doesn't match
any of the blobs. Let's see where this stuff came from:

databases/postgresql7/Makefile is blob c0343bd90bf8602451a28bba3d8895f59549=
517d
and that claims it comes for postgres ca. 1996

% git cat-file -p c0343bd90bf8602451a28bba3d8895f59549517d
# New ports collection makefile for:    postgres95
# Version required:                     1.08
# Date created:                         Oct 9 1996
# Whom:                                 Matthew Stein <matt@bdd.net>
#
#   $Id: Makefile,v 1.2 1996/09/26 01:40:19 jfitz Exp $
...

Hmm, it's not even there. This might be stranger than I thought?
Compare the SUBDIRs above with the directory listing:
% git ls-tree release/2.2.1 databases/
100644 blob d53f752d7966588ffc8846d72ce2841f2e607299    databases/Makefile
040000 tree 2f21209c87b795930ac42df96a4a55cf3094d0d3    databases/gdbm
040000 tree c80f624a8c058d96f6574f5b50d4ea12687a08a1    databases/gnats
040000 tree fdb4de7f9a9356bf9729a0f4da44ac921f4a286f    databases/msql
040000 tree fdb4de7f9a9356bf9729a0f4da44ac921f4a286f    databases/msql3
040000 tree a59f600d794680c8b6df0aa6a1475a2968d385e6    databases/p5-DBI-13=
7
040000 tree a59f600d794680c8b6df0aa6a1475a2968d385e6    databases/p5-DBI
040000 tree 2ad63299bea9b2becc7ff58907d08dbf3b0382ad    databases/p5-Msql
040000 tree 17fa463531776f8d0adc11a8ea23f2a0c351fd68    databases/p5-Pg
040000 tree 95624879e5e003f9c0531209e614d33a86979bdf    databases/pkg
040000 tree 9bd099838d36d8a09274ae03bbf50011d0cd4c02
databases/postgresql-devel-server
040000 tree 9bd099838d36d8a09274ae03bbf50011d0cd4c02
databases/postgresql-devel
040000 tree 9bd099838d36d8a09274ae03bbf50011d0cd4c02    databases/postgresq=
l7
040000 tree 9bd099838d36d8a09274ae03bbf50011d0cd4c02
databases/postgresql73-server
040000 tree 9bd099838d36d8a09274ae03bbf50011d0cd4c02    databases/postgresq=
l73
040000 tree 9bd099838d36d8a09274ae03bbf50011d0cd4c02
databases/postgresql74-server
040000 tree 9bd099838d36d8a09274ae03bbf50011d0cd4c02
databases/postgresql80-server
040000 tree 9bd099838d36d8a09274ae03bbf50011d0cd4c02
databases/postgresql81-server
040000 tree 9bd099838d36d8a09274ae03bbf50011d0cd4c02
databases/postgresql82-server
040000 tree 9bd099838d36d8a09274ae03bbf50011d0cd4c02
databases/postgresql83-server
040000 tree 9bd099838d36d8a09274ae03bbf50011d0cd4c02
databases/postgresql84-server
040000 tree 9bd099838d36d8a09274ae03bbf50011d0cd4c02
databases/postgresql90-server
040000 tree 9bd099838d36d8a09274ae03bbf50011d0cd4c02
databases/postgresql91-server
040000 tree 9bd099838d36d8a09274ae03bbf50011d0cd4c02
databases/postgresql92-server

Ah, I think this wasn't a repo-copy then, but instead a repo move!
postgres95 got retroactively renamed to postgresqlX at some point in
time, thus the history was fouled up. This should've been a repo-copy
plus deletion if we had wanted to reserve some semblance of history.

I'm afraid that looking at the CVS repo then will not help, as it has
been butchered. If someone had all CVS commit mails from back then, it
might be reconstructable ...
Then again, there were very few ports back then and there are only a
handful of tags. So motivated archaeologists could reconstruct this
pretty easily with a handful of scripts and a couple of spare
weekends.

Cheers
Uli



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ9axoQKPRsDApNBZ2uQ4N2ys0L_e7aHjWX2qGo%2BycvSG2k3Yg>