Branko Čibej <brane_at_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*
Received on 2015-06-09 22:20:05 CEST