I'm working on a 3rd party replication tool <https://github.com/couchbaselabs/sg-replicate> in Go (currently Sync Gateway compatible, but hopefully one day will be CouchDB compatible as well), and I have a question on the replication process.
>From this replication algorithm description <https://github.com/couchbaselabs/TouchDB-iOS/wiki/Replication-Algorithm> and ladder diagram <http://cl.ly/image/1v013o210345>, if the _rev_diffs response is empty, should it then skip steps 5 and 6 since there is nothing to transfer and go straight to step 7? (using the last_seq value that was returned from source db _changes feed in step 3) Or should it skip step 7 too and do another _changes request? I'm guessing it's the former, since it seems like it should be safe to forward the checkpoint if the _rev_diffs response is empty. I haven't had a chance to study the CouchDB replicator behavior yet, and thought someone here might know off the top of their head.
