public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Joseph Myers <joseph@codesourcery.com>
To: <gcc@gcc.gnu.org>
Cc: <esr@thyrsus.com>
Subject: Re: Fixing cvs2svn branchpoints
Date: Fri, 01 Nov 2019 00:44:00 -0000	[thread overview]
Message-ID: <alpine.DEB.2.21.1911010038100.8657@digraph.polyomino.org.uk> (raw)
In-Reply-To: <alpine.DEB.2.21.1910181601580.17695@digraph.polyomino.org.uk>

Here are complete lists of reparentings I think should be done on the 
commits that start branches, along with my notes on branches with messy 
initial commits but where I don't think any reparenting should be done.  
The REPARENT: lines have the meaning I described in 
<https://gcc.gnu.org/ml/gcc/2019-10/msg00127.html>.

Of the 54 branches with suspicious branchpoints, I have 32 with 
automatically suggested or verified reparentings, meeting the criteria 
given in that message for the new parent not being suspicious, and 7 more 
I think should be reparented although the new parent is still suspicious 
in some ways (e.g. because of vendor branch issues or non-atomic 
branching).  The remaining 15 suspicious cases are ones where I think the 
existing branchpoint is the best one available.

Automatically suggested or verified reparentings:

REPARENT: /branches/GC_5_0_ALPHA_1 27860 /trunk 27852 /trunk 27855
REPARENT: /branches/apple-200511-release-branch 105574 /trunk 95082 /branches/apple-local-200502-branch 105446
REPARENT: /branches/apple-gcc_os_35-branch 90607 /branches/tree-ssa-20020619-branch 79740 /branches/apple-ppc-branch 90334
REPARENT: /branches/apple-tiger-release-branch 96595 /branches/tree-ssa-20020619-branch 79740 /branches/apple-ppc-branch 96593
REPARENT: /branches/bje-unsw-branch 97591 /trunk 95529 /branches/gcc-4_0-branch 97590
REPARENT: /branches/bounded-pointers-branch 33333 /trunk 33317 /trunk 33062
REPARENT: /branches/cfg-branch 46945 /trunk 46940 /trunk 46941
REPARENT: /branches/csl-3_3_1-branch 70143 /trunk 60111 /branches/gcc-3_3-branch 70142
REPARENT: /branches/csl-3_4-linux-branch 90110 /trunk 75991 /branches/gcc-3_4-branch 90109
REPARENT: /branches/csl-3_4_0-hp-branch 80843 /trunk 75991 /branches/gcc-3_4-branch 80842
REPARENT: /branches/csl-3_4_3-linux-branch 93879 /trunk 72971 /branches/csl-arm-branch 92959
REPARENT: /branches/csl-arm-2004-q3-branch 90934 /trunk 72971 /branches/csl-arm-branch 90933
REPARENT: /branches/csl-gxxpro-3_4-branch 102442 /trunk 72971 /branches/csl-arm-branch 102441
REPARENT: /branches/csl-sol210-3_4-branch 87927 /trunk 75991 /branches/gcc-3_4-branch 87903
REPARENT: /branches/cygming331 70683 /trunk 60111 /branches/gcc-3_3-branch 70142
REPARENT: /branches/cygming332 73014 /trunk 60111 /branches/cygming331 73013
REPARENT: /branches/cygwin-mingw-gcc-3_1-branch 53609 /trunk 50029 /branches/gcc-3_1-branch 53596
REPARENT: /branches/cygwin-mingw-gcc-3_2-branch 55799 /trunk 50029 /branches/cygwin-mingw-gcc-3_1-branch 55797
REPARENT: /branches/cygwin-mingw-gcc-3_2_1-branch 59662 /trunk 50029 /branches/cygwin-mingw-gcc-3_2-branch 59368
REPARENT: /branches/cygwin-mingw-v2-branch 60175 /trunk 50029 /branches/gcc-3_2-branch 59267
REPARENT: /branches/egcs_1_00_branch 16282 /branches/devo_gcc_testsuite 14842 /trunk 16272
REPARENT: /branches/gcc-2_95_2_1-branch 30162 /trunk 26993 /branches/gcc-2_95-branch 30160
REPARENT: /branches/gcc-3_2-branch 55785 /trunk 50029 /branches/gcc-3_1-branch 55783
REPARENT: /branches/gcc-3_3-e500-branch 65902 /trunk 60111 /branches/gcc-3_3-branch 65660
REPARENT: /branches/gcc-3_3-rhl-branch 66998 /trunk 60111 /branches/gcc-3_3-branch 66832
REPARENT: /branches/gcc-3_4-e500-branch 89417 /trunk 75991 /branches/gcc-3_4-branch 89410
REPARENT: /branches/gcc-3_4-rhl-branch 81014 /trunk 75991 /branches/gcc-3_4-branch 80870
REPARENT: /branches/gcc-4_0-rhl-branch 95664 /trunk 95533 /branches/gcc-4_0-branch 95655
REPARENT: /branches/gomp-01-branch 62579 /trunk 62499 /branches/tree-ssa-20020619-branch 62392
REPARENT: /branches/libgcj-2_95-branch 27730 /branches/CYGNUS 26267 /trunk 27727
REPARENT: /branches/struct-reorg-branch 87007 /branches/tree-ssa-20020619-branch 77756 /branches/tree-profiling-branch 86038
REPARENT: /branches/tree-cleanup-branch 87819 /trunk 87795 /trunk 87698

