Index: vcpx/git.py
===================================================================
--- vcpx/git.py	(revision 783)
+++ vcpx/git.py	(revision 786)
@@ -12,5 +12,5 @@
 __docformat__ = 'reStructuredText'
 
-from shwrap import ExternalCommand, ReopenableNamedTemporaryFile
+from shwrap import ExternalCommand, ReopenableNamedTemporaryFile, PIPE
 from target import SyncronizableTargetWorkingDir, TargetInitializationFailure
 from source import ChangesetApplicationFailure
@@ -86,8 +86,12 @@
         c = ExternalCommand(cwd=self.basedir, command=cmd)
 
-        c.execute(env=env, input='\n'.join(logmessage))
+        (out, _) = c.execute(stdout=PIPE, env=env, input='\n'.join(logmessage))
         if c.exit_status:
-            raise ChangesetApplicationFailure("%s returned status %d" %
-                                              (str(c), c.exit_status))
+            if out is None or out.readline().strip() != 'nothing to commit':
+                raise ChangesetApplicationFailure("%s returned status %d" %
+                                                  (str(c), c.exit_status))
+            else:
+                # empty changeset, which git-core doesn't support
+                pass
 
     def _removePathnames(self, names):
@@ -135,9 +139,5 @@
         """
 
-        from os import makedirs
         from os.path import join, exists
-
-        if not exists(self.basedir):
-            makedirs(self.basedir)
 
         if not exists(join(self.basedir, self.repository.METADIR)):
