Show More
@@ -2675,6 +2675,12 b' def qqueue(ui, repo, name=None, **opts):' | |||||
2675 | fh.write('%s\n' % (name,)) |
|
2675 | fh.write('%s\n' % (name,)) | |
2676 | fh.close() |
|
2676 | fh.close() | |
2677 |
|
2677 | |||
|
2678 | def _queuedir(name): | |||
|
2679 | if name == 'patches': | |||
|
2680 | return repo.join('patches') | |||
|
2681 | else: | |||
|
2682 | return repo.join('patches-' + name) | |||
|
2683 | ||||
2678 | def _validname(name): |
|
2684 | def _validname(name): | |
2679 | for n in name: |
|
2685 | for n in name: | |
2680 | if n in ':\\/.': |
|
2686 | if n in ':\\/.': | |
@@ -2704,6 +2710,31 b' def qqueue(ui, repo, name=None, **opts):' | |||||
2704 | _addqueue(_defaultqueue) |
|
2710 | _addqueue(_defaultqueue) | |
2705 | _addqueue(name) |
|
2711 | _addqueue(name) | |
2706 | _setactive(name) |
|
2712 | _setactive(name) | |
|
2713 | elif opts.get('rename'): | |||
|
2714 | current = _getcurrent() | |||
|
2715 | if name == current: | |||
|
2716 | raise util.Abort(_('can\'t rename "%s" to its current name') % name) | |||
|
2717 | if name in existing: | |||
|
2718 | raise util.Abort(_('queue "%s" already exists') % name) | |||
|
2719 | ||||
|
2720 | olddir = _queuedir(current) | |||
|
2721 | newdir = _queuedir(name) | |||
|
2722 | ||||
|
2723 | if os.path.exists(newdir): | |||
|
2724 | raise util.Abort(_('non-queue directory "%s" already exists') % | |||
|
2725 | newdir) | |||
|
2726 | ||||
|
2727 | fh = repo.opener('patches.queues.new', 'w') | |||
|
2728 | for queue in existing: | |||
|
2729 | if queue == current: | |||
|
2730 | fh.write('%s\n' % (name,)) | |||
|
2731 | if os.path.exists(olddir): | |||
|
2732 | util.rename(olddir, newdir) | |||
|
2733 | else: | |||
|
2734 | fh.write('%s\n' % (queue,)) | |||
|
2735 | fh.close() | |||
|
2736 | util.rename(repo.join('patches.queues.new'), repo.join(_allqueues)) | |||
|
2737 | _setactivenocheck(name) | |||
2707 | elif opts.get('delete'): |
|
2738 | elif opts.get('delete'): | |
2708 | if name not in existing: |
|
2739 | if name not in existing: | |
2709 | raise util.Abort(_('cannot delete queue that does not exist')) |
|
2740 | raise util.Abort(_('cannot delete queue that does not exist')) | |
@@ -3045,6 +3076,7 b' cmdtable = {' | |||||
3045 | [ |
|
3076 | [ | |
3046 | ('l', 'list', False, _('list all available queues')), |
|
3077 | ('l', 'list', False, _('list all available queues')), | |
3047 | ('c', 'create', False, _('create new queue')), |
|
3078 | ('c', 'create', False, _('create new queue')), | |
|
3079 | ('', 'rename', False, _('rename active queue')), | |||
3048 | ('', 'delete', False, _('delete reference to queue')), |
|
3080 | ('', 'delete', False, _('delete reference to queue')), | |
3049 | ], |
|
3081 | ], | |
3050 | _('[OPTION] [QUEUE]')), |
|
3082 | _('[OPTION] [QUEUE]')), |
@@ -35,6 +35,25 b' echo %% fail creating queue with already' | |||||
35 | hg qqueue --create foo |
|
35 | hg qqueue --create foo | |
36 | hg qqueue |
|
36 | hg qqueue | |
37 |
|
37 | |||
|
38 | echo %% create new queue for rename | |||
|
39 | hg qqueue --create bar | |||
|
40 | hg qqueue | |||
|
41 | ||||
|
42 | echo %% rename queue, same name | |||
|
43 | hg qqueue --rename bar | |||
|
44 | ||||
|
45 | echo %% rename queue to existing | |||
|
46 | hg qqueue --rename foo | |||
|
47 | ||||
|
48 | echo %% rename queue | |||
|
49 | hg qqueue --rename buz | |||
|
50 | hg qqueue | |||
|
51 | ||||
|
52 | echo %% switch back to previous queue | |||
|
53 | hg qqueue foo | |||
|
54 | hg qqueue --delete buz | |||
|
55 | hg qqueue | |||
|
56 | ||||
38 | echo %% unapplied patches |
|
57 | echo %% unapplied patches | |
39 | hg qun |
|
58 | hg qun | |
40 | echo c > a |
|
59 | echo c > a |
@@ -19,6 +19,21 b' patches' | |||||
19 | abort: queue "foo" already exists |
|
19 | abort: queue "foo" already exists | |
20 | foo (active) |
|
20 | foo (active) | |
21 | patches |
|
21 | patches | |
|
22 | %% create new queue for rename | |||
|
23 | bar (active) | |||
|
24 | foo | |||
|
25 | patches | |||
|
26 | %% rename queue, same name | |||
|
27 | abort: can't rename "bar" to its current name | |||
|
28 | %% rename queue to existing | |||
|
29 | abort: queue "foo" already exists | |||
|
30 | %% rename queue | |||
|
31 | buz (active) | |||
|
32 | foo | |||
|
33 | patches | |||
|
34 | %% switch back to previous queue | |||
|
35 | foo (active) | |||
|
36 | patches | |||
22 | %% unapplied patches |
|
37 | %% unapplied patches | |
23 | %% fail switching back |
|
38 | %% fail switching back | |
24 | abort: patches applied - cannot set new queue active |
|
39 | abort: patches applied - cannot set new queue active |
General Comments 0
You need to be logged in to leave comments.
Login now