convert: add a mode where mercurial_sink skips empty revisions.
The getchanges function of some converter_source classes can return
some false positives. I.e. they sometimes claim that a file "foo"
was changed in some revision, even though its contents are still the
same.
convert_svn is particularly bad, but I think this can also happen with
convert_cvs and, at least in theory, with mercurial_source.
For regular conversions this is not really a problem - as long as
getfile returns the right contents, we'll get a converted revision
with the right contents. But when we use --filemap, this could lead
to superfluous revisions being converted.
Instead of fixing every converter_source, I decided to change
mercurial_sink to work around this problem.
When --filemap is used, we're interested only in revisions that touch
some specific files. If a revision doesn't change any of these files,
then we're not interested in it (at least for revisions with a single
parent; merges are special).
For mercurial_sink, we abuse this property and rollback a commit if
the manifest text hasn't changed. This avoids duplicating the logic
from localrepo.filecommit to detect unchanged files.
adding foo
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
1 files, 9 changesets, 9 total revisions
comparing with http://localhost:20059/
changeset: 0:9cb21d99fe27
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 0
changeset: 1:d717f5dfad6a
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 1
changeset: 2:c0d6b86da426
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 2
changeset: 3:dfacbd43b3fe
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 3
changeset: 4:1f3a964b6022
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 4
changeset: 5:c028bcc7a28a
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 5
changeset: 6:a0c0095f3389
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 6
changeset: 7:d4be65f4e891
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 7
changeset: 8:92b83e334ef8
tag: tip
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 8
comparing with http://localhost:20059/
changeset: 0:9cb21d99fe27
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 0
changeset: 1:d717f5dfad6a
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 1
changeset: 2:c0d6b86da426
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 2
changeset: 3:dfacbd43b3fe
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 3
changeset: 4:1f3a964b6022
tag: tip
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 4
comparing with test
changeset: 0:9cb21d99fe27
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 0
changeset: 1:d717f5dfad6a
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 1
changeset: 2:c0d6b86da426
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 2
changeset: 3:dfacbd43b3fe
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 3
changeset: 4:1f3a964b6022
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 4
changeset: 5:c028bcc7a28a
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 5
changeset: 6:a0c0095f3389
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 6
changeset: 7:d4be65f4e891
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 7
changeset: 8:92b83e334ef8
tag: tip
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 8
comparing with test
changeset: 0:9cb21d99fe27
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 0
changeset: 1:d717f5dfad6a
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 1
changeset: 2:c0d6b86da426
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 2
changeset: 3:dfacbd43b3fe
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 3
changeset: 4:1f3a964b6022
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 4
comparing with http://localhost:20059/
changeset: 0:9cb21d99fe27
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 0
changeset: 1:d717f5dfad6a
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 1
changeset: 2:c0d6b86da426
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 2
changeset: 3:dfacbd43b3fe
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 3
changeset: 4:1f3a964b6022
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 4
changeset: 5:c028bcc7a28a
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 5
changeset: 6:a0c0095f3389
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 6
changeset: 7:d4be65f4e891
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 7
changeset: 8:92b83e334ef8
tag: tip
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 8
comparing with test
changeset: 0:9cb21d99fe27
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 0
changeset: 1:d717f5dfad6a
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 1
changeset: 2:c0d6b86da426
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 2
changeset: 3:dfacbd43b3fe
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 3
changeset: 4:1f3a964b6022
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 4
changeset: 5:c028bcc7a28a
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 5
changeset: 6:a0c0095f3389
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 6
changeset: 7:d4be65f4e891
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 7
changeset: 8:92b83e334ef8
tag: tip
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 8
adding changesets
adding manifests
adding file changes
added 9 changesets with 9 changes to 1 files
(run 'hg update' to get a working copy)
adding changesets
adding manifests
adding file changes
added 9 changesets with 9 changes to 1 files
(run 'hg update' to get a working copy)
changeset: 8:92b83e334ef8
tag: tip
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 8
changeset: 8:92b83e334ef8
tag: tip
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 8
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
1 files, 14 changesets, 14 total revisions
comparing with test
searching for changes
changeset: 9:3741c3ad1096
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 9
changeset: 10:de4143c8d9a5
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 10
changeset: 11:0e1c188b9a7a
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 11
changeset: 12:251354d0fdd3
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 12
changeset: 13:bdaadd969642
tag: tip
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 13
comparing with http://localhost:20059/
searching for changes
changeset: 9:3741c3ad1096
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 9
changeset: 10:de4143c8d9a5
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 10
changeset: 11:0e1c188b9a7a
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 11
changeset: 12:251354d0fdd3
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 12
changeset: 13:bdaadd969642
tag: tip
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 13
comparing with http://localhost:20059/
searching for changes
changeset: 9:3741c3ad1096
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 9
changeset: 10:de4143c8d9a5
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 10
changeset: 11:0e1c188b9a7a
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: 11