[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-scm-interest
Subject:    Potential for loss of history with svn2git
From:       John Lawlor <jk.lawlor () gmail ! com>
Date:       2017-12-17 5:09:01
Message-ID: CA+P85akk=Tg5nxm2W_iBURCXRedTxNBsehJVtgOkYX4qEiYCfg () mail ! gmail ! com
[Download RAW message or body]

Hi,

I have encountered this problem with svn2git. It may be more to do with
poor repository structure in SVN, but it's worth highlighting all the same.

Let's say we have the following in SVN:

svn/projects/Modules/framework/file-appender/trunk
svn/projects/Modules/framework/file-appender/branches
svn/projects/Modules/framework/file-appender/tags

svn/projects/Modules/framework/file-manager/trunk
svn/projects/Modules/framework/file-manager/branches
svn/projects/Modules/framework/file-manager/tags

This is a pretty standard layout. However, for some reason the SVN
administrator gave developers write access to Modules. Really, I think Modules
should never have existed, it should probably be more like:

svn/projects/file-appender
svn/projects/file-manager

This results in several places for history to be recorded in the SVN tree.
If someone checks out 'Modules', they can make commits above 'trunk' into
say file-appender:

(from svn log)

Changed paths:
A Modules/framework/file-manager/trunk/pom.xml

If you subsequently convert file-appender to git, using a rule like:

match /projects/Modules/framework/file-appender/trunk

the commit recorded at the Modules level will not appear in your converted
repository. This makes sense as the commit wasn't made in 'trunk', it was
made at 'Modules'.

I am just wondering if this is really a problem or not. You might be
missing the commit but I am thinking, should 'pom.xml' be modified later at
'trunk', the contents of the file will still be there from the commit made
in the wrong place.

What can and does happen though is if the file is never modified in 'trunk',
after being created in 'Modules', it will be lost. It has no history in
trunk, hence it doesn't exist.

Ideas/thoughts very welcome

John

[Attachment #3 (text/html)]

<div dir="ltr"><div>Hi,</div><div><br></div><div>I have encountered this problem with \
svn2git. It may be more to do with poor repository structure in SVN, but it&#39;s \
worth highlighting all the same.</div><div><br></div><div>Let&#39;s say we have the \
following in SVN:</div><div><font \
face="monospace,monospace"></font><br></div><div><font \
face="monospace,monospace">svn/projects/Modules/framework/file-appender/trunk</font></div><div><div \
style="background:none;outline:transparent 0px;border:0px \
rgb(34,34,34);width:489px;text-align:left;color:rgb(34,34,34);text-transform:none;line \
-height:normal;text-indent:0px;letter-spacing:normal;overflow:visible;font-size:13.33p \
x;font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px;white-space:normal;font-size-adjust:none;font-stretch:normal"><font \
face="monospace,monospace">svn/projects/Modules/framework/file-appender/branches</font></div><div \
style="background:none;outline:transparent 0px;border:0px \
rgb(34,34,34);width:489px;text-align:left;color:rgb(34,34,34);text-transform:none;line \
-height:normal;text-indent:0px;letter-spacing:normal;overflow:visible;font-size:13.33p \
x;font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px;white-space:normal;font-size-adjust:none;font-stretch:normal"><div><div \
style="background:none;outline:transparent 0px;border:0px \
rgb(34,34,34);width:489px;text-align:left;color:rgb(34,34,34);text-transform:none;line \
-height:normal;text-indent:0px;letter-spacing:normal;overflow:visible;font-size:13.33p \
x;font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px;white-space:normal;font-size-adjust:none;font-stretch:normal"><font \
face="monospace,monospace">svn/projects/Modules/framework/file-appender/tags</font></div><div \
style="background:none;outline:transparent 0px;border:0px \
rgb(34,34,34);width:489px;text-align:left;color:rgb(34,34,34);text-transform:none;line \
-height:normal;text-indent:0px;letter-spacing:normal;overflow:visible;font-size:13.33p \
x;font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;word-spacing:0px;white-space:normal;font-size-adjust:none;font-stretch:normal"><div><font \
face="monospace,monospace"></font><br></div></div></div></div></div><div><font \
face="monospace,monospace">svn/projects/Modules/framework/file-manager/trunk</font></div><div><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-size:13.33px;font-style:normal;font-variant:nor \
mal;font-weight:400;text-decoration:none;word-spacing:0px;display:inline;white-space:n \
ormal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><font \
face="monospace,monospace">svn/projects/Modules/framework/file-manager/branches</font></span></div><div><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-size:13.33px;font-variant:normal;word-spacing:0 \
px;display:inline;white-space:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-size:13.33px;font-style:normal;font-variant:nor \
mal;font-weight:400;text-decoration:none;word-spacing:0px;display:inline;white-space:n \
ormal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><font \
face="monospace,monospace">svn/projects/Modules/framework/file-manager/tags</font></span></span></div><div><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-family:arial,sans-serif;font-size:13.33px;font- \
variant:normal;word-spacing:0px;display:inline;white-space:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><span \
style="font:400 13.33px \
arial,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0 \
px;letter-spacing:normal;text-decoration:none;word-spacing:0px;display:inline;white-sp \
ace:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><font \
face="monospace,monospace"><br></font></span></span></div><div><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-family:arial,sans-serif;font-size:13.33px;font- \
variant:normal;word-spacing:0px;display:inline;white-space:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><span \
style="font:400 13.33px \
arial,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0 \
px;letter-spacing:normal;text-decoration:none;word-spacing:0px;display:inline;white-sp \
ace:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent">This \
is a pretty standard layout. However, for some reason the SVN administrator gave \
developers write access to <font face="monospace,monospace">Modules</font>. Really, I \
think <font face="monospace,monospace">Modules </font>should never have existed, it \
should probably be more like:</span></span></div><div><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-family:arial,sans-serif;font-size:13.33px;font- \
variant:normal;word-spacing:0px;display:inline;white-space:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><span \
style="font:400 13.33px \
arial,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0 \
px;letter-spacing:normal;text-decoration:none;word-spacing:0px;display:inline;white-sp \
ace:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><br></span></span></div><div><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-size:13.33px;font-variant:normal;word-spacing:0 \
px;display:inline;white-space:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-size:13.33px;font-style:normal;font-variant:nor \
mal;font-weight:400;text-decoration:none;word-spacing:0px;display:inline;white-space:n \
ormal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><font \
face="monospace,monospace">svn/projects/file-appender</font></span></span></div><div><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-size:13.33px;font-variant:normal;word-spacing:0 \
px;display:inline;white-space:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-size:13.33px;font-style:normal;font-variant:nor \
mal;font-weight:400;text-decoration:none;word-spacing:0px;display:inline;white-space:n \
ormal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><font \
face="monospace,monospace">svn/projects/file-manager</font></span></span></div><div><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-family:arial,sans-serif;font-size:13.33px;font- \
variant:normal;word-spacing:0px;display:inline;white-space:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><span \
style="font:400 13.33px \
arial,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0 \
px;letter-spacing:normal;text-decoration:none;word-spacing:0px;display:inline;white-sp \
ace:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><font \
face="monospace,monospace"><br></font></span></span></div><div><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-family:arial,sans-serif;font-size:13.33px;font- \
variant:normal;word-spacing:0px;display:inline;white-space:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><span \
style="font:400 13.33px \
arial,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0 \
px;letter-spacing:normal;text-decoration:none;word-spacing:0px;display:inline;white-sp \
ace:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent">This \
results in several places for history to be recorded in the SVN tree. If someone \
checks out &#39;<font face="monospace,monospace">Modules</font>&#39;, they can make \
commits above <font face="monospace,monospace">&#39;trunk&#39;</font> into say <font \
face="monospace,monospace">file-appender</font>:</span></span></div><div><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-family:arial,sans-serif;font-size:13.33px;font- \
variant:normal;word-spacing:0px;display:inline;white-space:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><span \
style="font:400 13.33px \
arial,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0 \
px;letter-spacing:normal;text-decoration:none;word-spacing:0px;display:inline;white-sp \
ace:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><br></span></span></div><div>(from \
svn log)</div><div><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-family:arial,sans-serif;font-size:13.33px;font- \
variant:normal;word-spacing:0px;display:inline;white-space:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><span \
style="font:400 13.33px \
arial,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0 \
px;letter-spacing:normal;text-decoration:none;word-spacing:0px;display:inline;white-sp \
ace:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><br></span></span></div><div><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-size:13.33px;font-variant:normal;word-spacing:0 \
px;display:inline;white-space:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-size:13.33px;font-style:normal;font-variant:nor \
mal;font-weight:400;text-decoration:none;word-spacing:0px;display:inline;white-space:n \
ormal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><font \
face="monospace,monospace">Changed paths:</font></span></span></div><div><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-size:13.33px;font-variant:normal;word-spacing:0 \
px;display:inline;white-space:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-size:13.33px;font-style:normal;font-variant:nor \
mal;font-weight:400;text-decoration:none;word-spacing:0px;display:inline;white-space:n \
ormal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><font \
face="monospace,monospace">A \
Modules/framework/file-manager/trunk/pom.xml</font></span></span></div><div><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-family:arial,sans-serif;font-size:13.33px;font- \
variant:normal;word-spacing:0px;display:inline;white-space:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><span \
style="font:400 13.33px \
arial,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0 \
px;letter-spacing:normal;text-decoration:none;word-spacing:0px;display:inline;white-sp \
ace:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><font \
face="monospace,monospace"><br></font></span></span></div><div><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-family:arial,sans-serif;font-size:13.33px;font- \
variant:normal;word-spacing:0px;display:inline;white-space:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><span \
style="font:400 13.33px \
arial,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0 \
px;letter-spacing:normal;text-decoration:none;word-spacing:0px;display:inline;white-sp \
ace:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent">If \
you subsequently convert <font face="monospace,monospace">file-appender</font> to \
git, using a rule like:</span></span></div><div><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-family:arial,sans-serif;font-size:13.33px;font- \
variant:normal;word-spacing:0px;display:inline;white-space:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><span \
style="font:400 13.33px \
arial,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0 \
px;letter-spacing:normal;text-decoration:none;word-spacing:0px;display:inline;white-sp \
ace:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><br></span></span></div><div><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-size:13.33px;font-variant:normal;word-spacing:0 \
px;display:inline;white-space:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-size:13.33px;font-style:normal;font-variant:nor \
mal;font-weight:400;text-decoration:none;word-spacing:0px;display:inline;white-space:n \
ormal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><font \
face="monospace,monospace">match \
/projects/Modules/framework/file-appender/trunk</font></span></span></div><div><span \
style="text-align:left;color:rgb(34,34,34);text-transform:none;line-height:normal;text \
-indent:0px;letter-spacing:normal;font-family:arial,sans-serif;font-size:13.33px;font- \
variant:normal;word-spacing:0px;display:inline;white-space:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><span \
style="font:400 13.33px \
arial,sans-serif;text-align:left;color:rgb(34,34,34);text-transform:none;text-indent:0 \
px;letter-spacing:normal;text-decoration:none;word-spacing:0px;display:inline;white-sp \
ace:normal;font-size-adjust:none;font-stretch:normal;float:none;background-color:transparent"><font \
face="monospace,monospace"><br></font></span></span></div><div>the commit recorded at \
the Modules level will not appear in your converted repository. This makes sense as \
the commit wasn&#39;t made in <font \
face="monospace,monospace">&#39;trunk&#39;</font>, it was made at <font \
face="monospace,monospace">&#39;Modules&#39;</font>.  </div><div><br></div><div>I am \
just wondering if this is really a problem or not. You might be missing the commit \
but I am thinking, should &#39;<font face="monospace,monospace">pom.xml</font>&#39; \
be modified later at <font face="monospace,monospace">&#39;trunk&#39;</font>, the \
contents of the file will still be there from the commit made in the wrong \
place.</div><div><br></div><div>What can and does happen though is if the file is \
never modified in <font face="monospace,monospace">&#39;trunk&#39;</font>, after \
being created in <font face="monospace,monospace">&#39;Modules&#39;</font>, it will \
be lost. It has no history in <font face="monospace,monospace">trunk</font>, hence it \
doesn&#39;t exist.</div><div><br></div><div>Ideas/thoughts very \
welcome</div><div><br></div><div>John</div><div><br></div><div><br></div><div><br></div></div>




[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic