From: أحمد المحمودي (Ahmed El-Mahmoudy) Date: Wed, 15 Jan 2014 14:08:55 +0000 (+0200) Subject: Check if purge extension is enabled before attempting to enable it in .hg/hgrc X-Git-Tag: 0.1~7^2 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=65500b367edc7b1e1139ff67784110b76c0ff539;p=fdroidserver.git Check if purge extension is enabled before attempting to enable it in .hg/hgrc --- diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 51be2ae1..45e25c45 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -472,12 +472,18 @@ class vcs_hg(vcs): if subprocess.call(['hg', 'update', '-C', rev], cwd=self.local) != 0: raise VCSException("Hg checkout failed") - #Also delete untracked files, we have to enable purge extension for that: - with open(self.local+"/.hg/hgrc", "a") as myfile: - myfile.write("\n[extensions]\nhgext.purge=") - if subprocess.call(['hg', 'purge', '--all'], - cwd=self.local) != 0: - raise VCSException("HG purge failed") + p = subprocess.Popen(['hg', 'purge', '--all'], stdout=subprocess.PIPE, + cwd=self.local) + result = p.communicate()[0] + if "'purge' is provided by the following extension" in result: + #Also delete untracked files, we have to enable purge extension for that: + with open(self.local+"/.hg/hgrc", "a") as myfile: + myfile.write("\n[extensions]\nhgext.purge=") + if subprocess.call(['hg', 'purge', '--all'], + cwd=self.local) != 0: + raise VCSException("HG purge failed") + else: + raise VCSException("HG purge failed") def gettags(self): p = subprocess.Popen(['hg', 'tags', '-q'],