Re: adding --include-externals to svn diff

2013-02-02 Thread Daniel Shahaf
+0

(sounds like a good idea on the surface, but I didn't consider the
details and I won't be the one implementing it)

Matt Hargett wrote on Sat, Feb 02, 2013 at 02:04:06 +:
> To parallel the additions of --include-externals to the 'commit' and 'ls'
> commands, I would also like to propose adding the option to the 'diff'
> command. I just tested latest trunk and the option is unrecognized.
> 
> Given the discussions around the previously enhanced commands, I think the
> reason for wanting the continuity is obvious: Developers often do a diff
> before committing, and it's important they are able to diff at the same
> scope as they commit.
> 
> I was inquiring on the IRC channel on some other issues, but got no
> response. Hence the email to the list :)
> 
> Let me know what I can do, within reason, to help bring make these
> commands more congruent for 1.8.0.
> 
> Thanks!
> 


Re: adding --include-externals to svn diff

2013-02-02 Thread Daniel Shahaf
Matt Hargett wrote on Sat, Feb 02, 2013 at 02:04:06 +:
> To parallel the additions of --include-externals to the 'commit' and 'ls'
> commands, I would also like to propose adding the option to the 'diff'
> command. I just tested latest trunk and the option is unrecognized.
...
> Let me know what I can do, within reason, to help bring make these
> commands more congruent for 1.8.0.

The first step is to define the behaviour of the would-be-added option.
For example, is it only valid for working copy targets?  How does it
behave when one or both targets is a URL?

% $svn help diff
diff (di): Display the differences between two revisions or paths.
usage: 1. diff [-c M | -r N[:M]] [TARGET[@REV]...]
   2. diff [-r N[:M]] --old=OLD-TGT[@OLDREV] [--new=NEW-TGT[@NEWREV]] \
   [PATH...]
   3. diff OLD-URL[@OLDREV] NEW-URL[@NEWREV]



Re: UNS: Re: adding --include-externals to svn diff

2013-02-02 Thread Andreas Krey
On Sat, 02 Feb 2013 11:51:15 +, Daniel Shahaf wrote:
> Matt Hargett wrote on Sat, Feb 02, 2013 at 02:04:06 +:
> > To parallel the additions of --include-externals to the 'commit' and 'ls'
> > commands, I would also like to propose adding the option to the 'diff'
> > command. I just tested latest trunk and the option is unrecognized.
> ...
> > Let me know what I can do, within reason, to help bring make these
> > commands more congruent for 1.8.0.
> 
> The first step is to define the behaviour of the would-be-added option.
> For example, is it only valid for working copy targets?  How does it
> behave when one or both targets is a URL?

Why, as if the URL were checked out and the diff done against the
resulting tree (minus .svn dirs, o/c). Which causes the interesting thing
that, when an external definition changes (like, from whatever/tags/3.0
to whatever/tags/3.1), you'd see the complete diff between 3.0 and 3.1.

And the more interesting question whether the diff of the svn:external
property itself should be shown at all.

(I find it much more complicated to define what commit --include-externals
would do - any one of

  'leave the svn:externals alone' to
  -- when the svn:externals references trunk or branches,

  'update the peg revs in the external'
  -- when using peg revisions,
  
  'commit into the trunk instead of the referenced tag,
   create a new tag, and put that into the external'
  -- our usual workflow, except that we don't just
 blindly commit into the externals
look desirable.)

Andreas

-- 
"Totally trivial. Famous last words."
From: Linus Torvalds 
Date: Fri, 22 Jan 2010 07:29:21 -0800


Re: FreeBSD project and subversion.

2013-02-02 Thread Stefan Sperling
On Fri, Feb 01, 2013 at 11:11:05AM -0500, Alfred Perlstein wrote:
> So I have two answers here:
> 
> 1) about mergeinfo
> It seems as if doing it all at the top can make merges over long
> haul internet very painful.

I acknowledge that a merge that runs across the entire FreeBSD src
tree can be slow.

For this and other reasons, it can make sense to create mergeinfo at
particular levels of the tree.

For example, it can make sense to run kernel code merges within src/sys,
and userland changes elsewhere. Subversion won't care. Keeping a consistent
pattern by documenting the expected roots used for merges and then using
those consistently will help create a clean log history.

I see that FreeBSD has already documented this, which is good!

