# HG changeset patch # User Bryan O'Sullivan # Date 1184629847 25200 # Node ID fc502517d68d8b139e9d9871af332e2e9e285aeb # Parent 22fcd6444ad9c94b380f9b21eff255ced53c3a01 mq: autodetect an existing git patch during qrefresh (issue 491) diff -r 22fcd6444ad9 -r fc502517d68d hgext/mq.py --- a/hgext/mq.py Wed Jul 11 00:53:44 2007 -0700 +++ b/hgext/mq.py Mon Jul 16 16:50:47 2007 -0700 @@ -909,7 +909,16 @@ patchparent = self.qparents(repo, top) message, comments, user, date, patchfound = self.readheaders(patchfn) - patchf = self.opener(patchfn, "w") + patchf = self.opener(patchfn, 'r+') + + # if the patch was a git patch, refresh it as a git patch + for line in patchf: + if line.startswith('diff --git'): + self.diffopts().git = True + break + patchf.seek(0) + patchf.truncate() + msg = opts.get('msg', '').rstrip() if msg: if comments: diff -r 22fcd6444ad9 -r fc502517d68d tests/test-mq --- a/tests/test-mq Wed Jul 11 00:53:44 2007 -0700 +++ b/tests/test-mq Mon Jul 16 16:50:47 2007 -0700 @@ -319,6 +319,8 @@ hg qrefresh --git cat .hg/patches/bar hg log -vC --template '{rev} {file_copies%filecopy}\n' -r . +hg qrefresh +grep 'diff --git' .hg/patches/bar echo hg up -C 1 diff -r 22fcd6444ad9 -r fc502517d68d tests/test-mq.out --- a/tests/test-mq.out Wed Jul 11 00:53:44 2007 -0700 +++ b/tests/test-mq.out Mon Jul 16 16:50:47 2007 -0700 @@ -325,6 +325,8 @@ rename from foo rename to baz 2 baz (foo) +diff --git a/bar b/bar +diff --git a/foo b/baz 1 files updated, 0 files merged, 2 files removed, 0 files unresolved 2 files updated, 0 files merged, 1 files removed, 0 files unresolved