chiark / gitweb /
Allow "branch --create" to be given a tag id
[stgit] / stgit / stack.py
index ad1ed2b67ed76b1075a9c11f3548242e7163d9c3..f72f83b0bd4eb3711da5a98b204ae0d5facb55bf 100644 (file)
@@ -166,10 +166,17 @@ class Patch(StgitObject):
         self.create_empty_field('top')
 
     def delete(self):
-        for f in os.listdir(self._dir()):
-            os.remove(os.path.join(self._dir(), f))
-        os.rmdir(self._dir())
-        git.delete_ref(self.__top_ref)
+        if os.path.isdir(self._dir()):
+            for f in os.listdir(self._dir()):
+                os.remove(os.path.join(self._dir(), f))
+            os.rmdir(self._dir())
+        else:
+            out.warn('Patch directory "%s" does not exist' % self._dir())
+        try:
+            # the reference might not exist if the repository was corrupted
+            git.delete_ref(self.__top_ref)
+        except git.GitException, e:
+            out.warn(str(e))
         if git.ref_exists(self.__log_ref):
             git.delete_ref(self.__log_ref)