The major hassle created by lots of subtree mergeinfo is property
changes cluttering out of commands such as 'svn log -v' and 'svn diff'.
This was particularly bad with Subversion 1.6, which updated any subtree
mergeinfo with a merge target, regardless of whether the merge actually
touched content of the files and directories which had their svn:mergeinfo
property updated. This has been addressed in Subversion 1.7, see:
http://subversion.apache.org/docs/release-notes/1.7.html#subtree-mergeinfo-recording
Also, there is no way to filter excessive property changes from the
output of 'svn diff'. This will be partly addressed in Subversion 1.8
by a new --ignore-properties option, see
http://subversion.apache.org/docs/release-notes/1.8.html#svn-diff
While this suppresses all property diffs and doesn't target
svn:mergeinfo in particular, it can help with producing diff output
that more usable than the default output in some cases.

> 2) about reintegrate
> I've attached the two messages that show what makes FreeBSD gun shy
> about merges to HEAD.
> Maybe these issues are resolved, or maybe the developer did
> something incorrect, or maybe something else entirely different
> happened.

See my response below.
It turns out that this wasn't a problem with --reintegrate at all,
but a user error made during a sync merge.

> Date: Fri, 1 Feb 2013 09:49:23 -0500
> From: John Baldwin 
> To: Alfred Perlstein 
> Subject: Fwd: Re: SVN merge question.
> X-Spam-Level: 
> User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p22; KDE/4.5.5; amd64;
>  ; )
> Content-Type: Multipart/Mixed;  boundary="Boundary-00=_zX9CRbNRbX0geE6"
> Message-Id: <201302010949.23897@freebsd.org>
> 
> 
> -- 
> John Baldwin

> Date: Fri, 1 Jun 2012 13:56:03 -0400
> From: John Baldwin 
> To: obr...@freebsd.org
> Cc: Grzegorz Bernacki , Eitan Adler ,
>  develop...@freebsd.org
> Subject: Re: SVN merge question.
> User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p13; KDE/4.5.5; amd64;
>  ; )
> Content-Type: Text/Plain;  charset="iso-8859-1"
> Message-Id: <201206011356.03933@freebsd.org>
> 
> On Friday, June 01, 2012 1:40:29 pm David O'Brien wrote:
> > On Wed, May 16, 2012 at 11:00:48AM -0400, John Baldwin wrote:
> > > I more or less don't trust svn merge to DTRT here.  This was done with
> > > the cpuset branch merge up to HEAD and it broke the log history of many
> > > files in HEAD.
> > 
> > Specifically how did it break log history?
> 
> http://svnweb.freebsd.org/base/head/share/man/man4/geom_map.4?view=log
> 
> You have to walk up to the previous directory in svnweb and go back to
> change 222812 and then click on geom_map.4 to find its original log.
> 
> sys/dev/iicbus/ad7417.c was also busted this way.

Adrian Chadd originally added the man page to the head branch in this
revision:

[[[

r221501 | adrian | 2011-05-05 16:43:35 +0200 (Thu, 05 May 2011) | 4 lines
Changed paths:
   M /head/share/man/man4/Makefile
   A /head/share/man/man4/geom_map.4

Add a manpage for geom_map(4).

Submitted by:   r...@dlink.ua
]]]

In a later revision, Attilio Rao re-added the same file to the largeSMP
branch, apparently while being immersed in a cloud of rage against svn :)

[[[

r221716 | attilio | 2011-05-10 00:13:07 +0200 (Tue, 10 May 2011) | 4 lines
Changed paths:
   A /projects/largeSMP/share/man/man4/geom_map.4
   A /projects/largeSMP/sys/nfs/nfs_kdtrace.h
   A /projects/largeSMP/sys/sys/_stdint.h
   A /projects/largeSMP/tools/build/options/WITHOUT_GPIO
   A /projects/largeSMP/tools/regression/bin/sh/parser/dollar-quote1.0
   A /projects/largeSMP/tools/regression/bin/sh/parser/dollar-quote2.0
   A /projects/largeSMP/tools/regression/bin/sh/parser/dollar-quote3.0
   A /projects/largeSMP/tools/regression/bin/sh/parser/dollar-quote4.0
   A /projects/largeSMP/tools/regression/bin/sh/parser/dollar-quote5.0
   A /projects/largeSMP/tools/regression/bin/sh/parser/dollar-quote6.0
   A /projects/largeSMP/tools/regression/bin/sh/parser/dollar-quote7.0
   A /projects/largeSMP/tools/regression/bin/sh/parser/dollar-quote8.0
   A /projects/largeSMP/tools/regression/bin/sh/parser/dollar-quote9.