2016-06-11 21:53 GMT+02:00 Branko Čibej <br...@apache.org>:

> On 11.06.2016 21:39, Olof wrote:
> >
> >
> > 2016-06-11 20:03 GMT+02:00 Branko Čibej <br...@apache.org
> > <mailto:br...@apache.org>>:
> >
> >     On 11.06.2016 19:48, Olof wrote:
> >     > Hello,
> >     >
> >     > Perhaps someone here can bring some light to this topic.
> >     >
> >     > We use the common technique with a trunk and feature branches. A
> >     > feature branch is created by branching trunk. The feature branch is
> >     > continually kept up-to-date with trunk by merging changes from
> trunk
> >     > to feature branch (rebase). When development in the feature
> >     branch is
> >     > finished the content is merged back to trunk.
> >     >
> >     > When the feature branch is merged back to trunk all changes to the
> >     > feature branch, including those created by rebase, is recorded in
> >     > svn:mergeinfo property of the affected file/folder in trunk. One
> >     > consequence of this is that files and folders which have not been
> >     > updated in the feature branch (except by rebase) is marked as
> >     changed
> >     > (property only) in trunk when the feature branch is merged back
> >     to trunk.
> >     >
> >     > The trunk log shows that these folders/files where changed when the
> >     > feature branch was merged back to trunk despite that no folder/file
> >     > content has been changed in the feature branch relative to
> >     trunk. This
> >     > is quite confusing for our users because TortoiseSVN shows that
> >     a lot
> >     > of folders/files they haven't changed have been updated in the
> >     merge.
> >     > In addition a lot of unchanged files will be shown as updated at
> >     next
> >     > SVN update command. Why is this necessary? Is it a desirable
> >     behavior?
> >     > Shouldn't SVN be able to figure our what's actually changed in the
> >     > feature branch relative to trunk and record only this mergeinfo?
> >
> >     The real question is, where do all that mergeinfo properties come
> >     from.
> >
> >     In typical usage, you'd have an svn:mergeinfo property on the root of
> >     each branch (including trunk). If mergeinfo properties are defined
> >     beneath the root, the most likely reason is that someone merged a
> >     subtree of the branch instead of the whole branch (hence, we call
> this
> >     subtree mergeinfo). During a merge, all subtree mergeinfo must be
> >     updated to reflect the merge results, regardless of whether there
> were
> >     any changes in the subtree.
> >
> >     I'm also a bit confused about your wording (re: "folders/files"):
> >     do you
> >     actually have mergeinfo on files?
> >
> >     -- Brane
> >
> >
> > Now I had a close look at my trunk log. For some commits only files
> > are changed, but there are also many commits for which mergeinfo is
> > added to subfolders despite commit on top level. For example the log
> > might look like
> >
> > a/b/c.txt - modified
> > a/b - modified, mergeinfo only
> > a/d/e.txt - modified
> > a/d - modified, mergeinfo only
> > a - modified, mergeinfo only
> >
> > Since both subfolders of a has been committed I conclude that folder a
> > must have been committed in one single commit. The added mergeinfo in
> > a, a/b and a/d is essentially identical, folder change only. This
> > doesn't occur for all commits, only some. I cannot see a pattern for
> > which ones. Ideas?
>
> In fact the root of the commit is irrelevant. What's relevant is the
> root of the merge; 'svn merge' creates or updates the svn:mergeinfo
> property, but does not commit it.
>
> An explanation for your example could be that someone merged the two
> text files individually, then committed from the root of the branch,
> like this:
>
> $ cd a/b
> $ svn merge ^/a/b/c.txt c.txt
> $ cd ../d
> $ svn merge ^/a/d/e.txt e.txt
> $ cd ../..
> $ svn commit
>
>
> A subsequent merge at the root of the branch would update the subtree
> mergeinfo on a/b and a/d as well as the root mergeinfo, and it's quite
> reasonable that the mergeinfo becomes equivalent at all levels.
>
> There are valid reasons for doing things like that (or we wouldn't
> support subtree mergeinfo in the first place). Or maybe this is just a
> side effect specific to merge support in some client. I couldn't guess.
>
> > No, I don't have mergeinfo on files, my mistake.
>
> That's good. :)
>
> -- Brane
>

It's not a result of merge of individual folders. I find the pattern in the
log for commits I've done and I have most definitely not gone out of my way
to explicitly merge several subfolders one-by-one. All users use
TortoiseSVN. You think it's related to the client? Should I ask the
Tortoise community instead?

// Olof

Reply via email to