Show More
@@ -3660,16 +3660,23 b' def tag(ui, repo, name1, *names, **opts)' | |||
|
3660 | 3660 | |
|
3661 | 3661 | Tags are used to name particular revisions of the repository and are |
|
3662 | 3662 | very useful to compare different revisions, to go back to significant |
|
3663 | earlier versions or to mark branch points as releases, etc. | |
|
3663 | earlier versions or to mark branch points as releases, etc. Changing | |
|
3664 | an existing tag is normally disallowed; use -f/--force to override. | |
|
3664 | 3665 | |
|
3665 | 3666 | If no revision is given, the parent of the working directory is |
|
3666 | 3667 | used, or tip if no revision is checked out. |
|
3667 | 3668 | |
|
3668 | 3669 | To facilitate version control, distribution, and merging of tags, |
|
3669 | they are stored as a file named ".hgtags" which is managed | |
|
3670 |
|
|
|
3671 | necessary. The file '.hg/localtags' is used for local tags (not | |
|
3672 | shared among repositories). | |
|
3670 | they are stored as a file named ".hgtags" which is managed similarly | |
|
3671 | to other project files and can be hand-edited if necessary. This | |
|
3672 | also means that tagging creates a new commit. The file | |
|
3673 | ".hg/localtags" is used for local tags (not shared among | |
|
3674 | repositories). | |
|
3675 | ||
|
3676 | Tag commits are usually made at the head of a branch. If the parent | |
|
3677 | of the working directory is not a branch head, :hg:`tag` aborts; use | |
|
3678 | -f/--force to force the tag commit to be based on a non-head | |
|
3679 | changeset. | |
|
3673 | 3680 | |
|
3674 | 3681 | See :hg:`help dates` for a list of formats valid for -d/--date. |
|
3675 | 3682 | |
@@ -3712,8 +3719,13 b' def tag(ui, repo, name1, *names, **opts)' | |||
|
3712 | 3719 | if n in repo.tags(): |
|
3713 | 3720 | raise util.Abort(_('tag \'%s\' already exists ' |
|
3714 | 3721 | '(use -f to force)') % n) |
|
3715 | if not opts.get('local') and repo.dirstate.parents()[1] != nullid: | |
|
3716 | raise util.Abort(_('uncommitted merge')) | |
|
3722 | if not opts.get('local'): | |
|
3723 | p1, p2 = repo.dirstate.parents() | |
|
3724 | if p2 != nullid: | |
|
3725 | raise util.Abort(_('uncommitted merge')) | |
|
3726 | bheads = repo.branchheads() | |
|
3727 | if not opts.get('force') and bheads and p1 not in bheads: | |
|
3728 | raise util.Abort(_('not at a branch head (use -f to force)')) | |
|
3717 | 3729 | r = repo[rev_].node() |
|
3718 | 3730 | |
|
3719 | 3731 | if not message: |
@@ -4475,7 +4487,7 b' table = {' | |||
|
4475 | 4487 | _('[OPTION]... [FILE]...')), |
|
4476 | 4488 | "tag": |
|
4477 | 4489 | (tag, |
|
4478 |
[('f', 'force', None, _('r |
|
|
4490 | [('f', 'force', None, _('force tag')), | |
|
4479 | 4491 | ('l', 'local', None, _('make the tag local')), |
|
4480 | 4492 | ('r', 'rev', '', |
|
4481 | 4493 | _('revision to tag'), _('REV')), |
@@ -9,7 +9,7 b'' | |||
|
9 | 9 | |
|
10 | 10 | $ hg co 1 |
|
11 | 11 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
12 | $ hg tag -r0 t1 | |
|
12 | $ hg tag -f -r0 t1 | |
|
13 | 13 | $ hg tags |
|
14 | 14 | tip 3:a49829c4fc11 |
|
15 | 15 | t1 0:f7b1eb17ad24 |
@@ -78,13 +78,20 b'' | |||
|
78 | 78 | $ cat .hg/localtags |
|
79 | 79 | d4f0d2909abc9290e2773c08837d70c1794e3f5a bleah1 |
|
80 | 80 | |
|
81 | tagging on a non-head revision | |
|
82 | ||
|
81 | 83 | $ hg update 0 |
|
82 | 84 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
85 | $ hg tag -l localblah | |
|
83 | 86 | $ hg tag "foobar" |
|
87 | abort: not at a branch head (use -f to force) | |
|
88 | [255] | |
|
89 | $ hg tag -f "foobar" | |
|
84 | 90 | $ cat .hgtags |
|
85 | 91 | acb14030fe0a21b60322c440ad2d20cf7685a376 foobar |
|
86 | 92 | $ cat .hg/localtags |
|
87 | 93 | d4f0d2909abc9290e2773c08837d70c1794e3f5a bleah1 |
|
94 | acb14030fe0a21b60322c440ad2d20cf7685a376 localblah | |
|
88 | 95 | |
|
89 | 96 | $ hg tag -l 'xx |
|
90 | 97 | > newline' |
@@ -102,6 +109,7 b' cloning local tags' | |||
|
102 | 109 | tag: bleah |
|
103 | 110 | tag: bleah0 |
|
104 | 111 | tag: foobar |
|
112 | tag: localblah | |
|
105 | 113 | user: test |
|
106 | 114 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
107 | 115 | summary: test |
@@ -156,10 +164,10 b" doesn't end with EOL" | |||
|
156 | 164 | > f = file('.hg/localtags', 'w'); f.write(last); f.close() |
|
157 | 165 | > EOF |
|
158 | 166 | $ cat .hg/localtags; echo |
|
159 | d4f0d2909abc9290e2773c08837d70c1794e3f5a bleah1 | |
|
167 | acb14030fe0a21b60322c440ad2d20cf7685a376 localblah | |
|
160 | 168 | $ hg tag -l localnewline |
|
161 | 169 | $ cat .hg/localtags; echo |
|
162 | d4f0d2909abc9290e2773c08837d70c1794e3f5a bleah1 | |
|
170 | acb14030fe0a21b60322c440ad2d20cf7685a376 localblah | |
|
163 | 171 | c2899151f4e76890c602a2597a650a72666681bf localnewline |
|
164 | 172 | |
|
165 | 173 | |
@@ -197,6 +205,7 b' test custom commit messages' | |||
|
197 | 205 | custom tag message |
|
198 | 206 | second line |
|
199 | 207 | |
|
208 | ||
|
200 | 209 | local tag with .hgtags modified |
|
201 | 210 | |
|
202 | 211 | $ hg tag hgtags-modified |
@@ -209,6 +218,31 b' local tag with .hgtags modified' | |||
|
209 | 218 | $ hg tag --local baz |
|
210 | 219 | $ hg revert --no-backup .hgtags |
|
211 | 220 | |
|
221 | ||
|
222 | tagging when at named-branch-head that's not a topo-head | |
|
223 | ||
|
224 | $ hg up default | |
|
225 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
226 | $ hg merge -t internal:local | |
|
227 | 0 files updated, 1 files merged, 0 files removed, 0 files unresolved | |
|
228 | (branch merge, don't forget to commit) | |
|
229 | $ hg ci -m 'merge named branch' | |
|
230 | $ hg up 11 | |
|
231 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
232 | $ hg tag new-topo-head | |
|
233 | ||
|
234 | ||
|
235 | tagging on null rev | |
|
236 | ||
|
237 | $ hg up null | |
|
238 | 0 files updated, 0 files merged, 2 files removed, 0 files unresolved | |
|
239 | $ hg tag nullrev | |
|
240 | abort: not at a branch head (use -f to force) | |
|
241 | [255] | |
|
242 | ||
|
243 | $ hg init empty | |
|
244 | $ hg tag -R empty nullrev | |
|
245 | ||
|
212 | 246 | $ cd .. |
|
213 | 247 | |
|
214 | 248 | tagging on an uncommitted merge (issue2542) |
General Comments 0
You need to be logged in to leave comments.
Login now