hgext/mq.py
changeset 4071 165abe554c80
parent 4068 5b1f663ef86d
child 4096 49237d6ae97d
--- a/hgext/mq.py	Fri Feb 09 03:48:28 2007 -0200
+++ b/hgext/mq.py	Fri Feb 09 03:48:30 2007 -0200
@@ -1082,9 +1082,13 @@
             self.push(repo, force=True, wlock=wlock)
 
     def init(self, repo, create=False):
-        if os.path.isdir(self.path):
+        if not create and os.path.isdir(self.path):
             raise util.Abort(_("patch queue directory already exists"))
-        os.mkdir(self.path)
+        try:
+            os.mkdir(self.path)
+        except OSError, inst:
+            if inst.errno != errno.EEXIST or not create:
+                raise
         if create:
             return self.qrepo(create=True)
 
@@ -1467,13 +1471,16 @@
     r = q.init(repo, create=opts['create_repo'])
     q.save_dirty()
     if r:
-        fp = r.wopener('.hgignore', 'w')
-        print >> fp, 'syntax: glob'
-        print >> fp, 'status'
-        print >> fp, 'guards'
-        fp.close()
-        r.wopener('series', 'w').close()
+        if not os.path.exists(r.wjoin('.hgignore')):
+            fp = r.wopener('.hgignore', 'w')
+            fp.write('syntax: glob\n')
+            fp.write('status\n')
+            fp.write('guards\n')
+            fp.close()
+        if not os.path.exists(r.wjoin('series')):
+            r.wopener('series', 'w').close()
         r.add(['.hgignore', 'series'])
+        commands.add(ui, r)
     return 0
 
 def clone(ui, source, dest=None, **opts):