Mercurial > hg
changeset 4071:165abe554c80
mq: qinit -c creates a repo even after a regular qinit
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Fri, 09 Feb 2007 03:48:30 -0200 |
parents | 961ccb615cf7 |
children | e916bc0dfdd6 |
files | hgext/mq.py tests/test-mq tests/test-mq.out |
diffstat | 3 files changed, 69 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- 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):
--- a/tests/test-mq Fri Feb 09 03:48:28 2007 -0200 +++ b/tests/test-mq Fri Feb 09 03:48:30 2007 -0200 @@ -40,6 +40,40 @@ hg -R c qnew test.patch hg -R c/.hg/patches st +echo '% qinit; qinit -c' +hg init d +cd d +hg qinit +hg qinit -c +# qinit -c should create both files if they don't exist +echo ' .hgignore:' +cat .hg/patches/.hgignore +echo ' series:' +cat .hg/patches/series +hg qinit -c 2>&1 | sed -e 's/repository.*already/repository already/' +cd .. + +echo '% qinit; <stuff>; qinit -c' +hg init e +cd e +hg qnew A +echo foo > foo +hg add foo +hg qrefresh +hg qnew B +echo >> foo +hg qrefresh +echo status >> .hg/patches/.hgignore +echo bleh >> .hg/patches/.hgignore +hg qinit -c +hg -R .hg/patches status +# qinit -c shouldn't touch these files if they already exist +echo ' .hgignore:' +cat .hg/patches/.hgignore +echo ' series:' +cat .hg/patches/series +cd .. + cd a echo % qnew -m
--- a/tests/test-mq.out Fri Feb 09 03:48:28 2007 -0200 +++ b/tests/test-mq.out Fri Feb 09 03:48:30 2007 -0200 @@ -60,6 +60,26 @@ A .hgignore A series A test.patch +% qinit; qinit -c + .hgignore: +syntax: glob +status +guards + series: +abort: repository already exists! +% qinit; <stuff>; qinit -c +adding A +adding B +A .hgignore +A A +A B +A series + .hgignore: +status +bleh + series: +A +B % qnew -m foo bar % qrefresh