             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)

            isClean('server').should.eventually.equal(true)
          ])

    it "should handle a branch switch w/ a dirty repo", ->

    it "should handle a series of non-committed edits"

    it "should handle a commit amendment"

    it "should respond properly to a git pull"

    it "is ok if some files are staged"

    it "should handle an empty repo"


    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([
