diff --git a/hgext/mq.py b/hgext/mq.py index ec74ea542201d61134114aee481d70faa1faaf70_aGdleHQvbXEucHk=..143b52fce68e5080db4ccb022bc859ae3e65de4e_aGdleHQvbXEucHk= 100644 --- a/hgext/mq.py +++ b/hgext/mq.py @@ -395,6 +395,17 @@ class AbortNoCleanup(error.Abort): pass +def makepatchname(existing, title): + """Return a suitable filename for title, adding a suffix to make + it unique in the existing list""" + namebase = re.sub('[\s\W_]+', '_', title.lower()).strip('_') + name = namebase + i = 0 + while name in existing: + i += 1 + name = '%s__%s' % (namebase, i) + return name + class queue(object): def __init__(self, ui, baseui, path, patchdir=None): self.basepath = path @@ -2090,7 +2101,8 @@ lastparent = p1 if not patchname: - patchname = normname('%d.diff' % r) + patchname = makepatchname(self.fullseries, + repo[r].description().split('\n', 1)[0]) checkseries(patchname) self.checkpatchname(patchname, force) self.fullseries.insert(0, patchname) diff --git a/tests/test-mq-qdelete.t b/tests/test-mq-qdelete.t index ec74ea542201d61134114aee481d70faa1faaf70_dGVzdHMvdGVzdC1tcS1xZGVsZXRlLnQ=..143b52fce68e5080db4ccb022bc859ae3e65de4e_dGVzdHMvdGVzdC1tcS1xZGVsZXRlLnQ= 100644 --- a/tests/test-mq-qdelete.t +++ b/tests/test-mq-qdelete.t @@ -155,5 +155,5 @@ $ hg init --mq $ hg qimport -r 3 $ hg qpop - popping 3.diff + popping imported_patch_pc patch queue now empty @@ -159,7 +159,7 @@ patch queue now empty - $ hg qdel -k 3.diff - $ hg qimp -e 3.diff - adding 3.diff to series file + $ hg qdel -k imported_patch_pc + $ hg qimp -e imported_patch_pc + adding imported_patch_pc to series file $ hg qfinish -a no patches applied @@ -167,6 +167,6 @@ resilience to inconsistency: qfinish -a with applied patches not in series $ hg qser - 3.diff + imported_patch_pc $ hg qapplied $ hg qpush @@ -171,9 +171,9 @@ $ hg qapplied $ hg qpush - applying 3.diff - patch 3.diff is empty - now at: 3.diff + applying imported_patch_pc + patch imported_patch_pc is empty + now at: imported_patch_pc $ echo next >> base $ hg qrefresh -d '1 0' $ echo > .hg/patches/series # remove 3.diff from series to confuse mq $ hg qfinish -a @@ -176,8 +176,8 @@ $ echo next >> base $ hg qrefresh -d '1 0' $ echo > .hg/patches/series # remove 3.diff from series to confuse mq $ hg qfinish -a - revision 47dfa8501675 refers to unknown patches: 3.diff + revision 47dfa8501675 refers to unknown patches: imported_patch_pc more complex state 'both known and unknown patches diff --git a/tests/test-mq-qimport.t b/tests/test-mq-qimport.t index ec74ea542201d61134114aee481d70faa1faaf70_dGVzdHMvdGVzdC1tcS1xaW1wb3J0LnQ=..143b52fce68e5080db4ccb022bc859ae3e65de4e_dGVzdHMvdGVzdC1tcS1xaW1wb3J0LnQ= 100644 --- a/tests/test-mq-qimport.t +++ b/tests/test-mq-qimport.t @@ -198,5 +198,5 @@ now at: appendbar.diff $ hg qfin -a patch b.diff finalized without changeset message - $ touch .hg/patches/2.diff + $ touch .hg/patches/append_foo $ hg qimport -r 'p1(.)::' @@ -202,4 +202,4 @@ $ hg qimport -r 'p1(.)::' - abort: patch "2.diff" already exists + abort: patch "append_foo" already exists [255] $ hg qapplied @@ -204,4 +204,4 @@ [255] $ hg qapplied - 3.diff + append_bar $ hg qfin -a @@ -207,4 +207,4 @@ $ hg qfin -a - $ rm .hg/patches/2.diff + $ rm .hg/patches/append_foo $ hg qimport -r 'p1(.)::' -P $ hg qpop -a @@ -209,5 +209,5 @@ $ hg qimport -r 'p1(.)::' -P $ hg qpop -a - popping 3.diff - popping 2.diff + popping append_bar + popping append_foo patch queue now empty @@ -213,6 +213,6 @@ patch queue now empty - $ hg qdel 3.diff - $ hg qdel -k 2.diff + $ hg qdel append_foo + $ hg qdel -k append_bar qimport -e @@ -216,9 +216,9 @@ qimport -e - $ hg qimport -e 2.diff - adding 2.diff to series file - $ hg qdel -k 2.diff + $ hg qimport -e append_bar + adding append_bar to series file + $ hg qdel -k append_bar qimport -e --name newname oldexisitingpatch @@ -222,8 +222,8 @@ qimport -e --name newname oldexisitingpatch - $ hg qimport -e --name this-name-is-better 2.diff - renaming 2.diff to this-name-is-better + $ hg qimport -e --name this-name-is-better append_bar + renaming append_bar to this-name-is-better adding this-name-is-better to series file $ hg qser this-name-is-better diff --git a/tests/test-mq-subrepo.t b/tests/test-mq-subrepo.t index ec74ea542201d61134114aee481d70faa1faaf70_dGVzdHMvdGVzdC1tcS1zdWJyZXBvLnQ=..143b52fce68e5080db4ccb022bc859ae3e65de4e_dGVzdHMvdGVzdC1tcS1zdWJyZXBvLnQ= 100644 --- a/tests/test-mq-subrepo.t +++ b/tests/test-mq-subrepo.t @@ -249,8 +249,8 @@ reverting subrepo sub adding sub/a (glob) $ hg qpop - popping 1.diff - now at: 0.diff + popping 1 + now at: 0 $ hg status -AS C .hgsub C .hgsubstate @@ -268,7 +268,7 @@ reverting subrepo sub adding sub/a (glob) $ hg qpush - applying 1.diff + applying 1 subrepository sub diverged (local revision: b2fdb12cd82b, remote revision: aa037b301eba) (M)erge, keep (l)ocal or keep (r)emote? m 1 files updated, 0 files merged, 0 files removed, 0 files unresolved @@ -272,7 +272,7 @@ subrepository sub diverged (local revision: b2fdb12cd82b, remote revision: aa037b301eba) (M)erge, keep (l)ocal or keep (r)emote? m 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - now at: 1.diff + now at: 1 $ hg status -AS C .hgsub C .hgsubstate diff --git a/tests/test-rebase-mq-skip.t b/tests/test-rebase-mq-skip.t index ec74ea542201d61134114aee481d70faa1faaf70_dGVzdHMvdGVzdC1yZWJhc2UtbXEtc2tpcC50..143b52fce68e5080db4ccb022bc859ae3e65de4e_dGVzdHMvdGVzdC1yZWJhc2UtbXEtc2tpcC50 100644 --- a/tests/test-rebase-mq-skip.t +++ b/tests/test-rebase-mq-skip.t @@ -142,5 +142,5 @@ $ hg up -q qtip $ HGMERGE=internal:fail hg rebase - rebasing 1:b4bffa6e4776 "r1" (1.diff qbase) + rebasing 1:b4bffa6e4776 "r1" (qbase r1) note: rebase of 1:b4bffa6e4776 created no changes to commit @@ -146,4 +146,4 @@ note: rebase of 1:b4bffa6e4776 created no changes to commit - rebasing 2:c0fd129beb01 "r2" (2.diff) - rebasing 3:6ff5b8feed8e "r3" (3.diff) + rebasing 2:c0fd129beb01 "r2" (r2) + rebasing 3:6ff5b8feed8e "r3" (r3) note: rebase of 3:6ff5b8feed8e created no changes to commit @@ -149,5 +149,5 @@ note: rebase of 3:6ff5b8feed8e created no changes to commit - rebasing 4:094320fec554 "r4" (4.diff) + rebasing 4:094320fec554 "r4" (r4) unresolved conflicts (see hg resolve, then hg rebase --continue) [1] @@ -155,8 +155,8 @@ (no more unresolved files) $ hg rebase --continue - already rebased 1:b4bffa6e4776 "r1" (1.diff qbase) as 057f55ff8f44 - already rebased 2:c0fd129beb01 "r2" (2.diff) as 1660ab13ce9a - already rebased 3:6ff5b8feed8e "r3" (3.diff) as 1660ab13ce9a - rebasing 4:094320fec554 "r4" (4.diff) + already rebased 1:b4bffa6e4776 "r1" (qbase r1) as 057f55ff8f44 + already rebased 2:c0fd129beb01 "r2" (r2) as 1660ab13ce9a + already rebased 3:6ff5b8feed8e "r3" (r3) as 1660ab13ce9a + rebasing 4:094320fec554 "r4" (r4) note: rebase of 4:094320fec554 created no changes to commit @@ -162,7 +162,7 @@ note: rebase of 4:094320fec554 created no changes to commit - rebasing 5:681a378595ba "r5" (5.diff) - rebasing 6:512a1f24768b "r6" (6.diff qtip) + rebasing 5:681a378595ba "r5" (r5) + rebasing 6:512a1f24768b "r6" (qtip r6) note: rebase of 6:512a1f24768b created no changes to commit saved backup bundle to $TESTTMP/b/.hg/strip-backup/b4bffa6e4776-b9bfb84d-backup.hg (glob) $ hg tglog @@ -165,6 +165,6 @@ note: rebase of 6:512a1f24768b created no changes to commit saved backup bundle to $TESTTMP/b/.hg/strip-backup/b4bffa6e4776-b9bfb84d-backup.hg (glob) $ hg tglog - @ 8: 'r5' tags: 5.diff qtip tip + @ 8: 'r5' tags: qtip r5 tip | @@ -170,5 +170,5 @@ | - o 7: 'r2' tags: 2.diff qbase + o 7: 'r2' tags: qbase r2 | o 6: 'branch2-r6' tags: qparent | diff --git a/tests/test-strip.t b/tests/test-strip.t index ec74ea542201d61134114aee481d70faa1faaf70_dGVzdHMvdGVzdC1zdHJpcC50..143b52fce68e5080db4ccb022bc859ae3e65de4e_dGVzdHMvdGVzdC1zdHJpcC50 100644 --- a/tests/test-strip.t +++ b/tests/test-strip.t @@ -431,9 +431,9 @@ applied patches before strip $ hg qapplied - 2.diff - 3.diff - 4.diff + d + e + f stripping revision in queue @@ -444,7 +444,7 @@ applied patches after stripping rev in queue $ hg qapplied - 2.diff + d stripping ancestor of queue