Branko Čibej <br...@wandisco.com> writes:

> I think there's no doubt that the 1.9 server has to send no-op deltas
> the same way the 1.8 server did. Changing an API should not affect
> server behaviour as seen by the clients.

A simple testcase:

svnadmin create repo --compatible-version 1.8
svnmucc -mm -U file://`pwd`/repo mkdir A put repo/README.txt A/f
svnmucc -mm -U file://`pwd`/repo cp 1 A B
svnmucc -mm -U file://`pwd`/repo put repo/format A/f
svn co file://`pwd`/repo/B wc
svn merge ^/A wc
svn ci -mm wc

Using a 1.8 server both 1.8 and 1.9 clients show

$ svn blame -g http://localhost:8888/obj/repo/B/f
G      3         pm 5

Using a 1.9 server a 1.9 client shows the same but a 1.8 client shows:

$ svn blame -g http://localhost:8888/obj/repo/B/f
       1         pm 5


The 1.8 server REPORT is:

<?xml version="1.0" encoding="utf-8"?>
<S:file-revs-report xmlns:S="svn:" xmlns:D="DAV:">
<S:file-rev path="/A/f" rev="1">
<S:rev-prop name="svn:date">2015-06-09T20:11:55.652556Z</S:rev-prop>
<S:rev-prop name="svn:log">m</S:rev-prop>
<S:rev-prop name="svn:author">pm</S:rev-prop>
<S:txdelta>U1ZOAAAAgXYDgXaAgXZUaGlzIGlzIGEgU3VidmVyc2lvbiByZXBvc2l0b3J5OyB1c2UgdGhlICdz
dm5hZG1pbicgYW5kICdzdm5sb29rJyAKdG9vbHMgdG8gZXhhbWluZSBpdC4gIERvIG5vdCBhZGQs
IGRlbGV0ZSwgb3IgbW9kaWZ5IGZpbGVzIGhlcmUgCnVubGVzcyB5b3Uga25vdyBob3cgdG8gYXZv
aWQgY29ycnVwdGluZyB0aGUgcmVwb3NpdG9yeS4KClZpc2l0IGh0dHA6Ly9zdWJ2ZXJzaW9uLmFw
YWNoZS5vcmcvIGZvciBtb3JlIGluZm9ybWF0aW9uLgo=
</S:txdelta></S:file-rev>
<S:file-rev path="/B/f" rev="2">
<S:rev-prop name="svn:date">2015-06-09T20:11:55.728662Z</S:rev-prop>
<S:rev-prop name="svn:log">m</S:rev-prop>
<S:rev-prop name="svn:author">pm</S:rev-prop>
</S:file-rev>
<S:file-rev path="/A/f" rev="3">
<S:rev-prop name="svn:date">2015-06-09T20:11:55.821288Z</S:rev-prop>
<S:rev-prop name="svn:log">m</S:rev-prop>
<S:rev-prop name="svn:author">pm</S:rev-prop>
<S:merged-revision/><S:txdelta>U1ZOAACBdgIBAoI1Cg==
</S:txdelta></S:file-rev>
<S:file-rev path="/B/f" rev="4">
<S:rev-prop name="svn:log">m</S:rev-prop>
<S:rev-prop name="svn:author">pm</S:rev-prop>
<S:rev-prop name="svn:date">2015-06-09T20:11:55.932638Z</S:rev-prop>
<S:txdelta>U1ZOAAACAgIAAgA=
</S:txdelta></S:file-rev>
</S:file-revs-report>

The 1.9 server report is:

<?xml version="1.0" encoding="utf-8"?>
<S:file-revs-report xmlns:S="svn:" xmlns:D="DAV:">
<S:file-rev path="/A/f" rev="1">
<S:rev-prop name="svn:log">m</S:rev-prop>
<S:rev-prop name="svn:author">pm</S:rev-prop>
<S:rev-prop name="svn:date">2015-06-09T20:11:55.652556Z</S:rev-prop>
<S:txdelta>U1ZOAAAAgXYDgXaAgXZUaGlzIGlzIGEgU3VidmVyc2lvbiByZXBvc2l0b3J5OyB1c2UgdGhlICdz
dm5hZG1pbicgYW5kICdzdm5sb29rJyAKdG9vbHMgdG8gZXhhbWluZSBpdC4gIERvIG5vdCBhZGQs
IGRlbGV0ZSwgb3IgbW9kaWZ5IGZpbGVzIGhlcmUgCnVubGVzcyB5b3Uga25vdyBob3cgdG8gYXZv
aWQgY29ycnVwdGluZyB0aGUgcmVwb3NpdG9yeS4KClZpc2l0IGh0dHA6Ly9zdWJ2ZXJzaW9uLmFw
YWNoZS5vcmcvIGZvciBtb3JlIGluZm9ybWF0aW9uLgo=
</S:txdelta></S:file-rev>
<S:file-rev path="/B/f" rev="2">
<S:rev-prop name="svn:log">m</S:rev-prop>
<S:rev-prop name="svn:author">pm</S:rev-prop>
<S:rev-prop name="svn:date">2015-06-09T20:11:55.728662Z</S:rev-prop>
</S:file-rev>
<S:file-rev path="/A/f" rev="3">
<S:rev-prop name="svn:log">m</S:rev-prop>
<S:rev-prop name="svn:author">pm</S:rev-prop>
<S:rev-prop name="svn:date">2015-06-09T20:11:55.821288Z</S:rev-prop>
<S:merged-revision/><S:txdelta>U1ZOAACBdgIBAoI1Cg==
</S:txdelta></S:file-rev>
<S:file-rev path="/B/f" rev="4">
<S:rev-prop name="svn:date">2015-06-09T20:11:55.932638Z</S:rev-prop>
<S:rev-prop name="svn:log">m</S:rev-prop>
<S:rev-prop name="svn:author">pm</S:rev-prop>
</S:file-rev>
</S:file-revs-report>

The significant difference is the missing txdeltas (ignore the hash
ordering of revprops).

-- 
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*

Reply via email to