<div dir="ltr"><div>Hi Nicolás,</div><div><br></div><div>Here is the output of the parent commit:</div><div><br></div><div>------------------------------------------------------------------------<br></div><div>r428595 | gkumar | 2016-03-16 04:19:05 -0400 (Wed, 16 Mar 2016) | 2 lines<br>Changed paths:<br>   A /Modules/bdpe/parser-api<br>   A /Modules/bdpe/parser-api/.project<br>   A /Modules/bdpe/parser-api/.settings<br>   A /Modules/bdpe/parser-api/.settings/edu.umd.cs.findbugs.core.prefs<br>   A /Modules/bdpe/parser-api/osgi.bnd<br>   A /Modules/bdpe/parser-api/pom.xml<br>   A /Modules/bdpe/parser-api/src<br>   A /Modules/bdpe/parser-api/src/main<br>   A /Modules/bdpe/parser-api/src/main/java<br>   A /Modules/bdpe/parser-api/src/main/java/com<br>   A /Modules/bdpe/parser-api/src/main/java/com/openet<br>   A /Modules/bdpe/parser-api/src/main/java/com/openet/modules<br>   A /Modules/bdpe/parser-api/src/main/java/com/openet/modules/bdpe<br>   A /Modules/bdpe/parser-api/src/main/java/com/openet/modules/bdpe/parserapi<br>   A /Modules/bdpe/parser-api/src/main/java/com/openet/modules/bdpe/parserapi/Parser.java<br>   A /Modules/bdpe/parser-api/src/main/resources<br>   A /Modules/bdpe/parser-api/src/test<br>   A /Modules/bdpe/parser-api/src/test/java<br>   A /Modules/bdpe/parser-api/src/test/resources</div><div>Parser API added to the Modules/bdpe as an independent osgi module.</div><div></div><div><br></div><div><br></div><div>Regards,</div><div>John<br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 17 December 2017 at 22:56, Nicolás Alvarez <span dir="ltr"><<a href="mailto:nicolas.alvarez@gmail.com" target="_blank">nicolas.alvarez@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">2017-12-17 11:58 GMT-03:00 John Lawlor <<a href="mailto:jk.lawlor@gmail.com">jk.lawlor@gmail.com</a>>:<br>
> Hi Nicolás,<br>
><br>
> It is discussed on the KDE svn2git page. They talk about how to fix missing<br>
> parents:<br>
> <a href="https://techbase.kde.org/Projects/MoveToGit/UsingSvn2Git#Post-processing" target="_blank" rel="noreferrer">https://techbase.kde.org/<wbr>Projects/MoveToGit/<wbr>UsingSvn2Git#Post-processing</a><br>
<br>
This is for when the parent *is* converted into the git repository,<br>
just not marked as a parent. Usually when a branch is merged into<br>
another.<br>
<br>
> You can see it in the history of the git repository. Here is an example from<br>
> one I converted.<br>
><br>
> The commit message was:<br>
> refactor parser-api structure to be a module; add scm/developerConnection<br>
> tags to pom<br>
><br>
> Now the developer was 'updating' the pom.xml, that is clear from the commit<br>
> message.<br>
> But, from gits perspective this is a new file, and pom.xml is recorded as<br>
> being added to version control.<br>
><br>
> The parent commit is missing from the history.<br>
><br>
> The commit has no parents according to git. But the commit has a parent in<br>
> svn, and I can find the revision for it.<br>
> If I convert the 'Modules' directory to git using 'svn2git':<br>
><br>
> match /projects/Modules/<br>
><br>
> I can find the commit of the parent recorded in the history for the<br>
> 'Modules' directory. Does this not point to<br>
> history being recorded in different places depending on how you do your<br>
> checkout in SVN?<br>
<br>
Please find the previous commit where pom.xml was modified (or added,<br>
if "add scm/developerConnection" was the second modification) and show<br>
me its svn log -v.<br>
<br>
> Regards,<br>
> John<br>
><br>
><br>
><br>
><br>
> On 17 December 2017 at 05:32, Nicolás Alvarez <<a href="mailto:nicolas.alvarez@gmail.com">nicolas.alvarez@gmail.com</a>><br>
> wrote:<br>
>><br>
>> 2017-12-17 2:09 GMT-03:00 John Lawlor <<a href="mailto:jk.lawlor@gmail.com">jk.lawlor@gmail.com</a>>:<br>
>> > Hi,<br>
>> ><br>
>> > I have encountered this problem with svn2git. It may be more to do with<br>
>> > poor<br>
>> > repository structure in SVN, but it's worth highlighting all the same.<br>
>> ><br>
>> > Let's say we have the following in SVN:<br>
>> ><br>
>> > svn/projects/Modules/<wbr>framework/file-appender/trunk<br>
>> > svn/projects/Modules/<wbr>framework/file-appender/<wbr>branches<br>
>> > svn/projects/Modules/<wbr>framework/file-appender/tags<br>
>> ><br>
>> > svn/projects/Modules/<wbr>framework/file-manager/trunk<br>
>> > svn/projects/Modules/<wbr>framework/file-manager/<wbr>branches<br>
>> > svn/projects/Modules/<wbr>framework/file-manager/tags<br>
>> ><br>
>> > This is a pretty standard layout. However, for some reason the SVN<br>
>> > administrator gave developers write access to Modules. Really, I think<br>
>> > Modules should never have existed, it should probably be more like:<br>
>> ><br>
>> > svn/projects/file-appender<br>
>> > svn/projects/file-manager<br>
>> ><br>
>> > This results in several places for history to be recorded in the SVN<br>
>> > tree.<br>
>> > If someone checks out 'Modules', they can make commits above 'trunk'<br>
>> > into<br>
>> > say file-appender:<br>
>> ><br>
>> > (from svn log)<br>
>> ><br>
>> > Changed paths:<br>
>> > A Modules/framework/file-<wbr>manager/trunk/pom.xml<br>
>> ><br>
>> > If you subsequently convert file-appender to git, using a rule like:<br>
>> ><br>
>> > match /projects/Modules/framework/<wbr>file-appender/trunk<br>
>> ><br>
>> > the commit recorded at the Modules level will not appear in your<br>
>> > converted<br>
>> > repository. This makes sense as the commit wasn't made in 'trunk', it<br>
>> > was<br>
>> > made at 'Modules'.<br>
>> ><br>
>> > I am just wondering if this is really a problem or not. You might be<br>
>> > missing<br>
>> > the commit but I am thinking, should 'pom.xml' be modified later at<br>
>> > 'trunk',<br>
>> > the contents of the file will still be there from the commit made in the<br>
>> > wrong place.<br>
>> ><br>
>> > What can and does happen though is if the file is never modified in<br>
>> > 'trunk',<br>
>> > after being created in 'Modules', it will be lost. It has no history in<br>
>> > trunk, hence it doesn't exist.<br>
>><br>
>> I have no idea what you mean with "several places for history to be<br>
>> recorded in the SVN tree" or "at the Modules level" etc...<br>
>><br>
>> If someone modifies<br>
>> /projects/Modules/framework/<wbr>file-appender/trunk/pom.xml, then "match<br>
>> /projects/Modules/framework/<wbr>file-appender/trunk/" will obviously match<br>
>> it, since it's a prefix of the full path being modified. It doesn't<br>
>> matter what you checked out when making the commit. Checking out /a/b<br>
>> and making a change to c/d.txt and checking out /a and making a change<br>
>> to b/c/d.txt gives exactly the same result: a commit that changes<br>
>> /a/b/c/d.txt. The two cases aren't distinguishable in the resulting<br>
>> SVN repository, and svn2git will work the same.<br>
>><br>
>> I see in your example you mention a change is done in file-manager,<br>
>> and then you convert file-appender. I assume that's just a mistake in<br>
>> your email? :)<br>
<span class="HOEnZb"><font color="#888888">>><br>
>> --<br>
>> Nicolás<br>
>> Award-winning git repo surgeon<br>
><br>
><br>
<br>
<br>
<br>
--<br>
Nicolás<br>
</font></span></blockquote></div><br></div>