##// END OF EJS Templates
record: update help to describe ui.interface...
eloimorlaas -
r31065:7074589c stable
parent child Browse files
Show More
@@ -1,152 +1,153 b''
1 # record.py
1 # record.py
2 #
2 #
3 # Copyright 2007 Bryan O'Sullivan <bos@serpentine.com>
3 # Copyright 2007 Bryan O'Sullivan <bos@serpentine.com>
4 #
4 #
5 # This software may be used and distributed according to the terms of the
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2 or any later version.
6 # GNU General Public License version 2 or any later version.
7
7
8 '''commands to interactively select changes for commit/qrefresh (DEPRECATED)
8 '''commands to interactively select changes for commit/qrefresh (DEPRECATED)
9
9
10 The feature provided by this extension has been moved into core Mercurial as
10 The feature provided by this extension has been moved into core Mercurial as
11 :hg:`commit --interactive`.'''
11 :hg:`commit --interactive`.'''
12
12
13 from __future__ import absolute_import
13 from __future__ import absolute_import
14
14
15 from mercurial.i18n import _
15 from mercurial.i18n import _
16 from mercurial import (
16 from mercurial import (
17 cmdutil,
17 cmdutil,
18 commands,
18 commands,
19 error,
19 error,
20 extensions,
20 extensions,
21 )
21 )
22
22
23 cmdtable = {}
23 cmdtable = {}
24 command = cmdutil.command(cmdtable)
24 command = cmdutil.command(cmdtable)
25 # Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for
25 # Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for
26 # extensions which SHIP WITH MERCURIAL. Non-mainline extensions should
26 # extensions which SHIP WITH MERCURIAL. Non-mainline extensions should
27 # be specifying the version(s) of Mercurial they are tested with, or
27 # be specifying the version(s) of Mercurial they are tested with, or
28 # leave the attribute unspecified.
28 # leave the attribute unspecified.
29 testedwith = 'ships-with-hg-core'
29 testedwith = 'ships-with-hg-core'
30
30
31
31
32 @command("record",
32 @command("record",
33 # same options as commit + white space diff options
33 # same options as commit + white space diff options
34 [c for c in commands.table['^commit|ci'][1][:]
34 [c for c in commands.table['^commit|ci'][1][:]
35 if c[1] != "interactive"] + commands.diffwsopts,
35 if c[1] != "interactive"] + commands.diffwsopts,
36 _('hg record [OPTION]... [FILE]...'))
36 _('hg record [OPTION]... [FILE]...'))
37 def record(ui, repo, *pats, **opts):
37 def record(ui, repo, *pats, **opts):
38 '''interactively select changes to commit
38 '''interactively select changes to commit
39
39
40 If a list of files is omitted, all changes reported by :hg:`status`
40 If a list of files is omitted, all changes reported by :hg:`status`
41 will be candidates for recording.
41 will be candidates for recording.
42
42
43 See :hg:`help dates` for a list of formats valid for -d/--date.
43 See :hg:`help dates` for a list of formats valid for -d/--date.
44
44
45 You will be prompted for whether to record changes to each
45 If using the text interface (see :hg:`help config`),
46 you will be prompted for whether to record changes to each
46 modified file, and for files with multiple changes, for each
47 modified file, and for files with multiple changes, for each
47 change to use. For each query, the following responses are
48 change to use. For each query, the following responses are
48 possible::
49 possible::
49
50
50 y - record this change
51 y - record this change
51 n - skip this change
52 n - skip this change
52 e - edit this change manually
53 e - edit this change manually
53
54
54 s - skip remaining changes to this file
55 s - skip remaining changes to this file
55 f - record remaining changes to this file
56 f - record remaining changes to this file
56
57
57 d - done, skip remaining changes and files
58 d - done, skip remaining changes and files
58 a - record all changes to all remaining files
59 a - record all changes to all remaining files
59 q - quit, recording no changes
60 q - quit, recording no changes
60
61
61 ? - display help
62 ? - display help
62
63
63 This command is not available when committing a merge.'''
64 This command is not available when committing a merge.'''
64
65
65 if not ui.interactive():
66 if not ui.interactive():
66 raise error.Abort(_('running non-interactively, use %s instead') %
67 raise error.Abort(_('running non-interactively, use %s instead') %
67 'commit')
68 'commit')
68
69
69 opts["interactive"] = True
70 opts["interactive"] = True
70 backup = ui.backupconfig('experimental', 'crecord')
71 backup = ui.backupconfig('experimental', 'crecord')
71 try:
72 try:
72 ui.setconfig('experimental', 'crecord', False, 'record')
73 ui.setconfig('experimental', 'crecord', False, 'record')
73 return commands.commit(ui, repo, *pats, **opts)
74 return commands.commit(ui, repo, *pats, **opts)
74 finally:
75 finally:
75 ui.restoreconfig(backup)
76 ui.restoreconfig(backup)
76
77
77 def qrefresh(origfn, ui, repo, *pats, **opts):
78 def qrefresh(origfn, ui, repo, *pats, **opts):
78 if not opts['interactive']:
79 if not opts['interactive']:
79 return origfn(ui, repo, *pats, **opts)
80 return origfn(ui, repo, *pats, **opts)
80
81
81 mq = extensions.find('mq')
82 mq = extensions.find('mq')
82
83
83 def committomq(ui, repo, *pats, **opts):
84 def committomq(ui, repo, *pats, **opts):
84 # At this point the working copy contains only changes that
85 # At this point the working copy contains only changes that
85 # were accepted. All other changes were reverted.
86 # were accepted. All other changes were reverted.
86 # We can't pass *pats here since qrefresh will undo all other
87 # We can't pass *pats here since qrefresh will undo all other
87 # changed files in the patch that aren't in pats.
88 # changed files in the patch that aren't in pats.
88 mq.refresh(ui, repo, **opts)
89 mq.refresh(ui, repo, **opts)
89
90
90 # backup all changed files
91 # backup all changed files
91 cmdutil.dorecord(ui, repo, committomq, None, True,
92 cmdutil.dorecord(ui, repo, committomq, None, True,
92 cmdutil.recordfilter, *pats, **opts)
93 cmdutil.recordfilter, *pats, **opts)
93
94
94 # This command registration is replaced during uisetup().
95 # This command registration is replaced during uisetup().
95 @command('qrecord',
96 @command('qrecord',
96 [],
97 [],
97 _('hg qrecord [OPTION]... PATCH [FILE]...'),
98 _('hg qrecord [OPTION]... PATCH [FILE]...'),
98 inferrepo=True)
99 inferrepo=True)
99 def qrecord(ui, repo, patch, *pats, **opts):
100 def qrecord(ui, repo, patch, *pats, **opts):
100 '''interactively record a new patch
101 '''interactively record a new patch
101
102
102 See :hg:`help qnew` & :hg:`help record` for more information and
103 See :hg:`help qnew` & :hg:`help record` for more information and
103 usage.
104 usage.
104 '''
105 '''
105 return _qrecord('qnew', ui, repo, patch, *pats, **opts)
106 return _qrecord('qnew', ui, repo, patch, *pats, **opts)
106
107
107 def _qrecord(cmdsuggest, ui, repo, patch, *pats, **opts):
108 def _qrecord(cmdsuggest, ui, repo, patch, *pats, **opts):
108 try:
109 try:
109 mq = extensions.find('mq')
110 mq = extensions.find('mq')
110 except KeyError:
111 except KeyError:
111 raise error.Abort(_("'mq' extension not loaded"))
112 raise error.Abort(_("'mq' extension not loaded"))
112
113
113 repo.mq.checkpatchname(patch)
114 repo.mq.checkpatchname(patch)
114
115
115 def committomq(ui, repo, *pats, **opts):
116 def committomq(ui, repo, *pats, **opts):
116 opts['checkname'] = False
117 opts['checkname'] = False
117 mq.new(ui, repo, patch, *pats, **opts)
118 mq.new(ui, repo, patch, *pats, **opts)
118
119
119 backup = ui.backupconfig('experimental', 'crecord')
120 backup = ui.backupconfig('experimental', 'crecord')
120 try:
121 try:
121 ui.setconfig('experimental', 'crecord', False, 'record')
122 ui.setconfig('experimental', 'crecord', False, 'record')
122 cmdutil.dorecord(ui, repo, committomq, cmdsuggest, False,
123 cmdutil.dorecord(ui, repo, committomq, cmdsuggest, False,
123 cmdutil.recordfilter, *pats, **opts)
124 cmdutil.recordfilter, *pats, **opts)
124 finally:
125 finally:
125 ui.restoreconfig(backup)
126 ui.restoreconfig(backup)
126
127
127 def qnew(origfn, ui, repo, patch, *args, **opts):
128 def qnew(origfn, ui, repo, patch, *args, **opts):
128 if opts['interactive']:
129 if opts['interactive']:
129 return _qrecord(None, ui, repo, patch, *args, **opts)
130 return _qrecord(None, ui, repo, patch, *args, **opts)
130 return origfn(ui, repo, patch, *args, **opts)
131 return origfn(ui, repo, patch, *args, **opts)
131
132
132
133
133 def uisetup(ui):
134 def uisetup(ui):
134 try:
135 try:
135 mq = extensions.find('mq')
136 mq = extensions.find('mq')
136 except KeyError:
137 except KeyError:
137 return
138 return
138
139
139 cmdtable["qrecord"] = \
140 cmdtable["qrecord"] = \
140 (qrecord,
141 (qrecord,
141 # same options as qnew, but copy them so we don't get
142 # same options as qnew, but copy them so we don't get
142 # -i/--interactive for qrecord and add white space diff options
143 # -i/--interactive for qrecord and add white space diff options
143 mq.cmdtable['^qnew'][1][:] + commands.diffwsopts,
144 mq.cmdtable['^qnew'][1][:] + commands.diffwsopts,
144 _('hg qrecord [OPTION]... PATCH [FILE]...'))
145 _('hg qrecord [OPTION]... PATCH [FILE]...'))
145
146
146 _wrapcmd('qnew', mq.cmdtable, qnew, _("interactively record a new patch"))
147 _wrapcmd('qnew', mq.cmdtable, qnew, _("interactively record a new patch"))
147 _wrapcmd('qrefresh', mq.cmdtable, qrefresh,
148 _wrapcmd('qrefresh', mq.cmdtable, qrefresh,
148 _("interactively select changes to refresh"))
149 _("interactively select changes to refresh"))
149
150
150 def _wrapcmd(cmd, table, wrapfn, msg):
151 def _wrapcmd(cmd, table, wrapfn, msg):
151 entry = extensions.wrapcommand(table, cmd, wrapfn)
152 entry = extensions.wrapcommand(table, cmd, wrapfn)
152 entry[1].append(('i', 'interactive', None, msg))
153 entry[1].append(('i', 'interactive', None, msg))
@@ -1,415 +1,416 b''
1 Create configuration
1 Create configuration
2
2
3 $ echo "[ui]" >> $HGRCPATH
3 $ echo "[ui]" >> $HGRCPATH
4 $ echo "interactive=true" >> $HGRCPATH
4 $ echo "interactive=true" >> $HGRCPATH
5
5
6 help record (no record)
6 help record (no record)
7
7
8 $ hg help record
8 $ hg help record
9 record extension - commands to interactively select changes for
9 record extension - commands to interactively select changes for
10 commit/qrefresh (DEPRECATED)
10 commit/qrefresh (DEPRECATED)
11
11
12 The feature provided by this extension has been moved into core Mercurial as
12 The feature provided by this extension has been moved into core Mercurial as
13 'hg commit --interactive'.
13 'hg commit --interactive'.
14
14
15 (use 'hg help extensions' for information on enabling extensions)
15 (use 'hg help extensions' for information on enabling extensions)
16
16
17 help qrecord (no record)
17 help qrecord (no record)
18
18
19 $ hg help qrecord
19 $ hg help qrecord
20 'qrecord' is provided by the following extension:
20 'qrecord' is provided by the following extension:
21
21
22 record commands to interactively select changes for commit/qrefresh
22 record commands to interactively select changes for commit/qrefresh
23 (DEPRECATED)
23 (DEPRECATED)
24
24
25 (use 'hg help extensions' for information on enabling extensions)
25 (use 'hg help extensions' for information on enabling extensions)
26
26
27 $ echo "[extensions]" >> $HGRCPATH
27 $ echo "[extensions]" >> $HGRCPATH
28 $ echo "record=" >> $HGRCPATH
28 $ echo "record=" >> $HGRCPATH
29
29
30 help record (record)
30 help record (record)
31
31
32 $ hg help record
32 $ hg help record
33 hg record [OPTION]... [FILE]...
33 hg record [OPTION]... [FILE]...
34
34
35 interactively select changes to commit
35 interactively select changes to commit
36
36
37 If a list of files is omitted, all changes reported by 'hg status' will be
37 If a list of files is omitted, all changes reported by 'hg status' will be
38 candidates for recording.
38 candidates for recording.
39
39
40 See 'hg help dates' for a list of formats valid for -d/--date.
40 See 'hg help dates' for a list of formats valid for -d/--date.
41
41
42 You will be prompted for whether to record changes to each modified file,
42 If using the text interface (see 'hg help config'), you will be prompted
43 and for files with multiple changes, for each change to use. For each
43 for whether to record changes to each modified file, and for files with
44 query, the following responses are possible:
44 multiple changes, for each change to use. For each query, the following
45 responses are possible:
45
46
46 y - record this change
47 y - record this change
47 n - skip this change
48 n - skip this change
48 e - edit this change manually
49 e - edit this change manually
49
50
50 s - skip remaining changes to this file
51 s - skip remaining changes to this file
51 f - record remaining changes to this file
52 f - record remaining changes to this file
52
53
53 d - done, skip remaining changes and files
54 d - done, skip remaining changes and files
54 a - record all changes to all remaining files
55 a - record all changes to all remaining files
55 q - quit, recording no changes
56 q - quit, recording no changes
56
57
57 ? - display help
58 ? - display help
58
59
59 This command is not available when committing a merge.
60 This command is not available when committing a merge.
60
61
61 (use 'hg help -e record' to show help for the record extension)
62 (use 'hg help -e record' to show help for the record extension)
62
63
63 options ([+] can be repeated):
64 options ([+] can be repeated):
64
65
65 -A --addremove mark new/missing files as added/removed before
66 -A --addremove mark new/missing files as added/removed before
66 committing
67 committing
67 --close-branch mark a branch head as closed
68 --close-branch mark a branch head as closed
68 --amend amend the parent of the working directory
69 --amend amend the parent of the working directory
69 -s --secret use the secret phase for committing
70 -s --secret use the secret phase for committing
70 -e --edit invoke editor on commit messages
71 -e --edit invoke editor on commit messages
71 -I --include PATTERN [+] include names matching the given patterns
72 -I --include PATTERN [+] include names matching the given patterns
72 -X --exclude PATTERN [+] exclude names matching the given patterns
73 -X --exclude PATTERN [+] exclude names matching the given patterns
73 -m --message TEXT use text as commit message
74 -m --message TEXT use text as commit message
74 -l --logfile FILE read commit message from file
75 -l --logfile FILE read commit message from file
75 -d --date DATE record the specified date as commit date
76 -d --date DATE record the specified date as commit date
76 -u --user USER record the specified user as committer
77 -u --user USER record the specified user as committer
77 -S --subrepos recurse into subrepositories
78 -S --subrepos recurse into subrepositories
78 -w --ignore-all-space ignore white space when comparing lines
79 -w --ignore-all-space ignore white space when comparing lines
79 -b --ignore-space-change ignore changes in the amount of white space
80 -b --ignore-space-change ignore changes in the amount of white space
80 -B --ignore-blank-lines ignore changes whose lines are all blank
81 -B --ignore-blank-lines ignore changes whose lines are all blank
81
82
82 (some details hidden, use --verbose to show complete help)
83 (some details hidden, use --verbose to show complete help)
83
84
84 help (no mq, so no qrecord)
85 help (no mq, so no qrecord)
85
86
86 $ hg help qrecord
87 $ hg help qrecord
87 hg qrecord [OPTION]... PATCH [FILE]...
88 hg qrecord [OPTION]... PATCH [FILE]...
88
89
89 interactively record a new patch
90 interactively record a new patch
90
91
91 See 'hg help qnew' & 'hg help record' for more information and usage.
92 See 'hg help qnew' & 'hg help record' for more information and usage.
92
93
93 (some details hidden, use --verbose to show complete help)
94 (some details hidden, use --verbose to show complete help)
94
95
95 $ hg init a
96 $ hg init a
96
97
97 qrecord (mq not present)
98 qrecord (mq not present)
98
99
99 $ hg -R a qrecord
100 $ hg -R a qrecord
100 hg qrecord: invalid arguments
101 hg qrecord: invalid arguments
101 hg qrecord [OPTION]... PATCH [FILE]...
102 hg qrecord [OPTION]... PATCH [FILE]...
102
103
103 interactively record a new patch
104 interactively record a new patch
104
105
105 (use 'hg qrecord -h' to show more help)
106 (use 'hg qrecord -h' to show more help)
106 [255]
107 [255]
107
108
108 qrecord patch (mq not present)
109 qrecord patch (mq not present)
109
110
110 $ hg -R a qrecord patch
111 $ hg -R a qrecord patch
111 abort: 'mq' extension not loaded
112 abort: 'mq' extension not loaded
112 [255]
113 [255]
113
114
114 help (bad mq)
115 help (bad mq)
115
116
116 $ echo "mq=nonexistent" >> $HGRCPATH
117 $ echo "mq=nonexistent" >> $HGRCPATH
117 $ hg help qrecord
118 $ hg help qrecord
118 *** failed to import extension mq from nonexistent: [Errno *] * (glob)
119 *** failed to import extension mq from nonexistent: [Errno *] * (glob)
119 hg qrecord [OPTION]... PATCH [FILE]...
120 hg qrecord [OPTION]... PATCH [FILE]...
120
121
121 interactively record a new patch
122 interactively record a new patch
122
123
123 See 'hg help qnew' & 'hg help record' for more information and usage.
124 See 'hg help qnew' & 'hg help record' for more information and usage.
124
125
125 (some details hidden, use --verbose to show complete help)
126 (some details hidden, use --verbose to show complete help)
126
127
127 help (mq present)
128 help (mq present)
128
129
129 $ sed 's/mq=nonexistent/mq=/' $HGRCPATH > hgrc.tmp
130 $ sed 's/mq=nonexistent/mq=/' $HGRCPATH > hgrc.tmp
130 $ mv hgrc.tmp $HGRCPATH
131 $ mv hgrc.tmp $HGRCPATH
131
132
132 $ hg help qrecord
133 $ hg help qrecord
133 hg qrecord [OPTION]... PATCH [FILE]...
134 hg qrecord [OPTION]... PATCH [FILE]...
134
135
135 interactively record a new patch
136 interactively record a new patch
136
137
137 See 'hg help qnew' & 'hg help record' for more information and usage.
138 See 'hg help qnew' & 'hg help record' for more information and usage.
138
139
139 options ([+] can be repeated):
140 options ([+] can be repeated):
140
141
141 -e --edit invoke editor on commit messages
142 -e --edit invoke editor on commit messages
142 -g --git use git extended diff format
143 -g --git use git extended diff format
143 -U --currentuser add "From: <current user>" to patch
144 -U --currentuser add "From: <current user>" to patch
144 -u --user USER add "From: <USER>" to patch
145 -u --user USER add "From: <USER>" to patch
145 -D --currentdate add "Date: <current date>" to patch
146 -D --currentdate add "Date: <current date>" to patch
146 -d --date DATE add "Date: <DATE>" to patch
147 -d --date DATE add "Date: <DATE>" to patch
147 -I --include PATTERN [+] include names matching the given patterns
148 -I --include PATTERN [+] include names matching the given patterns
148 -X --exclude PATTERN [+] exclude names matching the given patterns
149 -X --exclude PATTERN [+] exclude names matching the given patterns
149 -m --message TEXT use text as commit message
150 -m --message TEXT use text as commit message
150 -l --logfile FILE read commit message from file
151 -l --logfile FILE read commit message from file
151 -w --ignore-all-space ignore white space when comparing lines
152 -w --ignore-all-space ignore white space when comparing lines
152 -b --ignore-space-change ignore changes in the amount of white space
153 -b --ignore-space-change ignore changes in the amount of white space
153 -B --ignore-blank-lines ignore changes whose lines are all blank
154 -B --ignore-blank-lines ignore changes whose lines are all blank
154 --mq operate on patch repository
155 --mq operate on patch repository
155
156
156 (some details hidden, use --verbose to show complete help)
157 (some details hidden, use --verbose to show complete help)
157
158
158 $ cd a
159 $ cd a
159
160
160 Base commit
161 Base commit
161
162
162 $ cat > 1.txt <<EOF
163 $ cat > 1.txt <<EOF
163 > 1
164 > 1
164 > 2
165 > 2
165 > 3
166 > 3
166 > 4
167 > 4
167 > 5
168 > 5
168 > EOF
169 > EOF
169 $ cat > 2.txt <<EOF
170 $ cat > 2.txt <<EOF
170 > a
171 > a
171 > b
172 > b
172 > c
173 > c
173 > d
174 > d
174 > e
175 > e
175 > f
176 > f
176 > EOF
177 > EOF
177
178
178 $ mkdir dir
179 $ mkdir dir
179 $ cat > dir/a.txt <<EOF
180 $ cat > dir/a.txt <<EOF
180 > hello world
181 > hello world
181 >
182 >
182 > someone
183 > someone
183 > up
184 > up
184 > there
185 > there
185 > loves
186 > loves
186 > me
187 > me
187 > EOF
188 > EOF
188
189
189 $ hg add 1.txt 2.txt dir/a.txt
190 $ hg add 1.txt 2.txt dir/a.txt
190 $ hg commit -m 'initial checkin'
191 $ hg commit -m 'initial checkin'
191
192
192 Changing files
193 Changing files
193
194
194 $ sed -e 's/2/2 2/;s/4/4 4/' 1.txt > 1.txt.new
195 $ sed -e 's/2/2 2/;s/4/4 4/' 1.txt > 1.txt.new
195 $ sed -e 's/b/b b/' 2.txt > 2.txt.new
196 $ sed -e 's/b/b b/' 2.txt > 2.txt.new
196 $ sed -e 's/hello world/hello world!/' dir/a.txt > dir/a.txt.new
197 $ sed -e 's/hello world/hello world!/' dir/a.txt > dir/a.txt.new
197
198
198 $ mv -f 1.txt.new 1.txt
199 $ mv -f 1.txt.new 1.txt
199 $ mv -f 2.txt.new 2.txt
200 $ mv -f 2.txt.new 2.txt
200 $ mv -f dir/a.txt.new dir/a.txt
201 $ mv -f dir/a.txt.new dir/a.txt
201
202
202 Whole diff
203 Whole diff
203
204
204 $ hg diff --nodates
205 $ hg diff --nodates
205 diff -r 1057167b20ef 1.txt
206 diff -r 1057167b20ef 1.txt
206 --- a/1.txt
207 --- a/1.txt
207 +++ b/1.txt
208 +++ b/1.txt
208 @@ -1,5 +1,5 @@
209 @@ -1,5 +1,5 @@
209 1
210 1
210 -2
211 -2
211 +2 2
212 +2 2
212 3
213 3
213 -4
214 -4
214 +4 4
215 +4 4
215 5
216 5
216 diff -r 1057167b20ef 2.txt
217 diff -r 1057167b20ef 2.txt
217 --- a/2.txt
218 --- a/2.txt
218 +++ b/2.txt
219 +++ b/2.txt
219 @@ -1,5 +1,5 @@
220 @@ -1,5 +1,5 @@
220 a
221 a
221 -b
222 -b
222 +b b
223 +b b
223 c
224 c
224 d
225 d
225 e
226 e
226 diff -r 1057167b20ef dir/a.txt
227 diff -r 1057167b20ef dir/a.txt
227 --- a/dir/a.txt
228 --- a/dir/a.txt
228 +++ b/dir/a.txt
229 +++ b/dir/a.txt
229 @@ -1,4 +1,4 @@
230 @@ -1,4 +1,4 @@
230 -hello world
231 -hello world
231 +hello world!
232 +hello world!
232
233
233 someone
234 someone
234 up
235 up
235
236
236 qrecord with bad patch name, should abort before prompting
237 qrecord with bad patch name, should abort before prompting
237
238
238 $ hg qrecord .hg
239 $ hg qrecord .hg
239 abort: patch name cannot begin with ".hg"
240 abort: patch name cannot begin with ".hg"
240 [255]
241 [255]
241
242
242 qrecord a.patch
243 qrecord a.patch
243
244
244 $ hg qrecord -d '0 0' -m aaa a.patch <<EOF
245 $ hg qrecord -d '0 0' -m aaa a.patch <<EOF
245 > y
246 > y
246 > y
247 > y
247 > n
248 > n
248 > y
249 > y
249 > y
250 > y
250 > n
251 > n
251 > EOF
252 > EOF
252 diff --git a/1.txt b/1.txt
253 diff --git a/1.txt b/1.txt
253 2 hunks, 2 lines changed
254 2 hunks, 2 lines changed
254 examine changes to '1.txt'? [Ynesfdaq?] y
255 examine changes to '1.txt'? [Ynesfdaq?] y
255
256
256 @@ -1,3 +1,3 @@
257 @@ -1,3 +1,3 @@
257 1
258 1
258 -2
259 -2
259 +2 2
260 +2 2
260 3
261 3
261 record change 1/4 to '1.txt'? [Ynesfdaq?] y
262 record change 1/4 to '1.txt'? [Ynesfdaq?] y
262
263
263 @@ -3,3 +3,3 @@
264 @@ -3,3 +3,3 @@
264 3
265 3
265 -4
266 -4
266 +4 4
267 +4 4
267 5
268 5
268 record change 2/4 to '1.txt'? [Ynesfdaq?] n
269 record change 2/4 to '1.txt'? [Ynesfdaq?] n
269
270
270 diff --git a/2.txt b/2.txt
271 diff --git a/2.txt b/2.txt
271 1 hunks, 1 lines changed
272 1 hunks, 1 lines changed
272 examine changes to '2.txt'? [Ynesfdaq?] y
273 examine changes to '2.txt'? [Ynesfdaq?] y
273
274
274 @@ -1,5 +1,5 @@
275 @@ -1,5 +1,5 @@
275 a
276 a
276 -b
277 -b
277 +b b
278 +b b
278 c
279 c
279 d
280 d
280 e
281 e
281 record change 3/4 to '2.txt'? [Ynesfdaq?] y
282 record change 3/4 to '2.txt'? [Ynesfdaq?] y
282
283
283 diff --git a/dir/a.txt b/dir/a.txt
284 diff --git a/dir/a.txt b/dir/a.txt
284 1 hunks, 1 lines changed
285 1 hunks, 1 lines changed
285 examine changes to 'dir/a.txt'? [Ynesfdaq?] n
286 examine changes to 'dir/a.txt'? [Ynesfdaq?] n
286
287
287
288
288 After qrecord a.patch 'tip'"
289 After qrecord a.patch 'tip'"
289
290
290 $ hg tip -p
291 $ hg tip -p
291 changeset: 1:5d1ca63427ee
292 changeset: 1:5d1ca63427ee
292 tag: a.patch
293 tag: a.patch
293 tag: qbase
294 tag: qbase
294 tag: qtip
295 tag: qtip
295 tag: tip
296 tag: tip
296 user: test
297 user: test
297 date: Thu Jan 01 00:00:00 1970 +0000
298 date: Thu Jan 01 00:00:00 1970 +0000
298 summary: aaa
299 summary: aaa
299
300
300 diff -r 1057167b20ef -r 5d1ca63427ee 1.txt
301 diff -r 1057167b20ef -r 5d1ca63427ee 1.txt
301 --- a/1.txt Thu Jan 01 00:00:00 1970 +0000
302 --- a/1.txt Thu Jan 01 00:00:00 1970 +0000
302 +++ b/1.txt Thu Jan 01 00:00:00 1970 +0000
303 +++ b/1.txt Thu Jan 01 00:00:00 1970 +0000
303 @@ -1,5 +1,5 @@
304 @@ -1,5 +1,5 @@
304 1
305 1
305 -2
306 -2
306 +2 2
307 +2 2
307 3
308 3
308 4
309 4
309 5
310 5
310 diff -r 1057167b20ef -r 5d1ca63427ee 2.txt
311 diff -r 1057167b20ef -r 5d1ca63427ee 2.txt
311 --- a/2.txt Thu Jan 01 00:00:00 1970 +0000
312 --- a/2.txt Thu Jan 01 00:00:00 1970 +0000
312 +++ b/2.txt Thu Jan 01 00:00:00 1970 +0000
313 +++ b/2.txt Thu Jan 01 00:00:00 1970 +0000
313 @@ -1,5 +1,5 @@
314 @@ -1,5 +1,5 @@
314 a
315 a
315 -b
316 -b
316 +b b
317 +b b
317 c
318 c
318 d
319 d
319 e
320 e
320
321
321
322
322 After qrecord a.patch 'diff'"
323 After qrecord a.patch 'diff'"
323
324
324 $ hg diff --nodates
325 $ hg diff --nodates
325 diff -r 5d1ca63427ee 1.txt
326 diff -r 5d1ca63427ee 1.txt
326 --- a/1.txt
327 --- a/1.txt
327 +++ b/1.txt
328 +++ b/1.txt
328 @@ -1,5 +1,5 @@
329 @@ -1,5 +1,5 @@
329 1
330 1
330 2 2
331 2 2
331 3
332 3
332 -4
333 -4
333 +4 4
334 +4 4
334 5
335 5
335 diff -r 5d1ca63427ee dir/a.txt
336 diff -r 5d1ca63427ee dir/a.txt
336 --- a/dir/a.txt
337 --- a/dir/a.txt
337 +++ b/dir/a.txt
338 +++ b/dir/a.txt
338 @@ -1,4 +1,4 @@
339 @@ -1,4 +1,4 @@
339 -hello world
340 -hello world
340 +hello world!
341 +hello world!
341
342
342 someone
343 someone
343 up
344 up
344
345
345 qrecord b.patch
346 qrecord b.patch
346
347
347 $ hg qrecord -d '0 0' -m bbb b.patch <<EOF
348 $ hg qrecord -d '0 0' -m bbb b.patch <<EOF
348 > y
349 > y
349 > y
350 > y
350 > y
351 > y
351 > y
352 > y
352 > EOF
353 > EOF
353 diff --git a/1.txt b/1.txt
354 diff --git a/1.txt b/1.txt
354 1 hunks, 1 lines changed
355 1 hunks, 1 lines changed
355 examine changes to '1.txt'? [Ynesfdaq?] y
356 examine changes to '1.txt'? [Ynesfdaq?] y
356
357
357 @@ -1,5 +1,5 @@
358 @@ -1,5 +1,5 @@
358 1
359 1
359 2 2
360 2 2
360 3
361 3
361 -4
362 -4
362 +4 4
363 +4 4
363 5
364 5
364 record change 1/2 to '1.txt'? [Ynesfdaq?] y
365 record change 1/2 to '1.txt'? [Ynesfdaq?] y
365
366
366 diff --git a/dir/a.txt b/dir/a.txt
367 diff --git a/dir/a.txt b/dir/a.txt
367 1 hunks, 1 lines changed
368 1 hunks, 1 lines changed
368 examine changes to 'dir/a.txt'? [Ynesfdaq?] y
369 examine changes to 'dir/a.txt'? [Ynesfdaq?] y
369
370
370 @@ -1,4 +1,4 @@
371 @@ -1,4 +1,4 @@
371 -hello world
372 -hello world
372 +hello world!
373 +hello world!
373
374
374 someone
375 someone
375 up
376 up
376 record change 2/2 to 'dir/a.txt'? [Ynesfdaq?] y
377 record change 2/2 to 'dir/a.txt'? [Ynesfdaq?] y
377
378
378
379
379 After qrecord b.patch 'tip'
380 After qrecord b.patch 'tip'
380
381
381 $ hg tip -p
382 $ hg tip -p
382 changeset: 2:b056198bf878
383 changeset: 2:b056198bf878
383 tag: b.patch
384 tag: b.patch
384 tag: qtip
385 tag: qtip
385 tag: tip
386 tag: tip
386 user: test
387 user: test
387 date: Thu Jan 01 00:00:00 1970 +0000
388 date: Thu Jan 01 00:00:00 1970 +0000
388 summary: bbb
389 summary: bbb
389
390
390 diff -r 5d1ca63427ee -r b056198bf878 1.txt
391 diff -r 5d1ca63427ee -r b056198bf878 1.txt
391 --- a/1.txt Thu Jan 01 00:00:00 1970 +0000
392 --- a/1.txt Thu Jan 01 00:00:00 1970 +0000
392 +++ b/1.txt Thu Jan 01 00:00:00 1970 +0000
393 +++ b/1.txt Thu Jan 01 00:00:00 1970 +0000
393 @@ -1,5 +1,5 @@
394 @@ -1,5 +1,5 @@
394 1
395 1
395 2 2
396 2 2
396 3
397 3
397 -4
398 -4
398 +4 4
399 +4 4
399 5
400 5
400 diff -r 5d1ca63427ee -r b056198bf878 dir/a.txt
401 diff -r 5d1ca63427ee -r b056198bf878 dir/a.txt
401 --- a/dir/a.txt Thu Jan 01 00:00:00 1970 +0000
402 --- a/dir/a.txt Thu Jan 01 00:00:00 1970 +0000
402 +++ b/dir/a.txt Thu Jan 01 00:00:00 1970 +0000
403 +++ b/dir/a.txt Thu Jan 01 00:00:00 1970 +0000
403 @@ -1,4 +1,4 @@
404 @@ -1,4 +1,4 @@
404 -hello world
405 -hello world
405 +hello world!
406 +hello world!
406
407
407 someone
408 someone
408 up
409 up
409
410
410
411
411 After qrecord b.patch 'diff'
412 After qrecord b.patch 'diff'
412
413
413 $ hg diff --nodates
414 $ hg diff --nodates
414
415
415 $ cd ..
416 $ cd ..
@@ -1,90 +1,91 b''
1 Set up a repo
1 Set up a repo
2
2
3 $ cat <<EOF >> $HGRCPATH
3 $ cat <<EOF >> $HGRCPATH
4 > [ui]
4 > [ui]
5 > interactive = true
5 > interactive = true
6 > [extensions]
6 > [extensions]
7 > record =
7 > record =
8 > EOF
8 > EOF
9
9
10 $ hg init a
10 $ hg init a
11 $ cd a
11 $ cd a
12
12
13 Record help
13 Record help
14
14
15 $ hg record -h
15 $ hg record -h
16 hg record [OPTION]... [FILE]...
16 hg record [OPTION]... [FILE]...
17
17
18 interactively select changes to commit
18 interactively select changes to commit
19
19
20 If a list of files is omitted, all changes reported by 'hg status' will be
20 If a list of files is omitted, all changes reported by 'hg status' will be
21 candidates for recording.
21 candidates for recording.
22
22
23 See 'hg help dates' for a list of formats valid for -d/--date.
23 See 'hg help dates' for a list of formats valid for -d/--date.
24
24
25 You will be prompted for whether to record changes to each modified file,
25 If using the text interface (see 'hg help config'), you will be prompted
26 and for files with multiple changes, for each change to use. For each
26 for whether to record changes to each modified file, and for files with
27 query, the following responses are possible:
27 multiple changes, for each change to use. For each query, the following
28 responses are possible:
28
29
29 y - record this change
30 y - record this change
30 n - skip this change
31 n - skip this change
31 e - edit this change manually
32 e - edit this change manually
32
33
33 s - skip remaining changes to this file
34 s - skip remaining changes to this file
34 f - record remaining changes to this file
35 f - record remaining changes to this file
35
36
36 d - done, skip remaining changes and files
37 d - done, skip remaining changes and files
37 a - record all changes to all remaining files
38 a - record all changes to all remaining files
38 q - quit, recording no changes
39 q - quit, recording no changes
39
40
40 ? - display help
41 ? - display help
41
42
42 This command is not available when committing a merge.
43 This command is not available when committing a merge.
43
44
44 (use 'hg help -e record' to show help for the record extension)
45 (use 'hg help -e record' to show help for the record extension)
45
46
46 options ([+] can be repeated):
47 options ([+] can be repeated):
47
48
48 -A --addremove mark new/missing files as added/removed before
49 -A --addremove mark new/missing files as added/removed before
49 committing
50 committing
50 --close-branch mark a branch head as closed
51 --close-branch mark a branch head as closed
51 --amend amend the parent of the working directory
52 --amend amend the parent of the working directory
52 -s --secret use the secret phase for committing
53 -s --secret use the secret phase for committing
53 -e --edit invoke editor on commit messages
54 -e --edit invoke editor on commit messages
54 -I --include PATTERN [+] include names matching the given patterns
55 -I --include PATTERN [+] include names matching the given patterns
55 -X --exclude PATTERN [+] exclude names matching the given patterns
56 -X --exclude PATTERN [+] exclude names matching the given patterns
56 -m --message TEXT use text as commit message
57 -m --message TEXT use text as commit message
57 -l --logfile FILE read commit message from file
58 -l --logfile FILE read commit message from file
58 -d --date DATE record the specified date as commit date
59 -d --date DATE record the specified date as commit date
59 -u --user USER record the specified user as committer
60 -u --user USER record the specified user as committer
60 -S --subrepos recurse into subrepositories
61 -S --subrepos recurse into subrepositories
61 -w --ignore-all-space ignore white space when comparing lines
62 -w --ignore-all-space ignore white space when comparing lines
62 -b --ignore-space-change ignore changes in the amount of white space
63 -b --ignore-space-change ignore changes in the amount of white space
63 -B --ignore-blank-lines ignore changes whose lines are all blank
64 -B --ignore-blank-lines ignore changes whose lines are all blank
64
65
65 (some details hidden, use --verbose to show complete help)
66 (some details hidden, use --verbose to show complete help)
66
67
67 Select no files
68 Select no files
68
69
69 $ touch empty-rw
70 $ touch empty-rw
70 $ hg add empty-rw
71 $ hg add empty-rw
71
72
72 $ hg record empty-rw<<EOF
73 $ hg record empty-rw<<EOF
73 > n
74 > n
74 > EOF
75 > EOF
75 diff --git a/empty-rw b/empty-rw
76 diff --git a/empty-rw b/empty-rw
76 new file mode 100644
77 new file mode 100644
77 examine changes to 'empty-rw'? [Ynesfdaq?] n
78 examine changes to 'empty-rw'? [Ynesfdaq?] n
78
79
79 no changes to record
80 no changes to record
80 [1]
81 [1]
81
82
82 $ hg tip -p
83 $ hg tip -p
83 changeset: -1:000000000000
84 changeset: -1:000000000000
84 tag: tip
85 tag: tip
85 user:
86 user:
86 date: Thu Jan 01 00:00:00 1970 +0000
87 date: Thu Jan 01 00:00:00 1970 +0000
87
88
88
89
89
90
90
91
General Comments 0
You need to be logged in to leave comments. Login now