This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Test GCC conversion with reposurgeon available


> On Dec 22, 2019, at 4:56 PM, Joseph Myers <joseph@codesourcery.com> wrote:
> 
> On Thu, 19 Dec 2019, Joseph Myers wrote:
> 
>> And two more.
>> 
>> git+ssh://gcc.gnu.org/home/gccadmin/gcc-reposurgeon-4a.git
>> git+ssh://gcc.gnu.org/home/gccadmin/gcc-reposurgeon-4b.git
> 
> Two more.
> 
> git+ssh://gcc.gnu.org/home/gccadmin/gcc-reposurgeon-5a.git
> git+ssh://gcc.gnu.org/home/gccadmin/gcc-reposurgeon-5b.git
> 
> The main changes are:
> 
> * The case of both svnmerge-integrated and svn:mergeinfo being set is now 
> handled properly, so the commit Bernd found is interpreted as a merge from 
> trunk to named-addr-spaces-branch and has exactly two parents as expected, 
> with the parents corresponding to the merges from other branches to trunk 
> being optimized away.
> 
> * The author map used now avoids timezone-only entries also remapping 
> email addresses, so the email addresses from the ChangeLogs are used 
> whenever a commit adds ChangeLog entries from exactly one author.
> 
> * When commits add ChangeLog entries from more than one author (e.g. 
> merges done in CVS), the committer is now used as the author rather than 
> selecting one of the authors from the ChangeLog entries.
> 
> * The latest whitelisting / PR corrections are used with Richard's script 
> (430 checkme: entries remain).
> 
> * One fix to the ref renaming in gcc-reposurgeon-5b.git so that the tag 
> gcc-3_2-rhl8-3_2-7 properly ends up in vendors rather than prereleases.

I'll spend next couple of days comparing Joseph's gcc-reposurgeon-5a.git conversion against my gcc-pretty.git and gcc-reparent.git conversions, and will post results along with the scripts to this mailing list.

Regarding gcc-pretty.git and gcc-reparent.git conversions, I have the following comments so far:

Q1: Why are there missing branches for stuff that didn't originate at trunk@1?
A1: Indeed, that's by design / configuration.  The scripts start with trunk@1 and build a parent DAG from that node.  If desired, it is trivial to add more initial "root" commits to include these missing branches.

Q2: Why are entries from branches/st/tags treated as branches, not as tags?
A2: Because I opted to not special-case these to simplify comparison of different conversions.  Tags/* entries are converted to git annotated tags in a separate pass, an it is trivial to add handling for branches/st/tags there.

Q3: Why do reparented branches in gcc-reparent.git repo have merge commits at the point of reparenting?
A3: That's an artifact of svn-git machinery my scripts are using.  I haven't looked at this in depth.

Q4: Is it possible to integrate Richard E.'s script to rewrite commit log messages?
A5: Yes, absolutely.  The scripts have a pass to rewrite commit author/committer entries, and log rewrite easily fits in there.  It would be very helpful to have a version of Richard's script that runs on per-commit basis, suitable for "git filter-branch" consumption.

Regards,

--
Maxim Kuvyrkov
https://www.linaro.org




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]