Hi, Stefan,

Thanks for your feedback!  Please see my response inline.
On Fri, Jul 21, 2017 at 2:16 AM, Stefan Sperling <s...@apache.org> wrote:
> On Thu, Jul 20, 2017 at 08:01:55PM -0700, Xin LI wrote:
> The FreeBSD repository is one of the best real world data sets available
> to Subversion developers. I have referred to it several times while
> working on the new conflict resolver planned for Subversion 1.10 and
> have spent days running test merges against this repository.
> The repository shows many difficult and interesting problems we would
> normally only see in repositories that are locked up inside companies.
>
> While some of the problems I have seen are due to limitations of SVN,
> I believe most problems FreeBSD developers have with SVN are self-made.
> FreeBSD developers in general do not really understand the tool and
> don't know how to work arounds its weaknesses. The FreeBSD handbook has
> a section on Subversion which is full of bad advice and half-truths.

I guess you mean this article?
https://www.freebsd.org/doc/en/articles/committers-guide/subversion-primer.html

Could you please be more specific with the bad advices?  (It would be
very helpful if we could have fixed these documents and/or practices,
if possible; I'll take a look at the premier to get the issues raised
in EuroBSDCon 2014 tutorial addressed).

> I wish there was more communication between the FreeBSD and Subversion
> projects about such issues, but such communication is virtually never
> existed. (I may be wrong, but I think you are the only FreeBSD developer
> posting on this list -- thank you!)

I think there are other FreeBSD developers on this mailing list.

> At EuroBSDcon 2014 I offered a special SVN tutorial for FreeBSD developers.
> There were many participants but *nobody* of them were FreeBSD developers :(
> There was a clear lack of interest for this kind of communication.
> So the tutorial didn't go as planned and no interesting conversation happened.
> You can still find the tutorial here (one of your own bad merges was discussed
> in there, too, I believe): https://stsp.name/eurobsdcon2014-freebsd/

I didn't knew this tutorial before, and thanks for taking time to do
the analysis and sharing.

So if I understood correctly, when doing a vendor import with file
renames, in addition of doing 'svn mv's in the vendor tree [quick
question: is there some semi-automated way to do this?], the developer
should also handle the merge conflicts differently in the development
trunk, by replaying each merges with:

svn revert <old file>        # Restore the file to before merge state
svn rm <new file>           # Remove new file in preparation of actual merge
svn mv <old file> <new file> # Move old file to new location
svn merge --accept postpone ^/vendor/.../<old file>@<vendor commit -1>
^/vendor/.../<new file>@<vendor commit> <new file>

Then do a 'svn propdel svn:mergeinfo' on these new files?

[Do we need to do similar changes when merging to stable/?]

And am I understanding correctly that the benefit of doing this is
that the new files now get the same change history line from
development trunk, instead of as a continue of the vendor history, and
also avoided missing changes that happen in development trunk but not
in vendor area (or development trunk)?

Thanks in advance!

Cheers,

Reply via email to