Permalink
Switch branches/tags
Nothing to show
Commits on Feb 22, 2012
  1. Removed a bogus build setting in the Mac demo target

    snej committed Feb 22, 2012
    It was just causing a harmless link warning.
Commits on Feb 21, 2012
  1. Pull deleted revisions after live ones

    snej committed Feb 21, 2012
    Optimization for pull replication: prioritize pulling non-deleted revisions. This doesn't make the total time shorter, but it makes visible stuff show up sooner, especially in a case like the first launch of GrocerySync, where there are a lot of older documents that have been deleted already.
  2. Overhauled checkpointing for pull replications

    snej committed Feb 21, 2012
    Added TDSequenceMap to keep track of the latest sequence ID we can checkpoint.
    (Should be used for push replications too, but I haven't done that work yet.)
  3. Allow restart of a persistent replication

    snej committed Feb 21, 2012
    Deleting the _replicator_state property of a replicator document starts a new replication.
    (This is also supported by CouchDB, but undocumented.)
    This makes persistent non-continuous replications more useful.
  4. Replication bug fixes

    snej committed Feb 21, 2012
    * Persistent replications weren't restarting on app launch (oops).
    * Fix exception when persistent replication is deleted.
    * Wait longer (5sec) before saving checkpoint to remote server.
Commits on Feb 20, 2012
  1. Get persistent replications working with REST API

    snej committed Feb 18, 2012
    And updated Mac demo to use them.
  2. Persistent replications ('_replicator' database)

    snej committed Feb 17, 2012
    Not really tested yet.
  3. Make replicator active/idle status accurate

    snej committed Feb 20, 2012
    The 'active' property of TDReplicator wasn't being updated correctly. This in turn broke the status being reported in the _active_tasks REST API.
  4. Offline support

    snej committed Feb 14, 2012
    TDReplicator detects when the remote host becomes reachable/unreachable, usually as a result of the device going on/offline. Replication is stopped when offline and restarted when back online.
Commits on Feb 18, 2012
  1. Fixed missing response for some failing REST requests

    snej committed Feb 17, 2012
    Nasty bug fixed: TDRouter would react to some errors (like a request to a nonexistent database, or an invalid document ID) without returning an HTTP response, so the caller's request would fall on the floor and eventually time out.
    
    Also improved the TDRouter unit tests to catch this type of problem.
Commits on Feb 17, 2012
  1. Fix a crash with replication after closing a database

    snej committed Feb 17, 2012
    TDDatabase wasn't unregistering itself from replication notifications in its -dealloc method, so after a database has been dealloced any notification from any replication would likely cause an exception or crash.
Commits on Feb 15, 2012
  1. Oops, fix crash in the new retry code

    snej committed Feb 15, 2012
    It shouldn't be clearing _request, just _connection.
  2. Work around OS bug in NSJSONSerialization

    snej committed Feb 15, 2012
    Fixes issue #44.
Commits on Feb 13, 2012
  1. Oops, hadn't updated MYUtilities submodule to correspond to a new com…

    snej committed Feb 13, 2012
    …mit in that repo
    
    Fixes #43.
Commits on Feb 12, 2012
  1. Make filters work for push replications

    snej committed Feb 12, 2012
    TDPusher already had a 'filter' property but it wasn't being set by TDRouter.
    While I was at it, I refactored the 'filterName' and 'filterParameters' properties from TDPuller up to TDReplicator, so TDPusher can use them too.
Commits on Feb 11, 2012
  1. TDRouter honors ?atts_since in document GET requests

    snej committed Feb 11, 2012
    An optimization to avoid sending unnecessary attachments that the caller already knows about, while being passively pulled from.
    
    Also some small refactoring:
    * Moved +parseRevID: from TDDatabase to the more-appropriate TDRevision.
    * Created +[TDDatabase stubOutAttachmentsIn:beforeRevPos:] from some former static functions in TDPusher.
Commits on Feb 10, 2012
  1. Better handling of "possible_ancestors" in replication

    snej committed Feb 10, 2012
    * Implementation of _revs_diff API now returns the possible_ancestors arrays.
    * Pull replication sends better list of revs in "atts_since" key.
  2. iOS on-device fixes

    snej committed Feb 10, 2012
    * Fixed iOS demo target settings so it'll run on a device without getting entitlements errors.
    * Fixed paths to temp files generated by unit tests since /tmp isn't accessible on a real iOS device.
  3. Added Apache license comments.

    snej committed Feb 10, 2012
    (No code changes.)
  4. Added test TDPuller_FromCouchApp

    snej committed Feb 10, 2012
    This is for testing issue #39. I can't reproduce it myself.
  5. Create fewer temp directories during attachment download

    snej committed Feb 10, 2012
    Was creating a new temp dir per attachment; now just creates one per database. Still not sure why these dirs are being left behind, but I've asked about it on cocoa-dev.
  6. Fix some compile errors

    snej committed Feb 10, 2012
    - Some implicit 64-to-32-bit conversions in the 64-bit build
    - Missing call to [super dealloc], reported by newer version of Clang compiler.
  7. Allow GET of attachment whose name contains "/"s

    snej committed Feb 10, 2012
    ...without having to escape the '/' characters, that is.
    This fixes #40.
Commits on Feb 9, 2012
  1. Merge pull request #38 from fcandalija/master

    snej committed Feb 9, 2012
    I think this fixes #37.
Commits on Feb 7, 2012
  1. Fixed winning-revision rule for conflicts

    snej committed Feb 7, 2012
    If there are conflicting revisions the one with the greater revid "wins" and is returned by default.
    The problem is that CouchDB has a specific definition of "greater" for revIDs -- basically, the numeric prefix is parsed as a number, not as ASCII. This only makes a difference for revisions with generation numbers greater than 9.
    For compatibility, I've added a custom collation for rebids that matches CouchDB. This fixes #10.
  2. Make TDPusher only upload attachments that have changed.

    snej committed Feb 7, 2012
    FIxes #36.
Commits on Feb 6, 2012
  1. Bump version, fix unit-test issue in iOS Demo app

    snej committed Feb 6, 2012
    * Changed version to 0.5.
    * Unit tests were broken in the iOS Demo app because Test_BlobStore.m needed to be added to the app target itself.
  2. Fixed the URL of the MYUtilities submodule.

    snej committed Feb 6, 2012
    If you have an existing checkout of TouchDB, you may have to change the value of the [submodule "vendor/MYUtilities"] config property, e.g. by editing .git/config, for this change to take effect.