[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [math] Strange svn conflict

From: Daniel Shahaf <d.s_at_daniel.shahaf.name>
Date: Sat, 24 Dec 2011 22:21:10 +0200

[ CC += users_at_svn; context for them: 'svn commit' error report, and
discovery that 'log -qv r1210359' differs between svn.eu.a.o and
svn.us.a.o; it appears that only 'log -qv' is wrong (false positives)
but the file contents/props are fine ]

Sébastien Brisard wrote on Sat, Dec 24, 2011 at 17:37:02 +0100:
> >
> > You're right, that shouldn't be the case.  Something appears to be very wrong:
> >
> > eris,1:svn/asf% svnlook changed -r 1210359 $PWD
> > U   commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/AbstractRealDistribution.java
> > _U  commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/BetaDistribution.java
> > _U  commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/BinomialDistribution.java
> > _U  commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/CauchyDistribution.java
> > _U  commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/ChiSquaredDistribution.java
> > _U  commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/ExponentialDistribution.java
> > _U  commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/FDistribution.java
> > _U  commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/GammaDistribution.java
> > _U  commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/HypergeometricDistribution.java
> > _U  commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/KolmogorovSmirnovDistribution.java
> > _U  commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/NormalDistribution.java
> > UU  commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/PascalDistribution.java
> > _U  commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/PoissonDistribution.java
> > _U  commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/SaddlePointExpansion.java
> > _U  commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/TDistribution.java
> > _U  commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/WeibullDistribution.java
> > _U  commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/ZipfDistribution.java
> >
> > harmonia,0:svn/asf% svnlook changed -r 1210359 $PWD
> > U   commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/AbstractRealDistribution.java
> > U   commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/PascalDistribution.java
> > _U  commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/SaddlePointExpansion.java
> >
> > The harmonia version is definitely wrong.  Commons devs (especially
> > celestin) --- please confirm whether or not r1210359 _on svn.us.apache.org_
> > is correct.
> >
> As far as I (== celestin) can judge, *both* versions look OK. What I
> did is svn checkout of the latest version on both repositories. Then,
> I ran diff on each of the files listed above. *All* files are
> identical, but for the svn:keywords which *might* sometimes differ.
>
> More precisely, the following files are strictly identical on both repositories
> ChiSquaredDistribution.java (HEAD=r1210756)
> ExponentialDistribution.java (HEAD=r1209963)
> FDistribution.java (HEAD=r1210756)
> GammaDistribution.java (HEAD=r1210756)
> NormalDistribution.java (HEAD=r1210756)
> TDistribution.java (HEAD=r1210756)
>
> while the following files are tagged r1210359 on us mirror, and
> r1209963 on the eu mirror (but the remainder of the files are
> identical)
> BinomialDistribution.java
> CauchyDistribution.java
> HypergeometricDistribution.java
> KolmogorovSmirnovDistribution.java
> PoissonDistribution.java
> WeibullDistribution.java
> ZipfDistribution.java
> I *believe* these files should in fact be tagged r1210359 on *both*
> repositories.
>
> Does that help?
> Sébastien

Yes. Carefully comparing checkouts of the relevant revisions from both
mirrors confirms that both r1210358 and r1210359 actually agree between
the two mirrors on the contents of all files and props, and only
disagree in the 'log -qv' output (and in the changed-paths cache within
the revision file).

What happened is that eris(svn.us) thinks the N-3 files it has in excess
had undergone a propchange but no textchange, where in fact the revision
simply replaces the proplist by a proplist identical to the existing
one. The sync process[1] is justified in silently swallowing these
changes.

I have a few questions still:

- Can you run 'svn diff -c r1210359' (against either mirror) and confirm
  that that is exactly what you intended to commit?

- Why would the N other files have been committed in that revision?
  Recall that those files had no text changes and their property lists
  were re-set to the values they already had.

- How to reproduce the errors you saw? Can you show the output of `svn
  diff` at the time of a failed commit attempt?

  I tried to commit (from a fresh checkout of HEAD) via the mirror, once
  to files that did change in the revision and once to files that didn't
  change in the revision, and both attempts succeeded (r1223004,
  r1223005).

- You used "SVN/1.6.15 SVNKit/1.3.5 (http://svnkit.com/) r7406" in that
  commit. The servers ran 1.7.0. My client was 1.7.0 too.

As to the diagnosis:

- The non-functional propchanges should have been collapsed and removed
  before or during the commit. This should happen within the FS
  backend: the changed-paths information should not list such files with
  'prop_mod=TRUE'. I'm not sure if other layers should do such
  collapsing too.

Thanks,

Daniel

[1] Not only to harmonia, but also to another mirror which he booted off
the end-of-november dumpfiles and synced from svn.us.
Received on 2011-12-24 21:21:57 CET

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.