             isClean('server').should.eventually.equal(false)
           ])
 
+    it "should handle a series of non-committed edits/syncs", ->
+      writeRepo("client", "README.md", "v2")
+      .then =>
+        sync(@clientDir, @remote)
+      .then =>
+         utils.readFile("./#{tmpWorkspace}/server/README.md").should.eventually.equal("v2")
+      .then =>
+        writeRepo("client", "README.md", "v3")
+      .then =>
+        sync(@clientDir, @remote)
+      .then =>
+         utils.readFile("./#{tmpWorkspace}/server/README.md").should.eventually.equal("v3")
+      .then =>
+        writeRepo("client", "README.md", "v4")
+      .then =>
+        sync(@clientDir, @remote)
+      .then =>
+         utils.readFile("./#{tmpWorkspace}/server/README.md").should.eventually.equal("v4")
+
     it "should handle a non-master branch", ->
       gitCheckout("client", "devel", true).then =>
-        sync(@clientDir, @remote).then (stuff)->
+        sync(@clientDir, @remote).then ->
           Promise.all([
             getCommits('server').should.eventually.have.property("length").equal(2)
             getCommits('client').should.eventually.have.property("length").equal(2)

  utils.cmd "#{tmpWorkspace}/#{repo}", "git add ."
  .then ->
    utils.cmd "#{tmpWorkspace}/#{repo}", "git commit -m \"#{msg}\""
  
isClean = (repo)->
  nodegit.Repository.open("#{tmpWorkspace}/#{repo}").then (repo) ->
    repo.getStatus().then (statuses)->

    p2 = createRepo("server").then (result)->
      configureServer("server")
    Promise.all([p1,p2])

  describe 'Non-bare (empty staging area) to bare', ->
    it 'should sync all files', ->
      Promise.all([
