checkheads: take future obsoleted heads into account
If we push some successors they will likely create a new head on
remote. However as the obsoleted head will disappear after the push we
are not really increasing the number of heads.
There is several case which will lead to extra being actually pushed. But this
first changeset aims to be simple. See the inline comment for details.
Without this change, you need to push --force every time you want to
push a newer version which is very error prone.
The remote side still display +n heads on unbundle because it does not have the
obsolete marker at unbundle time.
SVN-fs-dump-format-version: 2
UUID: afeb9c47-92ff-4c0c-9f72-e1f6eb8ac9af
Revision-number: 0
Prop-content-length: 56
Content-length: 56
K 8
svn:date
V 27
2009-06-21T16:34:55.835945Z
PROPS-END
Revision-number: 1
Prop-content-length: 112
Content-length: 112
K 7
svn:log
V 10
init projA
K 10
svn:author
V 7
pmezard
K 8
svn:date
V 27
2009-06-21T16:34:55.909545Z
PROPS-END
Node-path: branches
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10
PROPS-END
Node-path: tags
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10
PROPS-END
Node-path: trunk
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10
PROPS-END
Revision-number: 2
Prop-content-length: 106
Content-length: 106
K 7
svn:log
V 5
hello
K 10
svn:author
V 7
pmezard
K 8
svn:date
V 27
2009-06-21T16:34:56.150049Z
PROPS-END
Node-path: trunk/à
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10
PROPS-END
Node-path: trunk/à/é
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 2
Text-content-md5: e29311f6f1bf1af907f9ef9f44b8328b
Text-content-sha1: e983f374794de9c64e3d1c1de1d490c0756eeeff
Content-length: 12
PROPS-END
d
Node-path: trunk/é
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 2
Text-content-md5: 9ffbf43126e33be52cd2bf7e01d627f9
Text-content-sha1: 094e3afb2fe8dfe82f63731cdcd3b999f4856cff
Content-length: 12
PROPS-END
e
Revision-number: 3
Prop-content-length: 112
Content-length: 112
K 7
svn:log
V 10
copy files
K 10
svn:author
V 7
pmezard
K 8
svn:date
V 27
2009-06-21T16:34:59.089402Z
PROPS-END
Node-path: trunk/è
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/é
Text-copy-source-md5: 9ffbf43126e33be52cd2bf7e01d627f9
Text-copy-source-sha1: 094e3afb2fe8dfe82f63731cdcd3b999f4856cff
Node-path: trunk/ù
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/à
Node-path: trunk/à
Node-action: delete
Node-path: trunk/é
Node-action: delete
Revision-number: 4
Prop-content-length: 114
Content-length: 114
K 7
svn:log
V 12
remove files
K 10
svn:author
V 7
pmezard
K 8
svn:date
V 27
2009-06-21T16:35:00.165121Z
PROPS-END
Node-path: trunk/è
Node-action: delete
Node-path: trunk/ù
Node-action: delete
Revision-number: 5
Prop-content-length: 120
Content-length: 120
K 7
svn:log
V 18
branch to branché
K 10
svn:author
V 7
pmezard
K 8
svn:date
V 27
2009-06-21T16:35:03.079138Z
PROPS-END
Node-path: branches/branché
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 4
Node-copyfrom-path: trunk
Revision-number: 6
Prop-content-length: 121
Content-length: 121
K 7
svn:log
V 19
branch to branchée
K 10
svn:author
V 7
pmezard
K 8
svn:date
V 27
2009-06-21T16:35:06.060801Z
PROPS-END
Node-path: branches/branchée
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 5
Node-copyfrom-path: branches/branché
Revision-number: 7
Prop-content-length: 110
Content-length: 110
K 7
svn:log
V 9
tag trunk
K 10
svn:author
V 7
pmezard
K 8
svn:date
V 27
2009-06-21T16:35:09.061530Z
PROPS-END
Node-path: tags/branché
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 6
Node-copyfrom-path: trunk
Revision-number: 8
Prop-content-length: 114
Content-length: 114
K 7
svn:log
V 12
tag branché
K 10
svn:author
V 7
pmezard
K 8
svn:date
V 27
2009-06-21T16:35:11.068562Z
PROPS-END
Node-path: tags/branchée
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 6
Node-copyfrom-path: branches/branchée