In the case of cfg-branch, the reparenting was suggested automatically
based on the branchpoint tag with a note of possible mismatch between
branch and branchpoint tag; that mismatch appears just to be a vendor
branch artifact and the reparenting seems correct.

Manually identified reparentings (not perfect matches, but seem the
best available and better than the existing parents):

REPARENT: /branches/apple-200508-beta-branch 102941 /trunk 95082 /branches/apple-local-200502-branch 102940
REPARENT: /branches/bnw-simple-branch 56621 /trunk 54811 /branches/tree-ssa-20020619-branch 56620
REPARENT: /branches/egcs_gc_branch 19641 /branches/devo_gcc_testsuite 14842 /trunk 19615
REPARENT: /branches/ffixinc-branch 23624 /branches/devo_gcc_testsuite 14842 /trunk 23622
REPARENT: /branches/gcc-3_2-rhl8-branch 57454 /trunk 50029 /branches/gcc-3_2-branch 56747
REPARENT: /branches/gnu-win32-b20-branch 22525 /branches/devo_gcc_testsuite 14842 /branches/egcs_1_1_branch 22523
REPARENT: /branches/structure-aliasing-branch 87042 /trunk 86982 /trunk 86980

My notes on branches with imperfect parents to leave as-is, as
considered good-enough after analysis (even where the automatic
process suggested a reparenting):

Vendor branch artifacts, as seen in various branches, are generally
cases where a file was first imported on a CVS vendor branch, and then
successive imports done there before any non-vendor-branch changes
were made, so meaning that for a while revisions 1.1.1.1, 1.1.1.2,
etc. were the HEAD revision as that's how CVS defines HEAD in that
case.  For some reason, in at least some cases where CVS was used to
create branches while that was the case, it created them based on
revision 1.1 of the file, the first revision, rather than the latest
revision on the vendor branch, meaning that the branch creation commit
involves reverting those files to their initially imported versions -
in the cases where I checked the CVS ,v files, cvs2svn was accurately
representing that peculiarity of the CVS history.

Apart from vendor branch artifacts, the main issue detected by my
script as a possible problem with the branchpoint is CVS branching
being non-atomic so the actual branchpoint spans parts of multiple
separate CVS commits.

BAD: /branches/csl-hpux-branch 73668 /trunk 73667
BAD: /branches/gcc-3_4-branch 76005 /trunk 75991
BAD: /branches/gcc-3_5-integration-branch 75824 /trunk 75823
BAD: /branches/libada-branch 72845 /trunk 72843
BAD: /branches/libobjc-branch 76540 /trunk 76539
  [boehm-gc/{libtool.m4,mkinstalldirs,install-sh} vendor branch
   artifacts]

MISMATCH: /branches/csl-arm-branch 73001 /tags/csl-arm-branchpoint 84258
BAD: /branches/csl-arm-branch 73001 /trunk 72977
  [non-atomic branching, branchpoint appears to span commits in range
   72973 to 72977, plus those vendor branch artifacts]

BAD: /branches/egcs_1_1_branch 21136 /trunk 21131
  [various vendor branch artifacts]

BAD: /branches/gomp-20050608-branch 100901 /trunk 100781
  [non-atomic branching, branchpoint has part but not all or r100781
   commit]

MISMATCH: /branches/hammer-3_3-branch 58890 /tags/hammer-3_3-branchpoint 58860
  [the automatically-suggested reparenting from /trunk:58888 to
   /trunk:58859 would be appropriate to the branchpoint tag - however,
   the branchpoint tag does not match the first commit on the branch
   and the existing parent is appropriate to that first commit, so I
   propose no change to this branch]

BAD: /branches/hot-cold-branch 88785 /trunk 88781
  [non-atomic branching, branchpoint has part but not all of r88784
  commit]

BAD: /branches/ia64-fp-model-branch 89947 /trunk 89945
  [non-atomic branching, branchpoint has part but not all of r89946
   commit]

BAD: /branches/pch-branch 49750 /trunk 48845
  [boehm-gc/Makefile.direct vendor branch artifact]

BAD: /branches/pchmerge-branch 45961 /trunk 45960
  [non-atomic branching, no branchpoint tag, branchpoint appears to
   span commits in range 45925 to 45960]

BAD: /branches/premerge-fsf-branch 14640 /trunk 14639
  [only oddity is branchpoint tag adding files not present on trunk]

BAD: /branches/java-gui-branch 77760 /trunk 77730
  [looks like some 77730 is right for directories branched initially,
   other directories only branched four months later]

-- 
Joseph S. Myers
joseph@codesourcery.com

  reply	other threads:[~2019-11-01  0:44 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-18 16:26 Joseph Myers
2019-11-01  0:44 ` Joseph Myers [this message]
2019-11-01  4:45   ` Eric S. Raymond
2019-11-01 16:14     ` Joseph Myers
2019-11-02  0:45       ` Joseph Myers
2019-11-02 16:30         ` Eric S. Raymond
2019-11-04 17:31           ` Joseph Myers
2019-11-07 16:52             ` Eric S. Raymond

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.DEB.2.21.1911010038100.8657@digraph.polyomino.org.uk \
    --to=joseph@codesourcery.com \
    --cc=esr@thyrsus.com \
    --cc=gcc@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).