##// END OF EJS Templates
Merge with stable
Wagner Bruna -
r11721:0b8d17bb merge stable
parent child Browse files
Show More
@@ -13,9 +13,14 b' where WRITER is the name of a Docutils w'
13 """
13 """
14
14
15 import sys
15 import sys
16 from docutils.parsers.rst import roles
16 try:
17 from docutils.core import publish_cmdline
17 from docutils.parsers.rst import roles
18 from docutils import nodes, utils
18 from docutils.core import publish_cmdline
19 from docutils import nodes, utils
20 except ImportError:
21 sys.stderr.write("abort: couldn't generate documentation: docutils "
22 "module is missing\n")
23 sys.exit(-1)
19
24
20 def role_hg(name, rawtext, text, lineno, inliner,
25 def role_hg(name, rawtext, text, lineno, inliner,
21 options={}, content=[]):
26 options={}, content=[]):
@@ -136,6 +136,9 b' def bookmark(ui, repo, mark=None, rev=No'
136 if "\n" in mark:
136 if "\n" in mark:
137 raise util.Abort(_("bookmark name cannot contain newlines"))
137 raise util.Abort(_("bookmark name cannot contain newlines"))
138 mark = mark.strip()
138 mark = mark.strip()
139 if not mark:
140 raise util.Abort(_("bookmark names cannot consist entirely of "
141 "whitespace"))
139 if mark in marks and not force:
142 if mark in marks and not force:
140 raise util.Abort(_("a bookmark of the same name already exists"))
143 raise util.Abort(_("a bookmark of the same name already exists"))
141 if ((mark in repo.branchtags() or mark == repo.dirstate.branch())
144 if ((mark in repo.branchtags() or mark == repo.dirstate.branch())
@@ -108,7 +108,7 b" svnisodate = lambda x: util.datestr(x, '"
108 svnutcdate = lambda x: util.datestr((x[0], 0), '%Y-%m-%d %H:%M:%SZ')
108 svnutcdate = lambda x: util.datestr((x[0], 0), '%Y-%m-%d %H:%M:%SZ')
109
109
110 # make keyword tools accessible
110 # make keyword tools accessible
111 kwtools = {'templater': None, 'hgcmd': '', 'inc': [], 'exc': ['.hg*']}
111 kwtools = {'templater': None, 'hgcmd': ''}
112
112
113
113
114 def _defaultkwmaps(ui):
114 def _defaultkwmaps(ui):
@@ -141,11 +141,10 b' class kwtemplater(object):'
141 provides keyword substitution functions.
141 provides keyword substitution functions.
142 '''
142 '''
143
143
144 def __init__(self, ui, repo):
144 def __init__(self, ui, repo, inc, exc):
145 self.ui = ui
145 self.ui = ui
146 self.repo = repo
146 self.repo = repo
147 self.match = match.match(repo.root, '', [],
147 self.match = match.match(repo.root, '', [], inc, exc)
148 kwtools['inc'], kwtools['exc'])
149 self.restrict = kwtools['hgcmd'] in restricted.split()
148 self.restrict = kwtools['hgcmd'] in restricted.split()
150 self.record = kwtools['hgcmd'] in recordcommands.split()
149 self.record = kwtools['hgcmd'] in recordcommands.split()
151
150
@@ -438,23 +437,15 b' def shrink(ui, repo, *pats, **opts):'
438
437
439
438
440 def uisetup(ui):
439 def uisetup(ui):
441 '''Collects [keyword] config in kwtools.
440 ''' Monkeypatches dispatch._parse to retrieve user command.'''
442 Monkeypatches dispatch._parse if needed.'''
443
444 for pat, opt in ui.configitems('keyword'):
445 if opt != 'ignore':
446 kwtools['inc'].append(pat)
447 else:
448 kwtools['exc'].append(pat)
449
441
450 if kwtools['inc']:
442 def kwdispatch_parse(orig, ui, args):
451 def kwdispatch_parse(orig, ui, args):
443 '''Monkeypatch dispatch._parse to obtain running hg command.'''
452 '''Monkeypatch dispatch._parse to obtain running hg command.'''
444 cmd, func, args, options, cmdoptions = orig(ui, args)
453 cmd, func, args, options, cmdoptions = orig(ui, args)
445 kwtools['hgcmd'] = cmd
454 kwtools['hgcmd'] = cmd
446 return cmd, func, args, options, cmdoptions
455 return cmd, func, args, options, cmdoptions
456
447
457 extensions.wrapfunction(dispatch, '_parse', kwdispatch_parse)
448 extensions.wrapfunction(dispatch, '_parse', kwdispatch_parse)
458
449
459 def reposetup(ui, repo):
450 def reposetup(ui, repo):
460 '''Sets up repo as kwrepo for keyword substitution.
451 '''Sets up repo as kwrepo for keyword substitution.
@@ -465,15 +456,23 b' def reposetup(ui, repo):'
465 Monkeypatches patch and webcommands.'''
456 Monkeypatches patch and webcommands.'''
466
457
467 try:
458 try:
468 if (not repo.local() or not kwtools['inc']
459 if (not repo.local() or kwtools['hgcmd'] in nokwcommands.split()
469 or kwtools['hgcmd'] in nokwcommands.split()
470 or '.hg' in util.splitpath(repo.root)
460 or '.hg' in util.splitpath(repo.root)
471 or repo._url.startswith('bundle:')):
461 or repo._url.startswith('bundle:')):
472 return
462 return
473 except AttributeError:
463 except AttributeError:
474 pass
464 pass
475
465
476 kwtools['templater'] = kwt = kwtemplater(ui, repo)
466 inc, exc = [], ['.hg*']
467 for pat, opt in ui.configitems('keyword'):
468 if opt != 'ignore':
469 inc.append(pat)
470 else:
471 exc.append(pat)
472 if not inc:
473 return
474
475 kwtools['templater'] = kwt = kwtemplater(ui, repo, inc, exc)
477
476
478 class kwrepo(repo.__class__):
477 class kwrepo(repo.__class__):
479 def file(self, f):
478 def file(self, f):
@@ -1051,12 +1051,16 b' class queue(object):'
1051 self.check_localchanges(repo)
1051 self.check_localchanges(repo)
1052
1052
1053 if move:
1053 if move:
1054 try:
1054 if not patch:
1055 index = self.series.index(patch, start)
1055 raise util.Abort(_("please specify the patch to move"))
1056 fullpatch = self.full_series[index]
1056 for i, rpn in enumerate(self.full_series[start:]):
1057 del self.full_series[index]
1057 # strip markers for patch guards
1058 except ValueError:
1058 if self.guard_re.split(rpn, 1)[0] == patch:
1059 raise util.Abort(_("patch '%s' not found") % patch)
1059 break
1060 index = start + i
1061 assert index < len(self.full_series)
1062 fullpatch = self.full_series[index]
1063 del self.full_series[index]
1060 self.full_series.insert(start, fullpatch)
1064 self.full_series.insert(start, fullpatch)
1061 self.parse_series()
1065 self.parse_series()
1062 self.series_dirty = 1
1066 self.series_dirty = 1
@@ -1702,7 +1706,7 b' class queue(object):'
1702 else:
1706 else:
1703 text = url.open(self.ui, filename).read()
1707 text = url.open(self.ui, filename).read()
1704 except (OSError, IOError):
1708 except (OSError, IOError):
1705 raise util.Abort(_("unable to read %s") % filename)
1709 raise util.Abort(_("unable to read file %s") % filename)
1706 if not patchname:
1710 if not patchname:
1707 patchname = normname(os.path.basename(filename))
1711 patchname = normname(os.path.basename(filename))
1708 self.check_reserved_name(patchname)
1712 self.check_reserved_name(patchname)
@@ -3660,6 +3660,8 b' def tag(ui, repo, name1, *names, **opts)'
3660 for n in names:
3660 for n in names:
3661 if n in ['tip', '.', 'null']:
3661 if n in ['tip', '.', 'null']:
3662 raise util.Abort(_('the name \'%s\' is reserved') % n)
3662 raise util.Abort(_('the name \'%s\' is reserved') % n)
3663 if not n:
3664 raise util.Abort(_('tag names cannot consist entirely of whitespace'))
3663 if opts.get('rev') and opts.get('remove'):
3665 if opts.get('rev') and opts.get('remove'):
3664 raise util.Abort(_("--rev and --remove are incompatible"))
3666 raise util.Abort(_("--rev and --remove are incompatible"))
3665 if opts.get('rev'):
3667 if opts.get('rev'):
@@ -248,7 +248,7 b' class cmdalias(object):'
248 if self.shadows:
248 if self.shadows:
249 ui.debug("alias '%s' shadows command\n" % self.name)
249 ui.debug("alias '%s' shadows command\n" % self.name)
250
250
251 return self.fn(ui, *args, **opts)
251 return util.checksignature(self.fn)(ui, *args, **opts)
252
252
253 def addaliases(ui, cmdtable):
253 def addaliases(ui, cmdtable):
254 # aliases are processed after extensions have been loaded, so they
254 # aliases are processed after extensions have been loaded, so they
@@ -366,7 +366,12 b' def _dispatch(ui, args):'
366 os.chdir(cwd[-1])
366 os.chdir(cwd[-1])
367
367
368 # read the local repository .hgrc into a local ui object
368 # read the local repository .hgrc into a local ui object
369 path = cmdutil.findrepo(os.getcwd()) or ""
369 try:
370 wd = os.getcwd()
371 except OSError, e:
372 raise util.Abort(_("error getting current working directory: %s") %
373 e.strerror)
374 path = cmdutil.findrepo(wd) or ""
370 if not path:
375 if not path:
371 lui = ui
376 lui = ui
372 else:
377 else:
@@ -32,7 +32,7 b' def findrepos(paths):'
32 except KeyError:
32 except KeyError:
33 repos.append((prefix, root))
33 repos.append((prefix, root))
34 continue
34 continue
35 roothead = os.path.normpath(roothead)
35 roothead = os.path.normpath(os.path.abspath(roothead))
36 for path in util.walkrepos(roothead, followsym=True, recurse=recurse):
36 for path in util.walkrepos(roothead, followsym=True, recurse=recurse):
37 path = os.path.normpath(path)
37 path = os.path.normpath(path)
38 name = util.pconvert(path[len(roothead):]).strip('/')
38 name = util.pconvert(path[len(roothead):]).strip('/')
@@ -286,7 +286,7 b' def applyupdates(repo, action, wctx, mct'
286 numupdates = len(action)
286 numupdates = len(action)
287 for i, a in enumerate(action):
287 for i, a in enumerate(action):
288 f, m = a[:2]
288 f, m = a[:2]
289 u.progress('update', i + 1, item=f, total=numupdates, unit='files')
289 u.progress(_('updating'), i + 1, item=f, total=numupdates, unit='files')
290 if f and f[0] == "/":
290 if f and f[0] == "/":
291 continue
291 continue
292 if m == "r": # remove
292 if m == "r": # remove
@@ -346,7 +346,7 b' def applyupdates(repo, action, wctx, mct'
346 elif m == "e": # exec
346 elif m == "e": # exec
347 flags = a[2]
347 flags = a[2]
348 util.set_flags(repo.wjoin(f), 'l' in flags, 'x' in flags)
348 util.set_flags(repo.wjoin(f), 'l' in flags, 'x' in flags)
349 u.progress('update', None, total=numupdates, unit='files')
349 u.progress(_('updating'), None, total=numupdates, unit='files')
350
350
351 return updated, merged, removed, unresolved
351 return updated, merged, removed, unresolved
352
352
@@ -14,6 +14,7 b" shortlog = log --template '{rev} {node|s"
14 dln = lognull --debug
14 dln = lognull --debug
15 nousage = rollback
15 nousage = rollback
16 put = export -r 0 -o "\$FOO/%R.diff"
16 put = export -r 0 -o "\$FOO/%R.diff"
17 rt = root
17
18
18 [defaults]
19 [defaults]
19 mylog = -q
20 mylog = -q
@@ -64,3 +65,8 b' hg dln'
64 echo '% path expanding'
65 echo '% path expanding'
65 FOO=`pwd` hg put
66 FOO=`pwd` hg put
66 cat 0.diff
67 cat 0.diff
68
69 echo '% invalid arguments'
70 hg rt foo
71
72 exit 0
@@ -43,3 +43,16 b' diff -r 000000000000 -r e63c23eaa88a foo'
43 +++ b/foo Thu Jan 01 00:00:00 1970 +0000
43 +++ b/foo Thu Jan 01 00:00:00 1970 +0000
44 @@ -0,0 +1,1 @@
44 @@ -0,0 +1,1 @@
45 +foo
45 +foo
46 % invalid arguments
47 hg rt: invalid arguments
48 hg rt
49
50 alias for: hg root
51
52 print the root (top) of the current working directory
53
54 Print the root directory of the current repository.
55
56 Returns 0 on success.
57
58 use "hg -v help rt" to show global options
@@ -100,4 +100,7 b' hg bookmark'
100 echo % revision but no bookmark name
100 echo % revision but no bookmark name
101 hg bookmark -r .
101 hg bookmark -r .
102
102
103 echo % bookmark name with whitespace only
104 hg bookmark ' '
105
103 true
106 true
@@ -74,3 +74,5 b' abort: a bookmark of the same name alrea'
74 * x y 2:0316ce92851d
74 * x y 2:0316ce92851d
75 % revision but no bookmark name
75 % revision but no bookmark name
76 abort: bookmark name required
76 abort: bookmark name required
77 % bookmark name with whitespace only
78 abort: bookmark names cannot consist entirely of whitespace
@@ -15,12 +15,12 b' resolving manifests'
15 preserving a for resolve of b
15 preserving a for resolve of b
16 preserving a for resolve of c
16 preserving a for resolve of c
17 removing a
17 removing a
18 update: a 1/2 files (50.00%)
18 updating: a 1/2 files (50.00%)
19 picked tool 'internal:merge' for b (binary False symlink False)
19 picked tool 'internal:merge' for b (binary False symlink False)
20 merging a and b to b
20 merging a and b to b
21 my b@fb3948d97f07+ other b@7f1309517659 ancestor a@583c7b748052
21 my b@fb3948d97f07+ other b@7f1309517659 ancestor a@583c7b748052
22 premerge successful
22 premerge successful
23 update: a 2/2 files (100.00%)
23 updating: a 2/2 files (100.00%)
24 picked tool 'internal:merge' for c (binary False symlink False)
24 picked tool 'internal:merge' for c (binary False symlink False)
25 merging a and c to c
25 merging a and c to c
26 my c@fb3948d97f07+ other c@7f1309517659 ancestor a@583c7b748052
26 my c@fb3948d97f07+ other c@7f1309517659 ancestor a@583c7b748052
@@ -3,6 +3,8 b''
3
3
4 "$TESTDIR/hghave" no-outer-repo || exit 80
4 "$TESTDIR/hghave" no-outer-repo || exit 80
5
5
6 dir=`pwd`
7
6 hg init a
8 hg init a
7 cd a
9 cd a
8 echo a > a
10 echo a > a
@@ -19,8 +21,12 b' cat = -r null'
19 EOF
21 EOF
20 hg cat a
22 hg cat a
21
23
24 echo '% working directory removed'
25 rm -rf $dir/a
26 hg --version
27
22 echo '% no repo'
28 echo '% no repo'
23 cd ..
29 cd $dir
24 hg cat
30 hg cat
25
31
26 exit 0
32 exit 0
@@ -33,5 +33,7 b' use "hg -v help cat" to show global opti'
33 % [defaults]
33 % [defaults]
34 a
34 a
35 a: No such file in rev 000000000000
35 a: No such file in rev 000000000000
36 % working directory removed
37 abort: error getting current working directory: No such file or directory
36 % no repo
38 % no repo
37 abort: There is no Mercurial repository here (.hg not found)!
39 abort: There is no Mercurial repository here (.hg not found)!
@@ -17,12 +17,12 b' resolving manifests'
17 foo: remote copied to bar -> m
17 foo: remote copied to bar -> m
18 preserving foo for resolve of bar
18 preserving foo for resolve of bar
19 preserving foo for resolve of foo
19 preserving foo for resolve of foo
20 update: foo 1/2 files (50.00%)
20 updating: foo 1/2 files (50.00%)
21 picked tool 'internal:merge' for bar (binary False symlink False)
21 picked tool 'internal:merge' for bar (binary False symlink False)
22 merging foo and bar to bar
22 merging foo and bar to bar
23 my bar@2092631ce82b+ other bar@d9da848d0adf ancestor foo@310fd17130da
23 my bar@2092631ce82b+ other bar@d9da848d0adf ancestor foo@310fd17130da
24 premerge successful
24 premerge successful
25 update: foo 2/2 files (100.00%)
25 updating: foo 2/2 files (100.00%)
26 picked tool 'internal:merge' for foo (binary False symlink False)
26 picked tool 'internal:merge' for foo (binary False symlink False)
27 merging foo
27 merging foo
28 my foo@2092631ce82b+ other foo@d9da848d0adf ancestor foo@310fd17130da
28 my foo@2092631ce82b+ other foo@d9da848d0adf ancestor foo@310fd17130da
@@ -60,34 +60,38 b' hg help showoptlist'
60 #### - user names in annotate
60 #### - user names in annotate
61 #### - file names in diffstat
61 #### - file names in diffstat
62
62
63 rm -f s; touch s
64 rm -f m; touch m
65 rm -f l; touch l
66
63 #### add files
67 #### add files
64
68
65 touch $S
69 cp s $S
66 hg add $S
70 hg add $S
67 touch $M
71 cp m $M
68 hg add $M
72 hg add $M
69 touch $L
73 cp l $L
70 hg add $L
74 hg add $L
71
75
72 #### commit(1)
76 #### commit(1)
73
77
74 echo 'first line(1)' >> $S
78 echo 'first line(1)' >> s; cp s $S
75 echo 'first line(2)' >> $M
79 echo 'first line(2)' >> m; cp m $M
76 echo 'first line(3)' >> $L
80 echo 'first line(3)' >> l; cp l $L
77 hg commit -m 'first commit' -u $S -d "1000000 0"
81 hg commit -m 'first commit' -u $S -d "1000000 0"
78
82
79 #### commit(2)
83 #### commit(2)
80
84
81 echo 'second line(1)' >> $S
85 echo 'second line(1)' >> s; cp s $S
82 echo 'second line(2)' >> $M
86 echo 'second line(2)' >> m; cp m $M
83 echo 'second line(3)' >> $L
87 echo 'second line(3)' >> l; cp l $L
84 hg commit -m 'second commit' -u $M -d "1000000 0"
88 hg commit -m 'second commit' -u $M -d "1000000 0"
85
89
86 #### commit(3)
90 #### commit(3)
87
91
88 echo 'third line(1)' >> $S
92 echo 'third line(1)' >> s; cp s $S
89 echo 'third line(2)' >> $M
93 echo 'third line(2)' >> m; cp m $M
90 echo 'third line(3)' >> $L
94 echo 'third line(3)' >> l; cp l $L
91 hg commit -m 'third commit' -u $L -d "1000000 0"
95 hg commit -m 'third commit' -u $L -d "1000000 0"
92
96
93 #### check
97 #### check
@@ -65,6 +65,8 b' t/a/=$root/a'
65 b=$root/b
65 b=$root/b
66 coll=$root/*
66 coll=$root/*
67 rcoll=$root/**
67 rcoll=$root/**
68 star=*
69 starstar=**
68 EOF
70 EOF
69
71
70 hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
72 hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
@@ -46,6 +46,15 b' 200 Script output follows'
46 /rcoll/b/
46 /rcoll/b/
47 /rcoll/b/d/
47 /rcoll/b/d/
48 /rcoll/c/
48 /rcoll/c/
49 /star/webdir/a/
50 /star/webdir/a/.hg/patches/
51 /star/webdir/b/
52 /star/webdir/c/
53 /starstar/webdir/a/
54 /starstar/webdir/a/.hg/patches/
55 /starstar/webdir/b/
56 /starstar/webdir/b/d/
57 /starstar/webdir/c/
49
58
50 200 Script output follows
59 200 Script output follows
51
60
@@ -165,6 +174,78 b' 200 Script output follows'
165 <td class="indexlinks"></td>
174 <td class="indexlinks"></td>
166 </tr>
175 </tr>
167
176
177 <tr class="parity1">
178 <td><a href="/star/webdir/a/?style=paper">star/webdir/a</a></td>
179 <td>unknown</td>
180 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
181 <td class="age">seconds ago</td>
182 <td class="indexlinks"></td>
183 </tr>
184
185 <tr class="parity0">
186 <td><a href="/star/webdir/a/.hg/patches/?style=paper">star/webdir/a/.hg/patches</a></td>
187 <td>unknown</td>
188 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
189 <td class="age">seconds ago</td>
190 <td class="indexlinks"></td>
191 </tr>
192
193 <tr class="parity1">
194 <td><a href="/star/webdir/b/?style=paper">star/webdir/b</a></td>
195 <td>unknown</td>
196 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
197 <td class="age">seconds ago</td>
198 <td class="indexlinks"></td>
199 </tr>
200
201 <tr class="parity0">
202 <td><a href="/star/webdir/c/?style=paper">star/webdir/c</a></td>
203 <td>unknown</td>
204 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
205 <td class="age">seconds ago</td>
206 <td class="indexlinks"></td>
207 </tr>
208
209 <tr class="parity1">
210 <td><a href="/starstar/webdir/a/?style=paper">starstar/webdir/a</a></td>
211 <td>unknown</td>
212 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
213 <td class="age">seconds ago</td>
214 <td class="indexlinks"></td>
215 </tr>
216
217 <tr class="parity0">
218 <td><a href="/starstar/webdir/a/.hg/patches/?style=paper">starstar/webdir/a/.hg/patches</a></td>
219 <td>unknown</td>
220 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
221 <td class="age">seconds ago</td>
222 <td class="indexlinks"></td>
223 </tr>
224
225 <tr class="parity1">
226 <td><a href="/starstar/webdir/b/?style=paper">starstar/webdir/b</a></td>
227 <td>unknown</td>
228 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
229 <td class="age">seconds ago</td>
230 <td class="indexlinks"></td>
231 </tr>
232
233 <tr class="parity0">
234 <td><a href="/starstar/webdir/b/d/?style=paper">starstar/webdir/b/d</a></td>
235 <td>unknown</td>
236 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
237 <td class="age">seconds ago</td>
238 <td class="indexlinks"></td>
239 </tr>
240
241 <tr class="parity1">
242 <td><a href="/starstar/webdir/c/?style=paper">starstar/webdir/c</a></td>
243 <td>unknown</td>
244 <td>&#70;&#111;&#111;&#32;&#66;&#97;&#114;&#32;&#60;&#102;&#111;&#111;&#46;&#98;&#97;&#114;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;&#62;</td>
245 <td class="age">seconds ago</td>
246 <td class="indexlinks"></td>
247 </tr>
248
168 </table>
249 </table>
169 </div>
250 </div>
170 </div>
251 </div>
@@ -8,7 +8,7 b' resolving manifests'
8 overwrite None partial False
8 overwrite None partial False
9 ancestor bbd179dfa0a7 local 71766447bdbb+ remote 4d9e78aaceee
9 ancestor bbd179dfa0a7 local 71766447bdbb+ remote 4d9e78aaceee
10 foo: remote is newer -> g
10 foo: remote is newer -> g
11 update: foo 1/1 files (100.00%)
11 updating: foo 1/1 files (100.00%)
12 getting foo
12 getting foo
13 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
13 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
14 (branch merge, don't forget to commit)
14 (branch merge, don't forget to commit)
@@ -13,9 +13,9 b' resolving manifests'
13 ancestor 81f4b099af3d local c64f439569a9+ remote c12dcd37c90a
13 ancestor 81f4b099af3d local c64f439569a9+ remote c12dcd37c90a
14 1: other deleted -> r
14 1: other deleted -> r
15 1a: remote created -> g
15 1a: remote created -> g
16 update: 1 1/2 files (50.00%)
16 updating: 1 1/2 files (50.00%)
17 removing 1
17 removing 1
18 update: 1a 2/2 files (100.00%)
18 updating: 1a 2/2 files (100.00%)
19 getting 1a
19 getting 1a
20 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
20 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
21 (branch merge, don't forget to commit)
21 (branch merge, don't forget to commit)
@@ -33,7 +33,7 b' resolving manifests'
33 ancestor c64f439569a9 local e327dca35ac8+ remote 746e9549ea96
33 ancestor c64f439569a9 local e327dca35ac8+ remote 746e9549ea96
34 1a: local copied/moved to 1 -> m
34 1a: local copied/moved to 1 -> m
35 preserving 1a for resolve of 1a
35 preserving 1a for resolve of 1a
36 update: 1a 1/1 files (100.00%)
36 updating: 1a 1/1 files (100.00%)
37 picked tool 'internal:merge' for 1a (binary False symlink False)
37 picked tool 'internal:merge' for 1a (binary False symlink False)
38 merging 1a and 1 to 1a
38 merging 1a and 1 to 1a
39 my 1a@e327dca35ac8+ other 1@746e9549ea96 ancestor 1@81f4b099af3d
39 my 1a@e327dca35ac8+ other 1@746e9549ea96 ancestor 1@81f4b099af3d
@@ -53,7 +53,7 b' resolving manifests'
53 1: remote moved to 1a -> m
53 1: remote moved to 1a -> m
54 preserving 1 for resolve of 1a
54 preserving 1 for resolve of 1a
55 removing 1
55 removing 1
56 update: 1 1/1 files (100.00%)
56 updating: 1 1/1 files (100.00%)
57 picked tool 'internal:merge' for 1a (binary False symlink False)
57 picked tool 'internal:merge' for 1a (binary False symlink False)
58 merging 1 and 1a to 1a
58 merging 1 and 1a to 1a
59 my 1a@746e9549ea96+ other 1a@e327dca35ac8 ancestor 1@81f4b099af3d
59 my 1a@746e9549ea96+ other 1a@e327dca35ac8 ancestor 1@81f4b099af3d
@@ -283,8 +283,17 b' hg revert --no-backup --rev tip a'
283 echo % cat a
283 echo % cat a
284 cat a
284 cat a
285
285
286 echo % clone
287 cd ..
288
289 echo % expansion in dest
290 hg --quiet clone Test globalconf
291 cat globalconf/a
292 echo % no expansion in dest
293 hg --quiet --config 'keyword.**=ignore' clone Test localconf
294 cat localconf/a
295
286 echo % clone to test incoming
296 echo % clone to test incoming
287 cd ..
288 hg clone -r1 Test Test-a
297 hg clone -r1 Test Test-a
289 cd Test-a
298 cd Test-a
290 cat <<EOF >> .hg/hgrc
299 cat <<EOF >> .hg/hgrc
@@ -333,6 +333,17 b' expand $Id: a bb948857c743 Thu, 01 Jan 1'
333 do not process $Id:
333 do not process $Id:
334 xxx $
334 xxx $
335 $Xinfo: User Name <user@example.com>: firstline $
335 $Xinfo: User Name <user@example.com>: firstline $
336 % clone
337 % expansion in dest
338 expand $Id: a bb948857c743 Thu, 01 Jan 1970 00:00:02 +0000 user $
339 do not process $Id:
340 xxx $
341 $Xinfo: User Name <user@example.com>: firstline $
342 % no expansion in dest
343 expand $Id$
344 do not process $Id:
345 xxx $
346 $Xinfo$
336 % clone to test incoming
347 % clone to test incoming
337 requesting all changes
348 requesting all changes
338 adding changesets
349 adding changesets
@@ -28,7 +28,7 b' resolving manifests'
28 ancestor 0f2ff26688b9 local 2263c1be0967+ remote 0555950ead28
28 ancestor 0f2ff26688b9 local 2263c1be0967+ remote 0555950ead28
29 bar: versions differ -> m
29 bar: versions differ -> m
30 preserving bar for resolve of bar
30 preserving bar for resolve of bar
31 update: bar 1/1 files (100.00%)
31 updating: bar 1/1 files (100.00%)
32 picked tool 'internal:merge' for bar (binary False symlink False)
32 picked tool 'internal:merge' for bar (binary False symlink False)
33 merging bar
33 merging bar
34 my bar@2263c1be0967+ other bar@0555950ead28 ancestor bar@0f2ff26688b9
34 my bar@2263c1be0967+ other bar@0555950ead28 ancestor bar@0f2ff26688b9
@@ -79,7 +79,7 b' resolving manifests'
79 ancestor 0f2ff26688b9 local 2263c1be0967+ remote 3ffa6b9e35f0
79 ancestor 0f2ff26688b9 local 2263c1be0967+ remote 3ffa6b9e35f0
80 bar: versions differ -> m
80 bar: versions differ -> m
81 preserving bar for resolve of bar
81 preserving bar for resolve of bar
82 update: bar 1/1 files (100.00%)
82 updating: bar 1/1 files (100.00%)
83 picked tool 'internal:merge' for bar (binary False symlink False)
83 picked tool 'internal:merge' for bar (binary False symlink False)
84 merging bar
84 merging bar
85 my bar@2263c1be0967+ other bar@3ffa6b9e35f0 ancestor bar@0f2ff26688b9
85 my bar@2263c1be0967+ other bar@3ffa6b9e35f0 ancestor bar@0f2ff26688b9
@@ -8,7 +8,7 b' resolving manifests'
8 conflicting flags for a
8 conflicting flags for a
9 (n)one, e(x)ec or sym(l)ink? n
9 (n)one, e(x)ec or sym(l)ink? n
10 a: update permissions -> e
10 a: update permissions -> e
11 update: a 1/1 files (100.00%)
11 updating: a 1/1 files (100.00%)
12 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
12 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
13 (branch merge, don't forget to commit)
13 (branch merge, don't forget to commit)
14 % symlink is local parent, executable is other
14 % symlink is local parent, executable is other
@@ -21,7 +21,7 b' resolving manifests'
21 conflicting flags for a
21 conflicting flags for a
22 (n)one, e(x)ec or sym(l)ink? n
22 (n)one, e(x)ec or sym(l)ink? n
23 a: remote is newer -> g
23 a: remote is newer -> g
24 update: a 1/1 files (100.00%)
24 updating: a 1/1 files (100.00%)
25 getting a
25 getting a
26 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
26 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
27 (branch merge, don't forget to commit)
27 (branch merge, don't forget to commit)
@@ -25,7 +25,7 b' resolving manifests'
25 ancestor faaea63e63a9 local 451c744aabcc+ remote a070d41e8360
25 ancestor faaea63e63a9 local 451c744aabcc+ remote a070d41e8360
26 test.txt: versions differ -> m
26 test.txt: versions differ -> m
27 preserving test.txt for resolve of test.txt
27 preserving test.txt for resolve of test.txt
28 update: test.txt 1/1 files (100.00%)
28 updating: test.txt 1/1 files (100.00%)
29 picked tool 'internal:merge' for test.txt (binary False symlink False)
29 picked tool 'internal:merge' for test.txt (binary False symlink False)
30 merging test.txt
30 merging test.txt
31 my test.txt@451c744aabcc+ other test.txt@a070d41e8360 ancestor test.txt@faaea63e63a9
31 my test.txt@451c744aabcc+ other test.txt@a070d41e8360 ancestor test.txt@faaea63e63a9
@@ -107,6 +107,11 b' cd a'
107
107
108 hg qnew -m 'foo bar' test.patch
108 hg qnew -m 'foo bar' test.patch
109
109
110 echo '# comment' > .hg/patches/series.tmp
111 echo >> .hg/patches/series.tmp # empty line
112 cat .hg/patches/series >> .hg/patches/series.tmp
113 mv .hg/patches/series.tmp .hg/patches/series
114
110 echo % qrefresh
115 echo % qrefresh
111
116
112 echo a >> a
117 echo a >> a
@@ -228,17 +233,29 b' hg qpush test1b.patch+1'
228
233
229 echo % qpush --move
234 echo % qpush --move
230 hg qpop -a
235 hg qpop -a
236 hg qguard test1b.patch -- -negguard
237 hg qguard test2.patch -- +posguard
238 hg qpush --move test2.patch # can't move guarded patch
239 hg qselect posguard
231 hg qpush --move test2.patch # move to front
240 hg qpush --move test2.patch # move to front
232 hg qpush --move test1b.patch
241 hg qpush --move test1b.patch # negative guard unselected
233 hg qpush --move test.patch # noop move
242 hg qpush --move test.patch # noop move
234 hg qseries -v
243 hg qseries -v
235 hg qpop -a
244 hg qpop -a
236 hg qpush --move test.patch # cleaning up
245 # cleaning up
246 hg qselect --none
247 hg qguard --none test1b.patch
248 hg qguard --none test2.patch
249 hg qpush --move test.patch
237 hg qpush --move test1b.patch
250 hg qpush --move test1b.patch
238 hg qpush --move bogus # nonexistent patch
251 hg qpush --move bogus # nonexistent patch
252 hg qpush --move # no patch
239 hg qpush --move test.patch # already applied
253 hg qpush --move test.patch # already applied
240 hg qpush
254 hg qpush
241
255
256 echo % series after move
257 cat `hg root`/.hg/patches/series
258
242 echo % pop, qapplied, qunapplied
259 echo % pop, qapplied, qunapplied
243 hg qseries -v
260 hg qseries -v
244 echo % qapplied -1 test.patch
261 echo % qapplied -1 test.patch
@@ -4,7 +4,7 b' adding a'
4
4
5 #qimport valid patch followed by invalid patch
5 #qimport valid patch followed by invalid patch
6 adding b.patch to series file
6 adding b.patch to series file
7 abort: unable to read fakepatch
7 abort: unable to read file fakepatch
8
8
9 #valid patches before fail added to series
9 #valid patches before fail added to series
10 b.patch
10 b.patch
@@ -1,5 +1,5 b''
1 % qimport non-existing-file
1 % qimport non-existing-file
2 abort: unable to read non-existing-file
2 abort: unable to read file non-existing-file
3 % import email
3 % import email
4 adding email to series file
4 adding email to series file
5 applying email
5 applying email
@@ -209,6 +209,8 b' popping test2.patch'
209 popping test1b.patch
209 popping test1b.patch
210 popping test.patch
210 popping test.patch
211 patch queue now empty
211 patch queue now empty
212 cannot push 'test2.patch' - guarded by ['+posguard']
213 number of unguarded, unapplied patches has changed from 2 to 3
212 applying test2.patch
214 applying test2.patch
213 now at: test2.patch
215 now at: test2.patch
214 applying test1b.patch
216 applying test1b.patch
@@ -222,14 +224,23 b' popping test.patch'
222 popping test1b.patch
224 popping test1b.patch
223 popping test2.patch
225 popping test2.patch
224 patch queue now empty
226 patch queue now empty
227 guards deactivated
228 number of unguarded, unapplied patches has changed from 3 to 2
225 applying test.patch
229 applying test.patch
226 now at: test.patch
230 now at: test.patch
227 applying test1b.patch
231 applying test1b.patch
228 now at: test1b.patch
232 now at: test1b.patch
229 abort: patch bogus not in series
233 abort: patch bogus not in series
234 abort: please specify the patch to move
230 abort: cannot push to a previous patch: test.patch
235 abort: cannot push to a previous patch: test.patch
231 applying test2.patch
236 applying test2.patch
232 now at: test2.patch
237 now at: test2.patch
238 % series after move
239 test.patch
240 test1b.patch
241 test2.patch
242 # comment
243
233 % pop, qapplied, qunapplied
244 % pop, qapplied, qunapplied
234 0 A test.patch
245 0 A test.patch
235 1 A test1b.patch
246 1 A test1b.patch
@@ -28,17 +28,17 b' resolving manifests'
28 a/a: other deleted -> r
28 a/a: other deleted -> r
29 b/a: remote created -> g
29 b/a: remote created -> g
30 b/b: remote created -> g
30 b/b: remote created -> g
31 update: a/a 1/6 files (16.67%)
31 updating: a/a 1/6 files (16.67%)
32 removing a/a
32 removing a/a
33 update: a/b 2/6 files (33.33%)
33 updating: a/b 2/6 files (33.33%)
34 removing a/b
34 removing a/b
35 update: a/c 3/6 files (50.00%)
35 updating: a/c 3/6 files (50.00%)
36 moving a/c to b/c
36 moving a/c to b/c
37 update: a/d 4/6 files (66.67%)
37 updating: a/d 4/6 files (66.67%)
38 moving a/d to b/d
38 moving a/d to b/d
39 update: b/a 5/6 files (83.33%)
39 updating: b/a 5/6 files (83.33%)
40 getting b/a
40 getting b/a
41 update: b/b 6/6 files (100.00%)
41 updating: b/b 6/6 files (100.00%)
42 getting b/b
42 getting b/b
43 4 files updated, 0 files merged, 2 files removed, 0 files unresolved
43 4 files updated, 0 files merged, 2 files removed, 0 files unresolved
44 (branch merge, don't forget to commit)
44 (branch merge, don't forget to commit)
@@ -70,7 +70,7 b' resolving manifests'
70 overwrite None partial False
70 overwrite None partial False
71 ancestor f9b20c0d4c51 local 397f8b00a740+ remote ce36d17b18fb
71 ancestor f9b20c0d4c51 local 397f8b00a740+ remote ce36d17b18fb
72 None: local renamed directory to b/c -> d
72 None: local renamed directory to b/c -> d
73 update:None 1/1 files (100.00%)
73 updating:None 1/1 files (100.00%)
74 getting a/c to b/c
74 getting a/c to b/c
75 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
75 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
76 (branch merge, don't forget to commit)
76 (branch merge, don't forget to commit)
@@ -21,16 +21,16 b' resolving manifests'
21 b2: remote created -> g
21 b2: remote created -> g
22 preserving a for resolve of b
22 preserving a for resolve of b
23 removing a
23 removing a
24 update: a 1/3 files (33.33%)
24 updating: a 1/3 files (33.33%)
25 picked tool 'internal:merge' for b (binary False symlink False)
25 picked tool 'internal:merge' for b (binary False symlink False)
26 merging a and b to b
26 merging a and b to b
27 my b@044f8520aeeb+ other b@85c198ef2f6c ancestor a@af1939970a1c
27 my b@044f8520aeeb+ other b@85c198ef2f6c ancestor a@af1939970a1c
28 premerge successful
28 premerge successful
29 update: a2 2/3 files (66.67%)
29 updating: a2 2/3 files (66.67%)
30 warning: detected divergent renames of a2 to:
30 warning: detected divergent renames of a2 to:
31 c2
31 c2
32 b2
32 b2
33 update: b2 3/3 files (100.00%)
33 updating: b2 3/3 files (100.00%)
34 getting b2
34 getting b2
35 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
35 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
36 (branch merge, don't forget to commit)
36 (branch merge, don't forget to commit)
@@ -15,12 +15,12 b' resolving manifests'
15 a: remote copied to b -> m
15 a: remote copied to b -> m
16 preserving a for resolve of b
16 preserving a for resolve of b
17 preserving rev for resolve of rev
17 preserving rev for resolve of rev
18 update: a 1/2 files (50.00%)
18 updating: a 1/2 files (50.00%)
19 picked tool 'python ../merge' for b (binary False symlink False)
19 picked tool 'python ../merge' for b (binary False symlink False)
20 merging a and b to b
20 merging a and b to b
21 my b@e300d1c794ec+ other b@4ce40f5aca24 ancestor a@924404dff337
21 my b@e300d1c794ec+ other b@4ce40f5aca24 ancestor a@924404dff337
22 premerge successful
22 premerge successful
23 update: rev 2/2 files (100.00%)
23 updating: rev 2/2 files (100.00%)
24 picked tool 'python ../merge' for rev (binary False symlink False)
24 picked tool 'python ../merge' for rev (binary False symlink False)
25 merging rev
25 merging rev
26 my rev@e300d1c794ec+ other rev@4ce40f5aca24 ancestor rev@924404dff337
26 my rev@e300d1c794ec+ other rev@4ce40f5aca24 ancestor rev@924404dff337
@@ -50,14 +50,14 b' resolving manifests'
50 rev: versions differ -> m
50 rev: versions differ -> m
51 preserving b for resolve of b
51 preserving b for resolve of b
52 preserving rev for resolve of rev
52 preserving rev for resolve of rev
53 update: a 1/3 files (33.33%)
53 updating: a 1/3 files (33.33%)
54 getting a
54 getting a
55 update: b 2/3 files (66.67%)
55 updating: b 2/3 files (66.67%)
56 picked tool 'python ../merge' for b (binary False symlink False)
56 picked tool 'python ../merge' for b (binary False symlink False)
57 merging b and a to b
57 merging b and a to b
58 my b@86a2aa42fc76+ other a@f4db7e329e71 ancestor a@924404dff337
58 my b@86a2aa42fc76+ other a@f4db7e329e71 ancestor a@924404dff337
59 premerge successful
59 premerge successful
60 update: rev 3/3 files (100.00%)
60 updating: rev 3/3 files (100.00%)
61 picked tool 'python ../merge' for rev (binary False symlink False)
61 picked tool 'python ../merge' for rev (binary False symlink False)
62 merging rev
62 merging rev
63 my rev@86a2aa42fc76+ other rev@f4db7e329e71 ancestor rev@924404dff337
63 my rev@86a2aa42fc76+ other rev@f4db7e329e71 ancestor rev@924404dff337
@@ -87,12 +87,12 b' resolving manifests'
87 preserving a for resolve of b
87 preserving a for resolve of b
88 preserving rev for resolve of rev
88 preserving rev for resolve of rev
89 removing a
89 removing a
90 update: a 1/2 files (50.00%)
90 updating: a 1/2 files (50.00%)
91 picked tool 'python ../merge' for b (binary False symlink False)
91 picked tool 'python ../merge' for b (binary False symlink False)
92 merging a and b to b
92 merging a and b to b
93 my b@e300d1c794ec+ other b@bdb19105162a ancestor a@924404dff337
93 my b@e300d1c794ec+ other b@bdb19105162a ancestor a@924404dff337
94 premerge successful
94 premerge successful
95 update: rev 2/2 files (100.00%)
95 updating: rev 2/2 files (100.00%)
96 picked tool 'python ../merge' for rev (binary False symlink False)
96 picked tool 'python ../merge' for rev (binary False symlink False)
97 merging rev
97 merging rev
98 my rev@e300d1c794ec+ other rev@bdb19105162a ancestor rev@924404dff337
98 my rev@e300d1c794ec+ other rev@bdb19105162a ancestor rev@924404dff337
@@ -120,12 +120,12 b' resolving manifests'
120 rev: versions differ -> m
120 rev: versions differ -> m
121 preserving b for resolve of b
121 preserving b for resolve of b
122 preserving rev for resolve of rev
122 preserving rev for resolve of rev
123 update: b 1/2 files (50.00%)
123 updating: b 1/2 files (50.00%)
124 picked tool 'python ../merge' for b (binary False symlink False)
124 picked tool 'python ../merge' for b (binary False symlink False)
125 merging b and a to b
125 merging b and a to b
126 my b@02963e448370+ other a@f4db7e329e71 ancestor a@924404dff337
126 my b@02963e448370+ other a@f4db7e329e71 ancestor a@924404dff337
127 premerge successful
127 premerge successful
128 update: rev 2/2 files (100.00%)
128 updating: rev 2/2 files (100.00%)
129 picked tool 'python ../merge' for rev (binary False symlink False)
129 picked tool 'python ../merge' for rev (binary False symlink False)
130 merging rev
130 merging rev
131 my rev@02963e448370+ other rev@f4db7e329e71 ancestor rev@924404dff337
131 my rev@02963e448370+ other rev@f4db7e329e71 ancestor rev@924404dff337
@@ -152,9 +152,9 b' resolving manifests'
152 rev: versions differ -> m
152 rev: versions differ -> m
153 b: remote created -> g
153 b: remote created -> g
154 preserving rev for resolve of rev
154 preserving rev for resolve of rev
155 update: b 1/2 files (50.00%)
155 updating: b 1/2 files (50.00%)
156 getting b
156 getting b
157 update: rev 2/2 files (100.00%)
157 updating: rev 2/2 files (100.00%)
158 picked tool 'python ../merge' for rev (binary False symlink False)
158 picked tool 'python ../merge' for rev (binary False symlink False)
159 merging rev
159 merging rev
160 my rev@94b33a1b7f2d+ other rev@4ce40f5aca24 ancestor rev@924404dff337
160 my rev@94b33a1b7f2d+ other rev@4ce40f5aca24 ancestor rev@924404dff337
@@ -180,7 +180,7 b' resolving manifests'
180 ancestor 924404dff337 local 86a2aa42fc76+ remote 97c705ade336
180 ancestor 924404dff337 local 86a2aa42fc76+ remote 97c705ade336
181 rev: versions differ -> m
181 rev: versions differ -> m
182 preserving rev for resolve of rev
182 preserving rev for resolve of rev
183 update: rev 1/1 files (100.00%)
183 updating: rev 1/1 files (100.00%)
184 picked tool 'python ../merge' for rev (binary False symlink False)
184 picked tool 'python ../merge' for rev (binary False symlink False)
185 merging rev
185 merging rev
186 my rev@86a2aa42fc76+ other rev@97c705ade336 ancestor rev@924404dff337
186 my rev@86a2aa42fc76+ other rev@97c705ade336 ancestor rev@924404dff337
@@ -208,11 +208,11 b' resolving manifests'
208 rev: versions differ -> m
208 rev: versions differ -> m
209 b: remote created -> g
209 b: remote created -> g
210 preserving rev for resolve of rev
210 preserving rev for resolve of rev
211 update: a 1/3 files (33.33%)
211 updating: a 1/3 files (33.33%)
212 removing a
212 removing a
213 update: b 2/3 files (66.67%)
213 updating: b 2/3 files (66.67%)
214 getting b
214 getting b
215 update: rev 3/3 files (100.00%)
215 updating: rev 3/3 files (100.00%)
216 picked tool 'python ../merge' for rev (binary False symlink False)
216 picked tool 'python ../merge' for rev (binary False symlink False)
217 merging rev
217 merging rev
218 my rev@94b33a1b7f2d+ other rev@bdb19105162a ancestor rev@924404dff337
218 my rev@94b33a1b7f2d+ other rev@bdb19105162a ancestor rev@924404dff337
@@ -237,7 +237,7 b' resolving manifests'
237 ancestor 924404dff337 local 02963e448370+ remote 97c705ade336
237 ancestor 924404dff337 local 02963e448370+ remote 97c705ade336
238 rev: versions differ -> m
238 rev: versions differ -> m
239 preserving rev for resolve of rev
239 preserving rev for resolve of rev
240 update: rev 1/1 files (100.00%)
240 updating: rev 1/1 files (100.00%)
241 picked tool 'python ../merge' for rev (binary False symlink False)
241 picked tool 'python ../merge' for rev (binary False symlink False)
242 merging rev
242 merging rev
243 my rev@02963e448370+ other rev@97c705ade336 ancestor rev@924404dff337
243 my rev@02963e448370+ other rev@97c705ade336 ancestor rev@924404dff337
@@ -259,11 +259,11 b' resolving manifests'
259 rev: versions differ -> m
259 rev: versions differ -> m
260 preserving b for resolve of b
260 preserving b for resolve of b
261 preserving rev for resolve of rev
261 preserving rev for resolve of rev
262 update: b 1/2 files (50.00%)
262 updating: b 1/2 files (50.00%)
263 picked tool 'python ../merge' for b (binary False symlink False)
263 picked tool 'python ../merge' for b (binary False symlink False)
264 merging b
264 merging b
265 my b@62e7bf090eba+ other b@49b6d8032493 ancestor a@924404dff337
265 my b@62e7bf090eba+ other b@49b6d8032493 ancestor a@924404dff337
266 update: rev 2/2 files (100.00%)
266 updating: rev 2/2 files (100.00%)
267 picked tool 'python ../merge' for rev (binary False symlink False)
267 picked tool 'python ../merge' for rev (binary False symlink False)
268 merging rev
268 merging rev
269 my rev@62e7bf090eba+ other rev@49b6d8032493 ancestor rev@924404dff337
269 my rev@62e7bf090eba+ other rev@49b6d8032493 ancestor rev@924404dff337
@@ -293,13 +293,13 b' resolving manifests'
293 rev: versions differ -> m
293 rev: versions differ -> m
294 c: remote created -> g
294 c: remote created -> g
295 preserving rev for resolve of rev
295 preserving rev for resolve of rev
296 update: a 1/3 files (33.33%)
296 updating: a 1/3 files (33.33%)
297 warning: detected divergent renames of a to:
297 warning: detected divergent renames of a to:
298 b
298 b
299 c
299 c
300 update: c 2/3 files (66.67%)
300 updating: c 2/3 files (66.67%)
301 getting c
301 getting c
302 update: rev 3/3 files (100.00%)
302 updating: rev 3/3 files (100.00%)
303 picked tool 'python ../merge' for rev (binary False symlink False)
303 picked tool 'python ../merge' for rev (binary False symlink False)
304 merging rev
304 merging rev
305 my rev@02963e448370+ other rev@fe905ef2c33e ancestor rev@924404dff337
305 my rev@02963e448370+ other rev@fe905ef2c33e ancestor rev@924404dff337
@@ -322,11 +322,11 b' resolving manifests'
322 rev: versions differ -> m
322 rev: versions differ -> m
323 preserving b for resolve of b
323 preserving b for resolve of b
324 preserving rev for resolve of rev
324 preserving rev for resolve of rev
325 update: b 1/2 files (50.00%)
325 updating: b 1/2 files (50.00%)
326 picked tool 'python ../merge' for b (binary False symlink False)
326 picked tool 'python ../merge' for b (binary False symlink False)
327 merging b
327 merging b
328 my b@86a2aa42fc76+ other b@af30c7647fc7 ancestor b@000000000000
328 my b@86a2aa42fc76+ other b@af30c7647fc7 ancestor b@000000000000
329 update: rev 2/2 files (100.00%)
329 updating: rev 2/2 files (100.00%)
330 picked tool 'python ../merge' for rev (binary False symlink False)
330 picked tool 'python ../merge' for rev (binary False symlink False)
331 merging rev
331 merging rev
332 my rev@86a2aa42fc76+ other rev@af30c7647fc7 ancestor rev@924404dff337
332 my rev@86a2aa42fc76+ other rev@af30c7647fc7 ancestor rev@924404dff337
@@ -350,13 +350,13 b' resolving manifests'
350 rev: versions differ -> m
350 rev: versions differ -> m
351 preserving b for resolve of b
351 preserving b for resolve of b
352 preserving rev for resolve of rev
352 preserving rev for resolve of rev
353 update: a 1/3 files (33.33%)
353 updating: a 1/3 files (33.33%)
354 removing a
354 removing a
355 update: b 2/3 files (66.67%)
355 updating: b 2/3 files (66.67%)
356 picked tool 'python ../merge' for b (binary False symlink False)
356 picked tool 'python ../merge' for b (binary False symlink False)
357 merging b
357 merging b
358 my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000
358 my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000
359 update: rev 3/3 files (100.00%)
359 updating: rev 3/3 files (100.00%)
360 picked tool 'python ../merge' for rev (binary False symlink False)
360 picked tool 'python ../merge' for rev (binary False symlink False)
361 merging rev
361 merging rev
362 my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337
362 my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337
@@ -379,13 +379,13 b' resolving manifests'
379 rev: versions differ -> m
379 rev: versions differ -> m
380 preserving b for resolve of b
380 preserving b for resolve of b
381 preserving rev for resolve of rev
381 preserving rev for resolve of rev
382 update: a 1/3 files (33.33%)
382 updating: a 1/3 files (33.33%)
383 getting a
383 getting a
384 update: b 2/3 files (66.67%)
384 updating: b 2/3 files (66.67%)
385 picked tool 'python ../merge' for b (binary False symlink False)
385 picked tool 'python ../merge' for b (binary False symlink False)
386 merging b
386 merging b
387 my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000
387 my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000
388 update: rev 3/3 files (100.00%)
388 updating: rev 3/3 files (100.00%)
389 picked tool 'python ../merge' for rev (binary False symlink False)
389 picked tool 'python ../merge' for rev (binary False symlink False)
390 merging rev
390 merging rev
391 my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
391 my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
@@ -409,13 +409,13 b' resolving manifests'
409 rev: versions differ -> m
409 rev: versions differ -> m
410 preserving b for resolve of b
410 preserving b for resolve of b
411 preserving rev for resolve of rev
411 preserving rev for resolve of rev
412 update: a 1/3 files (33.33%)
412 updating: a 1/3 files (33.33%)
413 removing a
413 removing a
414 update: b 2/3 files (66.67%)
414 updating: b 2/3 files (66.67%)
415 picked tool 'python ../merge' for b (binary False symlink False)
415 picked tool 'python ../merge' for b (binary False symlink False)
416 merging b
416 merging b
417 my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000
417 my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000
418 update: rev 3/3 files (100.00%)
418 updating: rev 3/3 files (100.00%)
419 picked tool 'python ../merge' for rev (binary False symlink False)
419 picked tool 'python ../merge' for rev (binary False symlink False)
420 merging rev
420 merging rev
421 my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337
421 my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337
@@ -438,13 +438,13 b' resolving manifests'
438 rev: versions differ -> m
438 rev: versions differ -> m
439 preserving b for resolve of b
439 preserving b for resolve of b
440 preserving rev for resolve of rev
440 preserving rev for resolve of rev
441 update: a 1/3 files (33.33%)
441 updating: a 1/3 files (33.33%)
442 getting a
442 getting a
443 update: b 2/3 files (66.67%)
443 updating: b 2/3 files (66.67%)
444 picked tool 'python ../merge' for b (binary False symlink False)
444 picked tool 'python ../merge' for b (binary False symlink False)
445 merging b
445 merging b
446 my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000
446 my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000
447 update: rev 3/3 files (100.00%)
447 updating: rev 3/3 files (100.00%)
448 picked tool 'python ../merge' for rev (binary False symlink False)
448 picked tool 'python ../merge' for rev (binary False symlink False)
449 merging rev
449 merging rev
450 my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
450 my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
@@ -467,11 +467,11 b' resolving manifests'
467 rev: versions differ -> m
467 rev: versions differ -> m
468 preserving b for resolve of b
468 preserving b for resolve of b
469 preserving rev for resolve of rev
469 preserving rev for resolve of rev
470 update: b 1/2 files (50.00%)
470 updating: b 1/2 files (50.00%)
471 picked tool 'python ../merge' for b (binary False symlink False)
471 picked tool 'python ../merge' for b (binary False symlink False)
472 merging b
472 merging b
473 my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor b@000000000000
473 my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor b@000000000000
474 update: rev 2/2 files (100.00%)
474 updating: rev 2/2 files (100.00%)
475 picked tool 'python ../merge' for rev (binary False symlink False)
475 picked tool 'python ../merge' for rev (binary False symlink False)
476 merging rev
476 merging rev
477 my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404dff337
477 my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404dff337
@@ -497,13 +497,13 b' use (c)hanged version or leave (d)eleted'
497 a: prompt recreating -> g
497 a: prompt recreating -> g
498 preserving b for resolve of b
498 preserving b for resolve of b
499 preserving rev for resolve of rev
499 preserving rev for resolve of rev
500 update: a 1/3 files (33.33%)
500 updating: a 1/3 files (33.33%)
501 getting a
501 getting a
502 update: b 2/3 files (66.67%)
502 updating: b 2/3 files (66.67%)
503 picked tool 'python ../merge' for b (binary False symlink False)
503 picked tool 'python ../merge' for b (binary False symlink False)
504 merging b
504 merging b
505 my b@02963e448370+ other b@8dbce441892a ancestor b@000000000000
505 my b@02963e448370+ other b@8dbce441892a ancestor b@000000000000
506 update: rev 3/3 files (100.00%)
506 updating: rev 3/3 files (100.00%)
507 picked tool 'python ../merge' for rev (binary False symlink False)
507 picked tool 'python ../merge' for rev (binary False symlink False)
508 merging rev
508 merging rev
509 my rev@02963e448370+ other rev@8dbce441892a ancestor rev@924404dff337
509 my rev@02963e448370+ other rev@8dbce441892a ancestor rev@924404dff337
@@ -529,12 +529,12 b' use (c)hanged version or (d)elete? c'
529 rev: versions differ -> m
529 rev: versions differ -> m
530 preserving b for resolve of b
530 preserving b for resolve of b
531 preserving rev for resolve of rev
531 preserving rev for resolve of rev
532 update: a 1/3 files (33.33%)
532 updating: a 1/3 files (33.33%)
533 update: b 2/3 files (66.67%)
533 updating: b 2/3 files (66.67%)
534 picked tool 'python ../merge' for b (binary False symlink False)
534 picked tool 'python ../merge' for b (binary False symlink False)
535 merging b
535 merging b
536 my b@0b76e65c8289+ other b@bdb19105162a ancestor b@000000000000
536 my b@0b76e65c8289+ other b@bdb19105162a ancestor b@000000000000
537 update: rev 3/3 files (100.00%)
537 updating: rev 3/3 files (100.00%)
538 picked tool 'python ../merge' for rev (binary False symlink False)
538 picked tool 'python ../merge' for rev (binary False symlink False)
539 merging rev
539 merging rev
540 my rev@0b76e65c8289+ other rev@bdb19105162a ancestor rev@924404dff337
540 my rev@0b76e65c8289+ other rev@bdb19105162a ancestor rev@924404dff337
@@ -563,11 +563,11 b' resolving manifests'
563 preserving a for resolve of b
563 preserving a for resolve of b
564 preserving rev for resolve of rev
564 preserving rev for resolve of rev
565 removing a
565 removing a
566 update: a 1/2 files (50.00%)
566 updating: a 1/2 files (50.00%)
567 picked tool 'python ../merge' for b (binary False symlink False)
567 picked tool 'python ../merge' for b (binary False symlink False)
568 merging a and b to b
568 merging a and b to b
569 my b@e300d1c794ec+ other b@49b6d8032493 ancestor a@924404dff337
569 my b@e300d1c794ec+ other b@49b6d8032493 ancestor a@924404dff337
570 update: rev 2/2 files (100.00%)
570 updating: rev 2/2 files (100.00%)
571 picked tool 'python ../merge' for rev (binary False symlink False)
571 picked tool 'python ../merge' for rev (binary False symlink False)
572 merging rev
572 merging rev
573 my rev@e300d1c794ec+ other rev@49b6d8032493 ancestor rev@924404dff337
573 my rev@e300d1c794ec+ other rev@49b6d8032493 ancestor rev@924404dff337
@@ -595,11 +595,11 b' resolving manifests'
595 rev: versions differ -> m
595 rev: versions differ -> m
596 preserving b for resolve of b
596 preserving b for resolve of b
597 preserving rev for resolve of rev
597 preserving rev for resolve of rev
598 update: b 1/2 files (50.00%)
598 updating: b 1/2 files (50.00%)
599 picked tool 'python ../merge' for b (binary False symlink False)
599 picked tool 'python ../merge' for b (binary False symlink False)
600 merging b and a to b
600 merging b and a to b
601 my b@62e7bf090eba+ other a@f4db7e329e71 ancestor a@924404dff337
601 my b@62e7bf090eba+ other a@f4db7e329e71 ancestor a@924404dff337
602 update: rev 2/2 files (100.00%)
602 updating: rev 2/2 files (100.00%)
603 picked tool 'python ../merge' for rev (binary False symlink False)
603 picked tool 'python ../merge' for rev (binary False symlink False)
604 merging rev
604 merging rev
605 my rev@62e7bf090eba+ other rev@f4db7e329e71 ancestor rev@924404dff337
605 my rev@62e7bf090eba+ other rev@f4db7e329e71 ancestor rev@924404dff337
@@ -630,14 +630,14 b' resolving manifests'
630 c: remote created -> g
630 c: remote created -> g
631 preserving b for resolve of b
631 preserving b for resolve of b
632 preserving rev for resolve of rev
632 preserving rev for resolve of rev
633 update: b 1/3 files (33.33%)
633 updating: b 1/3 files (33.33%)
634 picked tool 'python ../merge' for b (binary False symlink False)
634 picked tool 'python ../merge' for b (binary False symlink False)
635 merging b and a to b
635 merging b and a to b
636 my b@02963e448370+ other a@2b958612230f ancestor a@924404dff337
636 my b@02963e448370+ other a@2b958612230f ancestor a@924404dff337
637 premerge successful
637 premerge successful
638 update: c 2/3 files (66.67%)
638 updating: c 2/3 files (66.67%)
639 getting c
639 getting c
640 update: rev 3/3 files (100.00%)
640 updating: rev 3/3 files (100.00%)
641 picked tool 'python ../merge' for rev (binary False symlink False)
641 picked tool 'python ../merge' for rev (binary False symlink False)
642 merging rev
642 merging rev
643 my rev@02963e448370+ other rev@2b958612230f ancestor rev@924404dff337
643 my rev@02963e448370+ other rev@2b958612230f ancestor rev@924404dff337
@@ -83,7 +83,7 b' resolving manifests'
83 overwrite None partial False
83 overwrite None partial False
84 ancestor 1f14a2e2d3ec local f0d2028bf86d+ remote 1831e14459c4
84 ancestor 1f14a2e2d3ec local f0d2028bf86d+ remote 1831e14459c4
85 .hgsubstate: versions differ -> m
85 .hgsubstate: versions differ -> m
86 update: .hgsubstate 1/1 files (100.00%)
86 updating: .hgsubstate 1/1 files (100.00%)
87 subrepo merge f0d2028bf86d+ 1831e14459c4 1f14a2e2d3ec
87 subrepo merge f0d2028bf86d+ 1831e14459c4 1f14a2e2d3ec
88 subrepo t: other changed, get t:6747d179aa9a688023c4b0cad32e4c92bb7f34ad:hg
88 subrepo t: other changed, get t:6747d179aa9a688023c4b0cad32e4c92bb7f34ad:hg
89 getting subrepo t
89 getting subrepo t
@@ -91,7 +91,7 b' resolving manifests'
91 overwrite True partial False
91 overwrite True partial False
92 ancestor 60ca1237c194+ local 60ca1237c194+ remote 6747d179aa9a
92 ancestor 60ca1237c194+ local 60ca1237c194+ remote 6747d179aa9a
93 t: remote is newer -> g
93 t: remote is newer -> g
94 update: t 1/1 files (100.00%)
94 updating: t 1/1 files (100.00%)
95 getting t
95 getting t
96 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
96 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
97 (branch merge, don't forget to commit)
97 (branch merge, don't forget to commit)
@@ -107,7 +107,7 b' resolving manifests'
107 overwrite None partial False
107 overwrite None partial False
108 ancestor 1831e14459c4 local e45c8b14af55+ remote f94576341bcf
108 ancestor 1831e14459c4 local e45c8b14af55+ remote f94576341bcf
109 .hgsubstate: versions differ -> m
109 .hgsubstate: versions differ -> m
110 update: .hgsubstate 1/1 files (100.00%)
110 updating: .hgsubstate 1/1 files (100.00%)
111 subrepo merge e45c8b14af55+ f94576341bcf 1831e14459c4
111 subrepo merge e45c8b14af55+ f94576341bcf 1831e14459c4
112 subrepo t: both sides changed, merge with t:7af322bc1198a32402fe903e0b7ebcfc5c9bf8f4:hg
112 subrepo t: both sides changed, merge with t:7af322bc1198a32402fe903e0b7ebcfc5c9bf8f4:hg
113 merging subrepo t
113 merging subrepo t
@@ -117,7 +117,7 b' resolving manifests'
117 ancestor 6747d179aa9a local 20a0db6fbf6c+ remote 7af322bc1198
117 ancestor 6747d179aa9a local 20a0db6fbf6c+ remote 7af322bc1198
118 t: versions differ -> m
118 t: versions differ -> m
119 preserving t for resolve of t
119 preserving t for resolve of t
120 update: t 1/1 files (100.00%)
120 updating: t 1/1 files (100.00%)
121 picked tool 'internal:merge' for t (binary False symlink False)
121 picked tool 'internal:merge' for t (binary False symlink False)
122 merging t
122 merging t
123 my t@20a0db6fbf6c+ other t@7af322bc1198 ancestor t@6747d179aa9a
123 my t@20a0db6fbf6c+ other t@7af322bc1198 ancestor t@6747d179aa9a
@@ -7,6 +7,9 b' echo a > a'
7 hg add a
7 hg add a
8 hg commit -m "test" -d "1000000 0"
8 hg commit -m "test" -d "1000000 0"
9 hg history
9 hg history
10
11 hg tag ' '
12
10 hg tag -d "1000000 0" "bleah"
13 hg tag -d "1000000 0" "bleah"
11 hg history
14 hg history
12
15
@@ -4,6 +4,7 b' user: test'
4 date: Mon Jan 12 13:46:40 1970 +0000
4 date: Mon Jan 12 13:46:40 1970 +0000
5 summary: test
5 summary: test
6
6
7 abort: tag names cannot consist entirely of whitespace
7 changeset: 1:3ecf002a1c57
8 changeset: 1:3ecf002a1c57
8 tag: tip
9 tag: tip
9 user: test
10 user: test
@@ -24,11 +24,11 b' resolving manifests'
24 a: versions differ -> m
24 a: versions differ -> m
25 b: remote created -> g
25 b: remote created -> g
26 preserving a for resolve of a
26 preserving a for resolve of a
27 update: a 1/2 files (50.00%)
27 updating: a 1/2 files (50.00%)
28 picked tool 'true' for a (binary False symlink False)
28 picked tool 'true' for a (binary False symlink False)
29 merging a
29 merging a
30 my a@33aaa84a386b+ other a@802f095af299 ancestor a@33aaa84a386b
30 my a@33aaa84a386b+ other a@802f095af299 ancestor a@33aaa84a386b
31 update: b 2/2 files (100.00%)
31 updating: b 2/2 files (100.00%)
32 getting b
32 getting b
33 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
33 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
34 changeset: 1:802f095af299
34 changeset: 1:802f095af299
@@ -43,9 +43,9 b' resolving manifests'
43 a: versions differ -> m
43 a: versions differ -> m
44 b: other deleted -> r
44 b: other deleted -> r
45 preserving a for resolve of a
45 preserving a for resolve of a
46 update: b 1/2 files (50.00%)
46 updating: b 1/2 files (50.00%)
47 removing b
47 removing b
48 update: a 2/2 files (100.00%)
48 updating: a 2/2 files (100.00%)
49 picked tool 'true' for a (binary False symlink False)
49 picked tool 'true' for a (binary False symlink False)
50 merging a
50 merging a
51 my a@802f095af299+ other a@33aaa84a386b ancestor a@802f095af299
51 my a@802f095af299+ other a@33aaa84a386b ancestor a@802f095af299
@@ -71,11 +71,11 b' resolving manifests'
71 a: versions differ -> m
71 a: versions differ -> m
72 b: remote created -> g
72 b: remote created -> g
73 preserving a for resolve of a
73 preserving a for resolve of a
74 update: a 1/2 files (50.00%)
74 updating: a 1/2 files (50.00%)
75 picked tool 'true' for a (binary False symlink False)
75 picked tool 'true' for a (binary False symlink False)
76 merging a
76 merging a
77 my a@33aaa84a386b+ other a@802f095af299 ancestor a@33aaa84a386b
77 my a@33aaa84a386b+ other a@802f095af299 ancestor a@33aaa84a386b
78 update: b 2/2 files (100.00%)
78 updating: b 2/2 files (100.00%)
79 getting b
79 getting b
80 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
80 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
81 changeset: 1:802f095af299
81 changeset: 1:802f095af299
@@ -128,11 +128,11 b' resolving manifests'
128 b: versions differ -> m
128 b: versions differ -> m
129 preserving a for resolve of a
129 preserving a for resolve of a
130 preserving b for resolve of b
130 preserving b for resolve of b
131 update: a 1/2 files (50.00%)
131 updating: a 1/2 files (50.00%)
132 picked tool 'true' for a (binary False symlink False)
132 picked tool 'true' for a (binary False symlink False)
133 merging a
133 merging a
134 my a@802f095af299+ other a@030602aee63d ancestor a@33aaa84a386b
134 my a@802f095af299+ other a@030602aee63d ancestor a@33aaa84a386b
135 update: b 2/2 files (100.00%)
135 updating: b 2/2 files (100.00%)
136 picked tool 'true' for b (binary False symlink False)
136 picked tool 'true' for b (binary False symlink False)
137 merging b
137 merging b
138 my b@802f095af299+ other b@030602aee63d ancestor b@000000000000
138 my b@802f095af299+ other b@030602aee63d ancestor b@000000000000
@@ -46,11 +46,11 b' resolving manifests'
46 side2: other deleted -> r
46 side2: other deleted -> r
47 side1: other deleted -> r
47 side1: other deleted -> r
48 main: remote created -> g
48 main: remote created -> g
49 update: side1 1/3 files (33.33%)
49 updating: side1 1/3 files (33.33%)
50 removing side1
50 removing side1
51 update: side2 2/3 files (66.67%)
51 updating: side2 2/3 files (66.67%)
52 removing side2
52 removing side2
53 update: main 3/3 files (100.00%)
53 updating: main 3/3 files (100.00%)
54 getting main
54 getting main
55 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
55 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
56 Should only show a main
56 Should only show a main
General Comments 0
You need to be logged in to leave comments. Login now