Show More
@@ -1,256 +1,256 b'' | |||||
1 | # progress.py progress bars related code |
|
1 | # progress.py progress bars related code | |
2 | # |
|
2 | # | |
3 | # Copyright (C) 2010 Augie Fackler <durin42@gmail.com> |
|
3 | # Copyright (C) 2010 Augie Fackler <durin42@gmail.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 | from __future__ import absolute_import |
|
8 | from __future__ import absolute_import | |
9 |
|
9 | |||
10 | import sys |
|
10 | import sys | |
11 | import threading |
|
11 | import threading | |
12 | import time |
|
12 | import time | |
13 |
|
13 | |||
14 | from .i18n import _ |
|
14 | from .i18n import _ | |
15 | from . import encoding |
|
15 | from . import encoding | |
16 |
|
16 | |||
17 | def spacejoin(*args): |
|
17 | def spacejoin(*args): | |
18 | return ' '.join(s for s in args if s) |
|
18 | return ' '.join(s for s in args if s) | |
19 |
|
19 | |||
20 | def shouldprint(ui): |
|
20 | def shouldprint(ui): | |
21 | return not (ui.quiet or ui.plain('progress')) and ( |
|
21 | return not (ui.quiet or ui.plain('progress')) and ( | |
22 | ui._isatty(sys.stderr) or ui.configbool('progress', 'assume-tty')) |
|
22 | ui._isatty(sys.stderr) or ui.configbool('progress', 'assume-tty')) | |
23 |
|
23 | |||
24 | def fmtremaining(seconds): |
|
24 | def fmtremaining(seconds): | |
25 | """format a number of remaining seconds in human readable way |
|
25 | """format a number of remaining seconds in human readable way | |
26 |
|
26 | |||
27 | This will properly display seconds, minutes, hours, days if needed""" |
|
27 | This will properly display seconds, minutes, hours, days if needed""" | |
28 | if seconds < 60: |
|
28 | if seconds < 60: | |
29 | # i18n: format XX seconds as "XXs" |
|
29 | # i18n: format XX seconds as "XXs" | |
30 | return _("%02ds") % (seconds) |
|
30 | return _("%02ds") % (seconds) | |
31 | minutes = seconds // 60 |
|
31 | minutes = seconds // 60 | |
32 | if minutes < 60: |
|
32 | if minutes < 60: | |
33 | seconds -= minutes * 60 |
|
33 | seconds -= minutes * 60 | |
34 | # i18n: format X minutes and YY seconds as "XmYYs" |
|
34 | # i18n: format X minutes and YY seconds as "XmYYs" | |
35 | return _("%dm%02ds") % (minutes, seconds) |
|
35 | return _("%dm%02ds") % (minutes, seconds) | |
36 | # we're going to ignore seconds in this case |
|
36 | # we're going to ignore seconds in this case | |
37 | minutes += 1 |
|
37 | minutes += 1 | |
38 | hours = minutes // 60 |
|
38 | hours = minutes // 60 | |
39 | minutes -= hours * 60 |
|
39 | minutes -= hours * 60 | |
40 | if hours < 30: |
|
40 | if hours < 30: | |
41 | # i18n: format X hours and YY minutes as "XhYYm" |
|
41 | # i18n: format X hours and YY minutes as "XhYYm" | |
42 | return _("%dh%02dm") % (hours, minutes) |
|
42 | return _("%dh%02dm") % (hours, minutes) | |
43 | # we're going to ignore minutes in this case |
|
43 | # we're going to ignore minutes in this case | |
44 | hours += 1 |
|
44 | hours += 1 | |
45 | days = hours // 24 |
|
45 | days = hours // 24 | |
46 | hours -= days * 24 |
|
46 | hours -= days * 24 | |
47 | if days < 15: |
|
47 | if days < 15: | |
48 | # i18n: format X days and YY hours as "XdYYh" |
|
48 | # i18n: format X days and YY hours as "XdYYh" | |
49 | return _("%dd%02dh") % (days, hours) |
|
49 | return _("%dd%02dh") % (days, hours) | |
50 | # we're going to ignore hours in this case |
|
50 | # we're going to ignore hours in this case | |
51 | days += 1 |
|
51 | days += 1 | |
52 | weeks = days // 7 |
|
52 | weeks = days // 7 | |
53 | days -= weeks * 7 |
|
53 | days -= weeks * 7 | |
54 | if weeks < 55: |
|
54 | if weeks < 55: | |
55 | # i18n: format X weeks and YY days as "XwYYd" |
|
55 | # i18n: format X weeks and YY days as "XwYYd" | |
56 | return _("%dw%02dd") % (weeks, days) |
|
56 | return _("%dw%02dd") % (weeks, days) | |
57 | # we're going to ignore days and treat a year as 52 weeks |
|
57 | # we're going to ignore days and treat a year as 52 weeks | |
58 | weeks += 1 |
|
58 | weeks += 1 | |
59 | years = weeks // 52 |
|
59 | years = weeks // 52 | |
60 | weeks -= years * 52 |
|
60 | weeks -= years * 52 | |
61 | # i18n: format X years and YY weeks as "XyYYw" |
|
61 | # i18n: format X years and YY weeks as "XyYYw" | |
62 | return _("%dy%02dw") % (years, weeks) |
|
62 | return _("%dy%02dw") % (years, weeks) | |
63 |
|
63 | |||
64 | class progbar(object): |
|
64 | class progbar(object): | |
65 | def __init__(self, ui): |
|
65 | def __init__(self, ui): | |
66 | self.ui = ui |
|
66 | self.ui = ui | |
67 | self._refreshlock = threading.Lock() |
|
67 | self._refreshlock = threading.Lock() | |
68 | self.resetstate() |
|
68 | self.resetstate() | |
69 |
|
69 | |||
70 | def resetstate(self): |
|
70 | def resetstate(self): | |
71 | self.topics = [] |
|
71 | self.topics = [] | |
72 | self.topicstates = {} |
|
72 | self.topicstates = {} | |
73 | self.starttimes = {} |
|
73 | self.starttimes = {} | |
74 | self.startvals = {} |
|
74 | self.startvals = {} | |
75 | self.printed = False |
|
75 | self.printed = False | |
76 | self.lastprint = time.time() + float(self.ui.config( |
|
76 | self.lastprint = time.time() + float(self.ui.config( | |
77 | 'progress', 'delay', default=3)) |
|
77 | 'progress', 'delay', default=3)) | |
78 | self.curtopic = None |
|
78 | self.curtopic = None | |
79 | self.lasttopic = None |
|
79 | self.lasttopic = None | |
80 | self.indetcount = 0 |
|
80 | self.indetcount = 0 | |
81 | self.refresh = float(self.ui.config( |
|
81 | self.refresh = float(self.ui.config( | |
82 | 'progress', 'refresh', default=0.1)) |
|
82 | 'progress', 'refresh', default=0.1)) | |
83 | self.changedelay = max(3 * self.refresh, |
|
83 | self.changedelay = max(3 * self.refresh, | |
84 | float(self.ui.config( |
|
84 | float(self.ui.config( | |
85 | 'progress', 'changedelay', default=1))) |
|
85 | 'progress', 'changedelay', default=1))) | |
86 | self.order = self.ui.configlist( |
|
86 | self.order = self.ui.configlist( | |
87 | 'progress', 'format', |
|
87 | 'progress', 'format', | |
88 | default=['topic', 'bar', 'number', 'estimate']) |
|
88 | default=['topic', 'bar', 'number', 'estimate']) | |
89 |
|
89 | |||
90 | def show(self, now, topic, pos, item, unit, total): |
|
90 | def show(self, now, topic, pos, item, unit, total): | |
91 | if not shouldprint(self.ui): |
|
91 | if not shouldprint(self.ui): | |
92 | return |
|
92 | return | |
93 | termwidth = self.width() |
|
93 | termwidth = self.width() | |
94 | self.printed = True |
|
94 | self.printed = True | |
95 | head = '' |
|
95 | head = '' | |
96 | needprogress = False |
|
96 | needprogress = False | |
97 | tail = '' |
|
97 | tail = '' | |
98 | for indicator in self.order: |
|
98 | for indicator in self.order: | |
99 | add = '' |
|
99 | add = '' | |
100 | if indicator == 'topic': |
|
100 | if indicator == 'topic': | |
101 | add = topic |
|
101 | add = topic | |
102 | elif indicator == 'number': |
|
102 | elif indicator == 'number': | |
103 | if total: |
|
103 | if total: | |
104 | add = ('% ' + str(len(str(total))) + |
|
104 | add = ('% ' + str(len(str(total))) + | |
105 | 's/%s') % (pos, total) |
|
105 | 's/%s') % (pos, total) | |
106 | else: |
|
106 | else: | |
107 | add = str(pos) |
|
107 | add = str(pos) | |
108 | elif indicator.startswith('item') and item: |
|
108 | elif indicator.startswith('item') and item: | |
109 | slice = 'end' |
|
109 | slice = 'end' | |
110 | if '-' in indicator: |
|
110 | if '-' in indicator: | |
111 | wid = int(indicator.split('-')[1]) |
|
111 | wid = int(indicator.split('-')[1]) | |
112 | elif '+' in indicator: |
|
112 | elif '+' in indicator: | |
113 | slice = 'beginning' |
|
113 | slice = 'beginning' | |
114 | wid = int(indicator.split('+')[1]) |
|
114 | wid = int(indicator.split('+')[1]) | |
115 | else: |
|
115 | else: | |
116 | wid = 20 |
|
116 | wid = 20 | |
117 | if slice == 'end': |
|
117 | if slice == 'end': | |
118 | add = encoding.trim(item, wid, leftside=True) |
|
118 | add = encoding.trim(item, wid, leftside=True) | |
119 | else: |
|
119 | else: | |
120 | add = encoding.trim(item, wid) |
|
120 | add = encoding.trim(item, wid) | |
121 | add += (wid - encoding.colwidth(add)) * ' ' |
|
121 | add += (wid - encoding.colwidth(add)) * ' ' | |
122 | elif indicator == 'bar': |
|
122 | elif indicator == 'bar': | |
123 | add = '' |
|
123 | add = '' | |
124 | needprogress = True |
|
124 | needprogress = True | |
125 | elif indicator == 'unit' and unit: |
|
125 | elif indicator == 'unit' and unit: | |
126 | add = unit |
|
126 | add = unit | |
127 | elif indicator == 'estimate': |
|
127 | elif indicator == 'estimate': | |
128 | add = self.estimate(topic, pos, total, now) |
|
128 | add = self.estimate(topic, pos, total, now) | |
129 | elif indicator == 'speed': |
|
129 | elif indicator == 'speed': | |
130 | add = self.speed(topic, pos, unit, now) |
|
130 | add = self.speed(topic, pos, unit, now) | |
131 | if not needprogress: |
|
131 | if not needprogress: | |
132 | head = spacejoin(head, add) |
|
132 | head = spacejoin(head, add) | |
133 | else: |
|
133 | else: | |
134 | tail = spacejoin(tail, add) |
|
134 | tail = spacejoin(tail, add) | |
135 | if needprogress: |
|
135 | if needprogress: | |
136 | used = 0 |
|
136 | used = 0 | |
137 | if head: |
|
137 | if head: | |
138 | used += encoding.colwidth(head) + 1 |
|
138 | used += encoding.colwidth(head) + 1 | |
139 | if tail: |
|
139 | if tail: | |
140 | used += encoding.colwidth(tail) + 1 |
|
140 | used += encoding.colwidth(tail) + 1 | |
141 | progwidth = termwidth - used - 3 |
|
141 | progwidth = termwidth - used - 3 | |
142 | if total and pos <= total: |
|
142 | if total and pos <= total: | |
143 | amt = pos * progwidth // total |
|
143 | amt = pos * progwidth // total | |
144 | bar = '=' * (amt - 1) |
|
144 | bar = '=' * (amt - 1) | |
145 | if amt > 0: |
|
145 | if amt > 0: | |
146 | bar += '>' |
|
146 | bar += '>' | |
147 | bar += ' ' * (progwidth - amt) |
|
147 | bar += ' ' * (progwidth - amt) | |
148 | else: |
|
148 | else: | |
149 | progwidth -= 3 |
|
149 | progwidth -= 3 | |
150 | self.indetcount += 1 |
|
150 | self.indetcount += 1 | |
151 | # mod the count by twice the width so we can make the |
|
151 | # mod the count by twice the width so we can make the | |
152 | # cursor bounce between the right and left sides |
|
152 | # cursor bounce between the right and left sides | |
153 | amt = self.indetcount % (2 * progwidth) |
|
153 | amt = self.indetcount % (2 * progwidth) | |
154 | amt -= progwidth |
|
154 | amt -= progwidth | |
155 | bar = (' ' * int(progwidth - abs(amt)) + '<=>' + |
|
155 | bar = (' ' * int(progwidth - abs(amt)) + '<=>' + | |
156 | ' ' * int(abs(amt))) |
|
156 | ' ' * int(abs(amt))) | |
157 | prog = ''.join(('[', bar , ']')) |
|
157 | prog = ''.join(('[', bar , ']')) | |
158 | out = spacejoin(head, prog, tail) |
|
158 | out = spacejoin(head, prog, tail) | |
159 | else: |
|
159 | else: | |
160 | out = spacejoin(head, tail) |
|
160 | out = spacejoin(head, tail) | |
161 | sys.stderr.write('\r' + encoding.trim(out, termwidth)) |
|
161 | sys.stderr.write('\r' + encoding.trim(out, termwidth)) | |
162 | self.lasttopic = topic |
|
162 | self.lasttopic = topic | |
163 | sys.stderr.flush() |
|
163 | sys.stderr.flush() | |
164 |
|
164 | |||
165 | def clear(self): |
|
165 | def clear(self): | |
166 | if not shouldprint(self.ui): |
|
166 | if not self.printed or not self.lastprint or not shouldprint(self.ui): | |
167 | return |
|
167 | return | |
168 | sys.stderr.write('\r%s\r' % (' ' * self.width())) |
|
168 | sys.stderr.write('\r%s\r' % (' ' * self.width())) | |
169 | if self.printed: |
|
169 | if self.printed: | |
170 | # force immediate re-paint of progress bar |
|
170 | # force immediate re-paint of progress bar | |
171 | self.lastprint = 0 |
|
171 | self.lastprint = 0 | |
172 |
|
172 | |||
173 | def complete(self): |
|
173 | def complete(self): | |
174 | if not shouldprint(self.ui): |
|
174 | if not shouldprint(self.ui): | |
175 | return |
|
175 | return | |
176 | if self.ui.configbool('progress', 'clear-complete', default=True): |
|
176 | if self.ui.configbool('progress', 'clear-complete', default=True): | |
177 | self.clear() |
|
177 | self.clear() | |
178 | else: |
|
178 | else: | |
179 | sys.stderr.write('\n') |
|
179 | sys.stderr.write('\n') | |
180 | sys.stderr.flush() |
|
180 | sys.stderr.flush() | |
181 |
|
181 | |||
182 | def width(self): |
|
182 | def width(self): | |
183 | tw = self.ui.termwidth() |
|
183 | tw = self.ui.termwidth() | |
184 | return min(int(self.ui.config('progress', 'width', default=tw)), tw) |
|
184 | return min(int(self.ui.config('progress', 'width', default=tw)), tw) | |
185 |
|
185 | |||
186 | def estimate(self, topic, pos, total, now): |
|
186 | def estimate(self, topic, pos, total, now): | |
187 | if total is None: |
|
187 | if total is None: | |
188 | return '' |
|
188 | return '' | |
189 | initialpos = self.startvals[topic] |
|
189 | initialpos = self.startvals[topic] | |
190 | target = total - initialpos |
|
190 | target = total - initialpos | |
191 | delta = pos - initialpos |
|
191 | delta = pos - initialpos | |
192 | if delta > 0: |
|
192 | if delta > 0: | |
193 | elapsed = now - self.starttimes[topic] |
|
193 | elapsed = now - self.starttimes[topic] | |
194 | # experimental config: progress.estimate |
|
194 | # experimental config: progress.estimate | |
195 | if elapsed > float( |
|
195 | if elapsed > float( | |
196 | self.ui.config('progress', 'estimate', default=2)): |
|
196 | self.ui.config('progress', 'estimate', default=2)): | |
197 | seconds = (elapsed * (target - delta)) // delta + 1 |
|
197 | seconds = (elapsed * (target - delta)) // delta + 1 | |
198 | return fmtremaining(seconds) |
|
198 | return fmtremaining(seconds) | |
199 | return '' |
|
199 | return '' | |
200 |
|
200 | |||
201 | def speed(self, topic, pos, unit, now): |
|
201 | def speed(self, topic, pos, unit, now): | |
202 | initialpos = self.startvals[topic] |
|
202 | initialpos = self.startvals[topic] | |
203 | delta = pos - initialpos |
|
203 | delta = pos - initialpos | |
204 | elapsed = now - self.starttimes[topic] |
|
204 | elapsed = now - self.starttimes[topic] | |
205 | if elapsed > float( |
|
205 | if elapsed > float( | |
206 | self.ui.config('progress', 'estimate', default=2)): |
|
206 | self.ui.config('progress', 'estimate', default=2)): | |
207 | return _('%d %s/sec') % (delta / elapsed, unit) |
|
207 | return _('%d %s/sec') % (delta / elapsed, unit) | |
208 | return '' |
|
208 | return '' | |
209 |
|
209 | |||
210 | def _oktoprint(self, now): |
|
210 | def _oktoprint(self, now): | |
211 | '''Check if conditions are met to print - e.g. changedelay elapsed''' |
|
211 | '''Check if conditions are met to print - e.g. changedelay elapsed''' | |
212 | if (self.lasttopic is None # first time we printed |
|
212 | if (self.lasttopic is None # first time we printed | |
213 | # not a topic change |
|
213 | # not a topic change | |
214 | or self.curtopic == self.lasttopic |
|
214 | or self.curtopic == self.lasttopic | |
215 | # it's been long enough we should print anyway |
|
215 | # it's been long enough we should print anyway | |
216 | or now - self.lastprint >= self.changedelay): |
|
216 | or now - self.lastprint >= self.changedelay): | |
217 | return True |
|
217 | return True | |
218 | else: |
|
218 | else: | |
219 | return False |
|
219 | return False | |
220 |
|
220 | |||
221 | def progress(self, topic, pos, item='', unit='', total=None): |
|
221 | def progress(self, topic, pos, item='', unit='', total=None): | |
222 | now = time.time() |
|
222 | now = time.time() | |
223 | self._refreshlock.acquire() |
|
223 | self._refreshlock.acquire() | |
224 | try: |
|
224 | try: | |
225 | if pos is None: |
|
225 | if pos is None: | |
226 | self.starttimes.pop(topic, None) |
|
226 | self.starttimes.pop(topic, None) | |
227 | self.startvals.pop(topic, None) |
|
227 | self.startvals.pop(topic, None) | |
228 | self.topicstates.pop(topic, None) |
|
228 | self.topicstates.pop(topic, None) | |
229 | # reset the progress bar if this is the outermost topic |
|
229 | # reset the progress bar if this is the outermost topic | |
230 | if self.topics and self.topics[0] == topic and self.printed: |
|
230 | if self.topics and self.topics[0] == topic and self.printed: | |
231 | self.complete() |
|
231 | self.complete() | |
232 | self.resetstate() |
|
232 | self.resetstate() | |
233 | # truncate the list of topics assuming all topics within |
|
233 | # truncate the list of topics assuming all topics within | |
234 | # this one are also closed |
|
234 | # this one are also closed | |
235 | if topic in self.topics: |
|
235 | if topic in self.topics: | |
236 | self.topics = self.topics[:self.topics.index(topic)] |
|
236 | self.topics = self.topics[:self.topics.index(topic)] | |
237 | # reset the last topic to the one we just unwound to, |
|
237 | # reset the last topic to the one we just unwound to, | |
238 | # so that higher-level topics will be stickier than |
|
238 | # so that higher-level topics will be stickier than | |
239 | # lower-level topics |
|
239 | # lower-level topics | |
240 | if self.topics: |
|
240 | if self.topics: | |
241 | self.lasttopic = self.topics[-1] |
|
241 | self.lasttopic = self.topics[-1] | |
242 | else: |
|
242 | else: | |
243 | self.lasttopic = None |
|
243 | self.lasttopic = None | |
244 | else: |
|
244 | else: | |
245 | if topic not in self.topics: |
|
245 | if topic not in self.topics: | |
246 | self.starttimes[topic] = now |
|
246 | self.starttimes[topic] = now | |
247 | self.startvals[topic] = pos |
|
247 | self.startvals[topic] = pos | |
248 | self.topics.append(topic) |
|
248 | self.topics.append(topic) | |
249 | self.topicstates[topic] = pos, item, unit, total |
|
249 | self.topicstates[topic] = pos, item, unit, total | |
250 | self.curtopic = topic |
|
250 | self.curtopic = topic | |
251 | if now - self.lastprint >= self.refresh and self.topics: |
|
251 | if now - self.lastprint >= self.refresh and self.topics: | |
252 | if self._oktoprint(now): |
|
252 | if self._oktoprint(now): | |
253 | self.lastprint = now |
|
253 | self.lastprint = now | |
254 | self.show(now, topic, *self.topicstates[topic]) |
|
254 | self.show(now, topic, *self.topicstates[topic]) | |
255 | finally: |
|
255 | finally: | |
256 | self._refreshlock.release() |
|
256 | self._refreshlock.release() |
@@ -1,477 +1,465 b'' | |||||
1 | $ remove() { |
|
1 | $ remove() { | |
2 | > hg rm $@ |
|
2 | > hg rm $@ | |
3 | > echo "exit code: $?" |
|
3 | > echo "exit code: $?" | |
4 | > hg st |
|
4 | > hg st | |
5 | > # do not use ls -R, which recurses in .hg subdirs on Mac OS X 10.5 |
|
5 | > # do not use ls -R, which recurses in .hg subdirs on Mac OS X 10.5 | |
6 | > find . -name .hg -prune -o -type f -print | sort |
|
6 | > find . -name .hg -prune -o -type f -print | sort | |
7 | > hg up -C |
|
7 | > hg up -C | |
8 | > } |
|
8 | > } | |
9 |
|
9 | |||
10 | $ cat >> $HGRCPATH <<EOF |
|
10 | $ cat >> $HGRCPATH <<EOF | |
11 | > [progress] |
|
11 | > [progress] | |
12 | > disable=False |
|
12 | > disable=False | |
13 | > assume-tty = 1 |
|
13 | > assume-tty = 1 | |
14 | > delay = 0 |
|
14 | > delay = 0 | |
15 | > # set changedelay really large so we don't see nested topics |
|
15 | > # set changedelay really large so we don't see nested topics | |
16 | > changedelay = 30000 |
|
16 | > changedelay = 30000 | |
17 | > format = topic bar number |
|
17 | > format = topic bar number | |
18 | > refresh = 0 |
|
18 | > refresh = 0 | |
19 | > width = 60 |
|
19 | > width = 60 | |
20 | > EOF |
|
20 | > EOF | |
21 |
|
21 | |||
22 | $ hg init a |
|
22 | $ hg init a | |
23 | $ cd a |
|
23 | $ cd a | |
24 | $ echo a > foo |
|
24 | $ echo a > foo | |
25 |
|
25 | |||
26 | file not managed |
|
26 | file not managed | |
27 |
|
27 | |||
28 | $ remove foo |
|
28 | $ remove foo | |
29 | \r (no-eol) (esc) |
|
29 | \r (no-eol) (esc) | |
30 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
30 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
31 | \r (no-eol) (esc) |
|
31 | \r (no-eol) (esc) | |
32 | not removing foo: file is untracked |
|
32 | not removing foo: file is untracked | |
33 | exit code: 1 |
|
33 | exit code: 1 | |
34 | ? foo |
|
34 | ? foo | |
35 | ./foo |
|
35 | ./foo | |
36 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
36 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
37 |
|
37 | |||
38 | $ hg add foo |
|
38 | $ hg add foo | |
39 | $ hg commit -m1 |
|
39 | $ hg commit -m1 | |
40 |
|
40 | |||
41 | the table cases |
|
41 | the table cases | |
42 | 00 state added, options none |
|
42 | 00 state added, options none | |
43 |
|
43 | |||
44 | $ echo b > bar |
|
44 | $ echo b > bar | |
45 | $ hg add bar |
|
45 | $ hg add bar | |
46 | $ remove bar |
|
46 | $ remove bar | |
47 | \r (no-eol) (esc) |
|
47 | \r (no-eol) (esc) | |
48 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
48 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
49 | \r (no-eol) (esc) |
|
49 | \r (no-eol) (esc) | |
50 | \r (no-eol) (esc) |
|
50 | \r (no-eol) (esc) | |
51 | skipping [===========================================>] 1/1\r (no-eol) (esc) |
|
51 | skipping [===========================================>] 1/1\r (no-eol) (esc) | |
52 | \r (no-eol) (esc) |
|
52 | \r (no-eol) (esc) | |
53 | not removing bar: file has been marked for add (use forget to undo) |
|
53 | not removing bar: file has been marked for add (use forget to undo) | |
54 | exit code: 1 |
|
54 | exit code: 1 | |
55 | A bar |
|
55 | A bar | |
56 | ./bar |
|
56 | ./bar | |
57 | ./foo |
|
57 | ./foo | |
58 | \r (no-eol) (esc) |
|
58 | \r (no-eol) (esc) | |
59 | updating [===========================================>] 1/1\r (no-eol) (esc) |
|
59 | updating [===========================================>] 1/1\r (no-eol) (esc) | |
60 | \r (no-eol) (esc) |
|
60 | \r (no-eol) (esc) | |
61 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
61 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
62 |
|
62 | |||
63 | 01 state clean, options none |
|
63 | 01 state clean, options none | |
64 |
|
64 | |||
65 | $ remove foo |
|
65 | $ remove foo | |
66 | \r (no-eol) (esc) |
|
66 | \r (no-eol) (esc) | |
67 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
67 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
68 | \r (no-eol) (esc) |
|
68 | \r (no-eol) (esc) | |
69 | exit code: 0 |
|
69 | exit code: 0 | |
70 | R foo |
|
70 | R foo | |
71 | ? bar |
|
71 | ? bar | |
72 | ./bar |
|
72 | ./bar | |
73 | \r (no-eol) (esc) |
|
73 | \r (no-eol) (esc) | |
74 | updating [===========================================>] 1/1\r (no-eol) (esc) |
|
74 | updating [===========================================>] 1/1\r (no-eol) (esc) | |
75 | \r (no-eol) (esc) |
|
75 | \r (no-eol) (esc) | |
76 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
76 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
77 |
|
77 | |||
78 | 02 state modified, options none |
|
78 | 02 state modified, options none | |
79 |
|
79 | |||
80 | $ echo b >> foo |
|
80 | $ echo b >> foo | |
81 | $ remove foo |
|
81 | $ remove foo | |
82 | \r (no-eol) (esc) |
|
82 | \r (no-eol) (esc) | |
83 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
83 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
84 | \r (no-eol) (esc) |
|
84 | \r (no-eol) (esc) | |
85 | \r (no-eol) (esc) |
|
85 | \r (no-eol) (esc) | |
86 | skipping [===========================================>] 1/1\r (no-eol) (esc) |
|
86 | skipping [===========================================>] 1/1\r (no-eol) (esc) | |
87 | \r (no-eol) (esc) |
|
87 | \r (no-eol) (esc) | |
88 | not removing foo: file is modified (use -f to force removal) |
|
88 | not removing foo: file is modified (use -f to force removal) | |
89 | exit code: 1 |
|
89 | exit code: 1 | |
90 | M foo |
|
90 | M foo | |
91 | ? bar |
|
91 | ? bar | |
92 | ./bar |
|
92 | ./bar | |
93 | ./foo |
|
93 | ./foo | |
94 | \r (no-eol) (esc) |
|
94 | \r (no-eol) (esc) | |
95 | updating [===========================================>] 1/1\r (no-eol) (esc) |
|
95 | updating [===========================================>] 1/1\r (no-eol) (esc) | |
96 | \r (no-eol) (esc) |
|
96 | \r (no-eol) (esc) | |
97 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
97 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
98 |
|
98 | |||
99 | 03 state missing, options none |
|
99 | 03 state missing, options none | |
100 |
|
100 | |||
101 | $ rm foo |
|
101 | $ rm foo | |
102 | $ remove foo |
|
102 | $ remove foo | |
103 | \r (no-eol) (esc) |
|
103 | \r (no-eol) (esc) | |
104 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
104 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
105 | \r (no-eol) (esc) |
|
105 | \r (no-eol) (esc) | |
106 | exit code: 0 |
|
106 | exit code: 0 | |
107 | R foo |
|
107 | R foo | |
108 | ? bar |
|
108 | ? bar | |
109 | ./bar |
|
109 | ./bar | |
110 | \r (no-eol) (esc) |
|
110 | \r (no-eol) (esc) | |
111 | updating [===========================================>] 1/1\r (no-eol) (esc) |
|
111 | updating [===========================================>] 1/1\r (no-eol) (esc) | |
112 | \r (no-eol) (esc) |
|
112 | \r (no-eol) (esc) | |
113 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
113 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
114 |
|
114 | |||
115 | 10 state added, options -f |
|
115 | 10 state added, options -f | |
116 |
|
116 | |||
117 | $ echo b > bar |
|
117 | $ echo b > bar | |
118 | $ hg add bar |
|
118 | $ hg add bar | |
119 | $ remove -f bar |
|
119 | $ remove -f bar | |
120 | \r (no-eol) (esc) |
|
120 | \r (no-eol) (esc) | |
121 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
121 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
122 | \r (no-eol) (esc) |
|
122 | \r (no-eol) (esc) | |
123 | exit code: 0 |
|
123 | exit code: 0 | |
124 | ? bar |
|
124 | ? bar | |
125 | ./bar |
|
125 | ./bar | |
126 | ./foo |
|
126 | ./foo | |
127 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
127 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
128 | $ rm bar |
|
128 | $ rm bar | |
129 |
|
129 | |||
130 | 11 state clean, options -f |
|
130 | 11 state clean, options -f | |
131 |
|
131 | |||
132 | $ remove -f foo |
|
132 | $ remove -f foo | |
133 | \r (no-eol) (esc) |
|
133 | \r (no-eol) (esc) | |
134 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
134 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
135 | \r (no-eol) (esc) |
|
135 | \r (no-eol) (esc) | |
136 | exit code: 0 |
|
136 | exit code: 0 | |
137 | R foo |
|
137 | R foo | |
138 | \r (no-eol) (esc) |
|
138 | \r (no-eol) (esc) | |
139 | updating [===========================================>] 1/1\r (no-eol) (esc) |
|
139 | updating [===========================================>] 1/1\r (no-eol) (esc) | |
140 | \r (no-eol) (esc) |
|
140 | \r (no-eol) (esc) | |
141 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
141 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
142 |
|
142 | |||
143 | 12 state modified, options -f |
|
143 | 12 state modified, options -f | |
144 |
|
144 | |||
145 | $ echo b >> foo |
|
145 | $ echo b >> foo | |
146 | $ remove -f foo |
|
146 | $ remove -f foo | |
147 | \r (no-eol) (esc) |
|
147 | \r (no-eol) (esc) | |
148 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
148 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
149 | \r (no-eol) (esc) |
|
149 | \r (no-eol) (esc) | |
150 | exit code: 0 |
|
150 | exit code: 0 | |
151 | R foo |
|
151 | R foo | |
152 | \r (no-eol) (esc) |
|
152 | \r (no-eol) (esc) | |
153 | updating [===========================================>] 1/1\r (no-eol) (esc) |
|
153 | updating [===========================================>] 1/1\r (no-eol) (esc) | |
154 | \r (no-eol) (esc) |
|
154 | \r (no-eol) (esc) | |
155 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
155 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
156 |
|
156 | |||
157 | 13 state missing, options -f |
|
157 | 13 state missing, options -f | |
158 |
|
158 | |||
159 | $ rm foo |
|
159 | $ rm foo | |
160 | $ remove -f foo |
|
160 | $ remove -f foo | |
161 | \r (no-eol) (esc) |
|
161 | \r (no-eol) (esc) | |
162 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
162 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
163 | \r (no-eol) (esc) |
|
163 | \r (no-eol) (esc) | |
164 | exit code: 0 |
|
164 | exit code: 0 | |
165 | R foo |
|
165 | R foo | |
166 | \r (no-eol) (esc) |
|
166 | \r (no-eol) (esc) | |
167 | updating [===========================================>] 1/1\r (no-eol) (esc) |
|
167 | updating [===========================================>] 1/1\r (no-eol) (esc) | |
168 | \r (no-eol) (esc) |
|
168 | \r (no-eol) (esc) | |
169 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
169 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
170 |
|
170 | |||
171 | 20 state added, options -A |
|
171 | 20 state added, options -A | |
172 |
|
172 | |||
173 | $ echo b > bar |
|
173 | $ echo b > bar | |
174 | $ hg add bar |
|
174 | $ hg add bar | |
175 | $ remove -A bar |
|
175 | $ remove -A bar | |
176 | \r (no-eol) (esc) |
|
176 | \r (no-eol) (esc) | |
177 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
177 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
178 | \r (no-eol) (esc) |
|
178 | \r (no-eol) (esc) | |
179 | \r (no-eol) (esc) |
|
179 | \r (no-eol) (esc) | |
180 | skipping [===========================================>] 1/1\r (no-eol) (esc) |
|
180 | skipping [===========================================>] 1/1\r (no-eol) (esc) | |
181 | \r (no-eol) (esc) |
|
181 | \r (no-eol) (esc) | |
182 | not removing bar: file still exists |
|
182 | not removing bar: file still exists | |
183 | exit code: 1 |
|
183 | exit code: 1 | |
184 | A bar |
|
184 | A bar | |
185 | ./bar |
|
185 | ./bar | |
186 | ./foo |
|
186 | ./foo | |
187 | \r (no-eol) (esc) |
|
187 | \r (no-eol) (esc) | |
188 | updating [===========================================>] 1/1\r (no-eol) (esc) |
|
188 | updating [===========================================>] 1/1\r (no-eol) (esc) | |
189 | \r (no-eol) (esc) |
|
189 | \r (no-eol) (esc) | |
190 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
190 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
191 |
|
191 | |||
192 | 21 state clean, options -A |
|
192 | 21 state clean, options -A | |
193 |
|
193 | |||
194 | $ remove -A foo |
|
194 | $ remove -A foo | |
195 | \r (no-eol) (esc) |
|
195 | \r (no-eol) (esc) | |
196 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
196 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
197 | \r (no-eol) (esc) |
|
197 | \r (no-eol) (esc) | |
198 | \r (no-eol) (esc) |
|
198 | \r (no-eol) (esc) | |
199 | skipping [===========================================>] 1/1\r (no-eol) (esc) |
|
199 | skipping [===========================================>] 1/1\r (no-eol) (esc) | |
200 | \r (no-eol) (esc) |
|
200 | \r (no-eol) (esc) | |
201 | not removing foo: file still exists |
|
201 | not removing foo: file still exists | |
202 | exit code: 1 |
|
202 | exit code: 1 | |
203 | ? bar |
|
203 | ? bar | |
204 | ./bar |
|
204 | ./bar | |
205 | ./foo |
|
205 | ./foo | |
206 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
206 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
207 |
|
207 | |||
208 | 22 state modified, options -A |
|
208 | 22 state modified, options -A | |
209 |
|
209 | |||
210 | $ echo b >> foo |
|
210 | $ echo b >> foo | |
211 | $ remove -A foo |
|
211 | $ remove -A foo | |
212 | \r (no-eol) (esc) |
|
212 | \r (no-eol) (esc) | |
213 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
213 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
214 | \r (no-eol) (esc) |
|
214 | \r (no-eol) (esc) | |
215 | \r (no-eol) (esc) |
|
215 | \r (no-eol) (esc) | |
216 | skipping [===========================================>] 1/1\r (no-eol) (esc) |
|
216 | skipping [===========================================>] 1/1\r (no-eol) (esc) | |
217 | \r (no-eol) (esc) |
|
217 | \r (no-eol) (esc) | |
218 | not removing foo: file still exists |
|
218 | not removing foo: file still exists | |
219 | exit code: 1 |
|
219 | exit code: 1 | |
220 | M foo |
|
220 | M foo | |
221 | ? bar |
|
221 | ? bar | |
222 | ./bar |
|
222 | ./bar | |
223 | ./foo |
|
223 | ./foo | |
224 | \r (no-eol) (esc) |
|
224 | \r (no-eol) (esc) | |
225 | updating [===========================================>] 1/1\r (no-eol) (esc) |
|
225 | updating [===========================================>] 1/1\r (no-eol) (esc) | |
226 | \r (no-eol) (esc) |
|
226 | \r (no-eol) (esc) | |
227 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
227 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
228 |
|
228 | |||
229 | 23 state missing, options -A |
|
229 | 23 state missing, options -A | |
230 |
|
230 | |||
231 | $ rm foo |
|
231 | $ rm foo | |
232 | $ remove -A foo |
|
232 | $ remove -A foo | |
233 | \r (no-eol) (esc) |
|
233 | \r (no-eol) (esc) | |
234 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
234 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
235 | \r (no-eol) (esc) |
|
235 | \r (no-eol) (esc) | |
236 | exit code: 0 |
|
236 | exit code: 0 | |
237 | R foo |
|
237 | R foo | |
238 | ? bar |
|
238 | ? bar | |
239 | ./bar |
|
239 | ./bar | |
240 | \r (no-eol) (esc) |
|
240 | \r (no-eol) (esc) | |
241 | updating [===========================================>] 1/1\r (no-eol) (esc) |
|
241 | updating [===========================================>] 1/1\r (no-eol) (esc) | |
242 | \r (no-eol) (esc) |
|
242 | \r (no-eol) (esc) | |
243 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
243 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
244 |
|
244 | |||
245 | 30 state added, options -Af |
|
245 | 30 state added, options -Af | |
246 |
|
246 | |||
247 | $ echo b > bar |
|
247 | $ echo b > bar | |
248 | $ hg add bar |
|
248 | $ hg add bar | |
249 | $ remove -Af bar |
|
249 | $ remove -Af bar | |
250 | \r (no-eol) (esc) |
|
250 | \r (no-eol) (esc) | |
251 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
251 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
252 | \r (no-eol) (esc) |
|
252 | \r (no-eol) (esc) | |
253 | exit code: 0 |
|
253 | exit code: 0 | |
254 | ? bar |
|
254 | ? bar | |
255 | ./bar |
|
255 | ./bar | |
256 | ./foo |
|
256 | ./foo | |
257 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
257 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
258 | $ rm bar |
|
258 | $ rm bar | |
259 |
|
259 | |||
260 | 31 state clean, options -Af |
|
260 | 31 state clean, options -Af | |
261 |
|
261 | |||
262 | $ remove -Af foo |
|
262 | $ remove -Af foo | |
263 | \r (no-eol) (esc) |
|
263 | \r (no-eol) (esc) | |
264 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
264 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
265 | \r (no-eol) (esc) |
|
265 | \r (no-eol) (esc) | |
266 | exit code: 0 |
|
266 | exit code: 0 | |
267 | R foo |
|
267 | R foo | |
268 | ./foo |
|
268 | ./foo | |
269 | \r (no-eol) (esc) |
|
269 | \r (no-eol) (esc) | |
270 | updating [===========================================>] 1/1\r (no-eol) (esc) |
|
270 | updating [===========================================>] 1/1\r (no-eol) (esc) | |
271 | \r (no-eol) (esc) |
|
271 | \r (no-eol) (esc) | |
272 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
272 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
273 |
|
273 | |||
274 | 32 state modified, options -Af |
|
274 | 32 state modified, options -Af | |
275 |
|
275 | |||
276 | $ echo b >> foo |
|
276 | $ echo b >> foo | |
277 | $ remove -Af foo |
|
277 | $ remove -Af foo | |
278 | \r (no-eol) (esc) |
|
278 | \r (no-eol) (esc) | |
279 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
279 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
280 | \r (no-eol) (esc) |
|
280 | \r (no-eol) (esc) | |
281 | exit code: 0 |
|
281 | exit code: 0 | |
282 | R foo |
|
282 | R foo | |
283 | ./foo |
|
283 | ./foo | |
284 | \r (no-eol) (esc) |
|
284 | \r (no-eol) (esc) | |
285 | updating [===========================================>] 1/1\r (no-eol) (esc) |
|
285 | updating [===========================================>] 1/1\r (no-eol) (esc) | |
286 | \r (no-eol) (esc) |
|
286 | \r (no-eol) (esc) | |
287 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
287 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
288 |
|
288 | |||
289 | 33 state missing, options -Af |
|
289 | 33 state missing, options -Af | |
290 |
|
290 | |||
291 | $ rm foo |
|
291 | $ rm foo | |
292 | $ remove -Af foo |
|
292 | $ remove -Af foo | |
293 | \r (no-eol) (esc) |
|
293 | \r (no-eol) (esc) | |
294 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
294 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
295 | \r (no-eol) (esc) |
|
295 | \r (no-eol) (esc) | |
296 | exit code: 0 |
|
296 | exit code: 0 | |
297 | R foo |
|
297 | R foo | |
298 | \r (no-eol) (esc) |
|
298 | \r (no-eol) (esc) | |
299 | updating [===========================================>] 1/1\r (no-eol) (esc) |
|
299 | updating [===========================================>] 1/1\r (no-eol) (esc) | |
300 | \r (no-eol) (esc) |
|
300 | \r (no-eol) (esc) | |
301 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
301 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
302 |
|
302 | |||
303 | test some directory stuff |
|
303 | test some directory stuff | |
304 |
|
304 | |||
305 | $ mkdir test |
|
305 | $ mkdir test | |
306 | $ echo a > test/foo |
|
306 | $ echo a > test/foo | |
307 | $ echo b > test/bar |
|
307 | $ echo b > test/bar | |
308 | $ hg ci -Am2 |
|
308 | $ hg ci -Am2 | |
309 | adding test/bar |
|
309 | adding test/bar | |
310 | adding test/foo |
|
310 | adding test/foo | |
311 |
|
311 | |||
312 | dir, options none |
|
312 | dir, options none | |
313 |
|
313 | |||
314 | $ rm test/bar |
|
314 | $ rm test/bar | |
315 | $ remove test |
|
315 | $ remove test | |
316 | \r (no-eol) (esc) |
|
316 | \r (no-eol) (esc) | |
317 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
317 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
318 | \r (no-eol) (esc) |
|
318 | \r (no-eol) (esc) | |
319 | \r (no-eol) (esc) |
|
319 | \r (no-eol) (esc) | |
320 | deleting [=====================> ] 1/2\r (no-eol) (esc) |
|
320 | deleting [=====================> ] 1/2\r (no-eol) (esc) | |
321 | \r (no-eol) (esc) |
|
321 | \r (no-eol) (esc) | |
322 | \r (no-eol) (esc) |
|
322 | \r (no-eol) (esc) | |
323 | deleting [===========================================>] 2/2\r (no-eol) (esc) |
|
323 | deleting [===========================================>] 2/2\r (no-eol) (esc) | |
324 | \r (no-eol) (esc) |
|
324 | \r (no-eol) (esc) | |
325 | \r (no-eol) (esc) |
|
|||
326 | \r (no-eol) (esc) |
|
|||
327 | removing test/bar (glob) |
|
325 | removing test/bar (glob) | |
328 | removing test/foo (glob) |
|
326 | removing test/foo (glob) | |
329 | exit code: 0 |
|
327 | exit code: 0 | |
330 | R test/bar |
|
328 | R test/bar | |
331 | R test/foo |
|
329 | R test/foo | |
332 | ./foo |
|
330 | ./foo | |
333 | \r (no-eol) (esc) |
|
331 | \r (no-eol) (esc) | |
334 | updating [===========================================>] 2/2\r (no-eol) (esc) |
|
332 | updating [===========================================>] 2/2\r (no-eol) (esc) | |
335 | \r (no-eol) (esc) |
|
333 | \r (no-eol) (esc) | |
336 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
334 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
337 |
|
335 | |||
338 | dir, options -f |
|
336 | dir, options -f | |
339 |
|
337 | |||
340 | $ rm test/bar |
|
338 | $ rm test/bar | |
341 | $ remove -f test |
|
339 | $ remove -f test | |
342 | \r (no-eol) (esc) |
|
340 | \r (no-eol) (esc) | |
343 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
341 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
344 | \r (no-eol) (esc) |
|
342 | \r (no-eol) (esc) | |
345 | \r (no-eol) (esc) |
|
343 | \r (no-eol) (esc) | |
346 | deleting [=====================> ] 1/2\r (no-eol) (esc) |
|
344 | deleting [=====================> ] 1/2\r (no-eol) (esc) | |
347 | \r (no-eol) (esc) |
|
345 | \r (no-eol) (esc) | |
348 | \r (no-eol) (esc) |
|
346 | \r (no-eol) (esc) | |
349 | deleting [===========================================>] 2/2\r (no-eol) (esc) |
|
347 | deleting [===========================================>] 2/2\r (no-eol) (esc) | |
350 | \r (no-eol) (esc) |
|
348 | \r (no-eol) (esc) | |
351 | \r (no-eol) (esc) |
|
|||
352 | \r (no-eol) (esc) |
|
|||
353 | removing test/bar (glob) |
|
349 | removing test/bar (glob) | |
354 | removing test/foo (glob) |
|
350 | removing test/foo (glob) | |
355 | exit code: 0 |
|
351 | exit code: 0 | |
356 | R test/bar |
|
352 | R test/bar | |
357 | R test/foo |
|
353 | R test/foo | |
358 | ./foo |
|
354 | ./foo | |
359 | \r (no-eol) (esc) |
|
355 | \r (no-eol) (esc) | |
360 | updating [===========================================>] 2/2\r (no-eol) (esc) |
|
356 | updating [===========================================>] 2/2\r (no-eol) (esc) | |
361 | \r (no-eol) (esc) |
|
357 | \r (no-eol) (esc) | |
362 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
358 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
363 |
|
359 | |||
364 | dir, options -A |
|
360 | dir, options -A | |
365 |
|
361 | |||
366 | $ rm test/bar |
|
362 | $ rm test/bar | |
367 | $ remove -A test |
|
363 | $ remove -A test | |
368 | \r (no-eol) (esc) |
|
364 | \r (no-eol) (esc) | |
369 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
365 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
370 | \r (no-eol) (esc) |
|
366 | \r (no-eol) (esc) | |
371 | \r (no-eol) (esc) |
|
367 | \r (no-eol) (esc) | |
372 | skipping [===========================================>] 1/1\r (no-eol) (esc) |
|
368 | skipping [===========================================>] 1/1\r (no-eol) (esc) | |
373 | \r (no-eol) (esc) |
|
369 | \r (no-eol) (esc) | |
374 | \r (no-eol) (esc) |
|
370 | \r (no-eol) (esc) | |
375 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
371 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
376 | \r (no-eol) (esc) |
|
372 | \r (no-eol) (esc) | |
377 | \r (no-eol) (esc) |
|
|||
378 | \r (no-eol) (esc) |
|
|||
379 | removing test/bar (glob) |
|
373 | removing test/bar (glob) | |
380 | not removing test/foo: file still exists (glob) |
|
374 | not removing test/foo: file still exists (glob) | |
381 | exit code: 1 |
|
375 | exit code: 1 | |
382 | R test/bar |
|
376 | R test/bar | |
383 | ./foo |
|
377 | ./foo | |
384 | ./test/foo |
|
378 | ./test/foo | |
385 | \r (no-eol) (esc) |
|
379 | \r (no-eol) (esc) | |
386 | updating [===========================================>] 1/1\r (no-eol) (esc) |
|
380 | updating [===========================================>] 1/1\r (no-eol) (esc) | |
387 | \r (no-eol) (esc) |
|
381 | \r (no-eol) (esc) | |
388 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
382 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
389 |
|
383 | |||
390 | dir, options -Af |
|
384 | dir, options -Af | |
391 |
|
385 | |||
392 | $ rm test/bar |
|
386 | $ rm test/bar | |
393 | $ remove -Af test |
|
387 | $ remove -Af test | |
394 | \r (no-eol) (esc) |
|
388 | \r (no-eol) (esc) | |
395 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
389 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
396 | \r (no-eol) (esc) |
|
390 | \r (no-eol) (esc) | |
397 | \r (no-eol) (esc) |
|
391 | \r (no-eol) (esc) | |
398 | deleting [=====================> ] 1/2\r (no-eol) (esc) |
|
392 | deleting [=====================> ] 1/2\r (no-eol) (esc) | |
399 | \r (no-eol) (esc) |
|
393 | \r (no-eol) (esc) | |
400 | \r (no-eol) (esc) |
|
394 | \r (no-eol) (esc) | |
401 | deleting [===========================================>] 2/2\r (no-eol) (esc) |
|
395 | deleting [===========================================>] 2/2\r (no-eol) (esc) | |
402 | \r (no-eol) (esc) |
|
396 | \r (no-eol) (esc) | |
403 | \r (no-eol) (esc) |
|
|||
404 | \r (no-eol) (esc) |
|
|||
405 | removing test/bar (glob) |
|
397 | removing test/bar (glob) | |
406 | removing test/foo (glob) |
|
398 | removing test/foo (glob) | |
407 | exit code: 0 |
|
399 | exit code: 0 | |
408 | R test/bar |
|
400 | R test/bar | |
409 | R test/foo |
|
401 | R test/foo | |
410 | ./foo |
|
402 | ./foo | |
411 | ./test/foo |
|
403 | ./test/foo | |
412 | \r (no-eol) (esc) |
|
404 | \r (no-eol) (esc) | |
413 | updating [===========================================>] 2/2\r (no-eol) (esc) |
|
405 | updating [===========================================>] 2/2\r (no-eol) (esc) | |
414 | \r (no-eol) (esc) |
|
406 | \r (no-eol) (esc) | |
415 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
407 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
416 |
|
408 | |||
417 | test remove dropping empty trees (issue1861) |
|
409 | test remove dropping empty trees (issue1861) | |
418 |
|
410 | |||
419 | $ mkdir -p issue1861/b/c |
|
411 | $ mkdir -p issue1861/b/c | |
420 | $ echo x > issue1861/x |
|
412 | $ echo x > issue1861/x | |
421 | $ echo y > issue1861/b/c/y |
|
413 | $ echo y > issue1861/b/c/y | |
422 | $ hg ci -Am add |
|
414 | $ hg ci -Am add | |
423 | adding issue1861/b/c/y |
|
415 | adding issue1861/b/c/y | |
424 | adding issue1861/x |
|
416 | adding issue1861/x | |
425 | $ hg rm issue1861/b |
|
417 | $ hg rm issue1861/b | |
426 | \r (no-eol) (esc) |
|
418 | \r (no-eol) (esc) | |
427 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
419 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
428 | \r (no-eol) (esc) |
|
420 | \r (no-eol) (esc) | |
429 | \r (no-eol) (esc) |
|
421 | \r (no-eol) (esc) | |
430 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
422 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
431 | \r (no-eol) (esc) |
|
423 | \r (no-eol) (esc) | |
432 | \r (no-eol) (esc) |
|
|||
433 | \r (no-eol) (esc) |
|
|||
434 | removing issue1861/b/c/y (glob) |
|
424 | removing issue1861/b/c/y (glob) | |
435 | $ hg ci -m remove |
|
425 | $ hg ci -m remove | |
436 | $ ls issue1861 |
|
426 | $ ls issue1861 | |
437 | x |
|
427 | x | |
438 |
|
428 | |||
439 | test that commit does not crash if the user removes a newly added file |
|
429 | test that commit does not crash if the user removes a newly added file | |
440 |
|
430 | |||
441 | $ touch f1 |
|
431 | $ touch f1 | |
442 | $ hg add f1 |
|
432 | $ hg add f1 | |
443 | $ rm f1 |
|
433 | $ rm f1 | |
444 | $ hg ci -A -mx |
|
434 | $ hg ci -A -mx | |
445 | removing f1 |
|
435 | removing f1 | |
446 | nothing changed |
|
436 | nothing changed | |
447 | [1] |
|
437 | [1] | |
448 |
|
438 | |||
449 | handling of untracked directories and missing files |
|
439 | handling of untracked directories and missing files | |
450 |
|
440 | |||
451 | $ mkdir d1 |
|
441 | $ mkdir d1 | |
452 | $ echo a > d1/a |
|
442 | $ echo a > d1/a | |
453 | $ hg rm --after d1 |
|
443 | $ hg rm --after d1 | |
454 | \r (no-eol) (esc) |
|
444 | \r (no-eol) (esc) | |
455 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
445 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
456 | \r (no-eol) (esc) |
|
446 | \r (no-eol) (esc) | |
457 | not removing d1: no tracked files |
|
447 | not removing d1: no tracked files | |
458 | [1] |
|
448 | [1] | |
459 | $ hg add d1/a |
|
449 | $ hg add d1/a | |
460 | $ rm d1/a |
|
450 | $ rm d1/a | |
461 | $ hg rm --after d1 |
|
451 | $ hg rm --after d1 | |
462 | \r (no-eol) (esc) |
|
452 | \r (no-eol) (esc) | |
463 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
453 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
464 | \r (no-eol) (esc) |
|
454 | \r (no-eol) (esc) | |
465 | \r (no-eol) (esc) |
|
455 | \r (no-eol) (esc) | |
466 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
456 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
467 | \r (no-eol) (esc) |
|
457 | \r (no-eol) (esc) | |
468 | \r (no-eol) (esc) |
|
|||
469 | \r (no-eol) (esc) |
|
|||
470 | removing d1/a (glob) |
|
458 | removing d1/a (glob) | |
471 |
|
459 | |||
472 | $ hg rm --after nosuch |
|
460 | $ hg rm --after nosuch | |
473 | nosuch: * (glob) |
|
461 | nosuch: * (glob) | |
474 | \r (no-eol) (esc) |
|
462 | \r (no-eol) (esc) | |
475 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
463 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
476 | \r (no-eol) (esc) |
|
464 | \r (no-eol) (esc) | |
477 | [1] |
|
465 | [1] |
@@ -1,1099 +1,1097 b'' | |||||
1 | $ cat >> $HGRCPATH <<EOF |
|
1 | $ cat >> $HGRCPATH <<EOF | |
2 | > [extdiff] |
|
2 | > [extdiff] | |
3 | > # for portability: |
|
3 | > # for portability: | |
4 | > pdiff = sh "$RUNTESTDIR/pdiff" |
|
4 | > pdiff = sh "$RUNTESTDIR/pdiff" | |
5 | > [progress] |
|
5 | > [progress] | |
6 | > disable=False |
|
6 | > disable=False | |
7 | > assume-tty = 1 |
|
7 | > assume-tty = 1 | |
8 | > delay = 0 |
|
8 | > delay = 0 | |
9 | > # set changedelay really large so we don't see nested topics |
|
9 | > # set changedelay really large so we don't see nested topics | |
10 | > changedelay = 30000 |
|
10 | > changedelay = 30000 | |
11 | > format = topic bar number |
|
11 | > format = topic bar number | |
12 | > refresh = 0 |
|
12 | > refresh = 0 | |
13 | > width = 60 |
|
13 | > width = 60 | |
14 | > EOF |
|
14 | > EOF | |
15 |
|
15 | |||
16 | Preparing the subrepository 'sub2' |
|
16 | Preparing the subrepository 'sub2' | |
17 |
|
17 | |||
18 | $ hg init sub2 |
|
18 | $ hg init sub2 | |
19 | $ echo sub2 > sub2/sub2 |
|
19 | $ echo sub2 > sub2/sub2 | |
20 | $ hg add -R sub2 |
|
20 | $ hg add -R sub2 | |
21 | adding sub2/sub2 (glob) |
|
21 | adding sub2/sub2 (glob) | |
22 | $ hg commit -R sub2 -m "sub2 import" |
|
22 | $ hg commit -R sub2 -m "sub2 import" | |
23 |
|
23 | |||
24 | Preparing the 'sub1' repo which depends on the subrepo 'sub2' |
|
24 | Preparing the 'sub1' repo which depends on the subrepo 'sub2' | |
25 |
|
25 | |||
26 | $ hg init sub1 |
|
26 | $ hg init sub1 | |
27 | $ echo sub1 > sub1/sub1 |
|
27 | $ echo sub1 > sub1/sub1 | |
28 | $ echo "sub2 = ../sub2" > sub1/.hgsub |
|
28 | $ echo "sub2 = ../sub2" > sub1/.hgsub | |
29 | $ hg clone sub2 sub1/sub2 |
|
29 | $ hg clone sub2 sub1/sub2 | |
30 | \r (no-eol) (esc) |
|
30 | \r (no-eol) (esc) | |
31 | linking [ <=> ] 1\r (no-eol) (esc) |
|
31 | linking [ <=> ] 1\r (no-eol) (esc) | |
32 | linking [ <=> ] 2\r (no-eol) (esc) |
|
32 | linking [ <=> ] 2\r (no-eol) (esc) | |
33 | linking [ <=> ] 3\r (no-eol) (esc) |
|
33 | linking [ <=> ] 3\r (no-eol) (esc) | |
34 | linking [ <=> ] 4\r (no-eol) (esc) |
|
34 | linking [ <=> ] 4\r (no-eol) (esc) | |
35 | linking [ <=> ] 5\r (no-eol) (esc) |
|
35 | linking [ <=> ] 5\r (no-eol) (esc) | |
36 | linking [ <=> ] 6\r (no-eol) (esc) |
|
36 | linking [ <=> ] 6\r (no-eol) (esc) | |
37 | \r (no-eol) (esc) |
|
37 | \r (no-eol) (esc) | |
38 | \r (no-eol) (esc) |
|
38 | \r (no-eol) (esc) | |
39 | updating [===========================================>] 1/1\r (no-eol) (esc) |
|
39 | updating [===========================================>] 1/1\r (no-eol) (esc) | |
40 | \r (no-eol) (esc) |
|
40 | \r (no-eol) (esc) | |
41 | updating to branch default |
|
41 | updating to branch default | |
42 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
42 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
43 | $ hg add -R sub1 |
|
43 | $ hg add -R sub1 | |
44 | adding sub1/.hgsub (glob) |
|
44 | adding sub1/.hgsub (glob) | |
45 | adding sub1/sub1 (glob) |
|
45 | adding sub1/sub1 (glob) | |
46 | $ hg commit -R sub1 -m "sub1 import" |
|
46 | $ hg commit -R sub1 -m "sub1 import" | |
47 |
|
47 | |||
48 | Preparing the 'main' repo which depends on the subrepo 'sub1' |
|
48 | Preparing the 'main' repo which depends on the subrepo 'sub1' | |
49 |
|
49 | |||
50 | $ hg init main |
|
50 | $ hg init main | |
51 | $ echo main > main/main |
|
51 | $ echo main > main/main | |
52 | $ echo "sub1 = ../sub1" > main/.hgsub |
|
52 | $ echo "sub1 = ../sub1" > main/.hgsub | |
53 | $ hg clone sub1 main/sub1 |
|
53 | $ hg clone sub1 main/sub1 | |
54 | \r (no-eol) (esc) |
|
54 | \r (no-eol) (esc) | |
55 | linking [ <=> ] 1\r (no-eol) (esc) |
|
55 | linking [ <=> ] 1\r (no-eol) (esc) | |
56 | linking [ <=> ] 2\r (no-eol) (esc) |
|
56 | linking [ <=> ] 2\r (no-eol) (esc) | |
57 | linking [ <=> ] 3\r (no-eol) (esc) |
|
57 | linking [ <=> ] 3\r (no-eol) (esc) | |
58 | linking [ <=> ] 4\r (no-eol) (esc) |
|
58 | linking [ <=> ] 4\r (no-eol) (esc) | |
59 | linking [ <=> ] 5\r (no-eol) (esc) |
|
59 | linking [ <=> ] 5\r (no-eol) (esc) | |
60 | linking [ <=> ] 6\r (no-eol) (esc) |
|
60 | linking [ <=> ] 6\r (no-eol) (esc) | |
61 | linking [ <=> ] 7\r (no-eol) (esc) |
|
61 | linking [ <=> ] 7\r (no-eol) (esc) | |
62 | linking [ <=> ] 8\r (no-eol) (esc) |
|
62 | linking [ <=> ] 8\r (no-eol) (esc) | |
63 | \r (no-eol) (esc) |
|
63 | \r (no-eol) (esc) | |
64 | \r (no-eol) (esc) |
|
64 | \r (no-eol) (esc) | |
65 | updating [===========================================>] 3/3\r (no-eol) (esc) |
|
65 | updating [===========================================>] 3/3\r (no-eol) (esc) | |
66 | updating [===========================================>] 1/1\r (no-eol) (esc) |
|
66 | updating [===========================================>] 1/1\r (no-eol) (esc) | |
67 | \r (no-eol) (esc) |
|
67 | \r (no-eol) (esc) | |
68 | updating to branch default |
|
68 | updating to branch default | |
69 | cloning subrepo sub2 from $TESTTMP/sub2 |
|
69 | cloning subrepo sub2 from $TESTTMP/sub2 | |
70 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
70 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
71 | $ hg add -R main |
|
71 | $ hg add -R main | |
72 | adding main/.hgsub (glob) |
|
72 | adding main/.hgsub (glob) | |
73 | adding main/main (glob) |
|
73 | adding main/main (glob) | |
74 | $ hg commit -R main -m "main import" |
|
74 | $ hg commit -R main -m "main import" | |
75 |
|
75 | |||
76 | Cleaning both repositories, just as a clone -U |
|
76 | Cleaning both repositories, just as a clone -U | |
77 |
|
77 | |||
78 | $ hg up -C -R sub2 null |
|
78 | $ hg up -C -R sub2 null | |
79 | \r (no-eol) (esc) |
|
79 | \r (no-eol) (esc) | |
80 | updating [===========================================>] 1/1\r (no-eol) (esc) |
|
80 | updating [===========================================>] 1/1\r (no-eol) (esc) | |
81 | \r (no-eol) (esc) |
|
81 | \r (no-eol) (esc) | |
82 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
82 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
83 | $ hg up -C -R sub1 null |
|
83 | $ hg up -C -R sub1 null | |
84 | \r (no-eol) (esc) |
|
84 | \r (no-eol) (esc) | |
85 | updating [===========================================>] 1/1\r (no-eol) (esc) |
|
85 | updating [===========================================>] 1/1\r (no-eol) (esc) | |
86 | \r (no-eol) (esc) |
|
86 | \r (no-eol) (esc) | |
87 | \r (no-eol) (esc) |
|
87 | \r (no-eol) (esc) | |
88 | updating [===========================================>] 3/3\r (no-eol) (esc) |
|
88 | updating [===========================================>] 3/3\r (no-eol) (esc) | |
89 | \r (no-eol) (esc) |
|
89 | \r (no-eol) (esc) | |
90 | 0 files updated, 0 files merged, 3 files removed, 0 files unresolved |
|
90 | 0 files updated, 0 files merged, 3 files removed, 0 files unresolved | |
91 | $ hg up -C -R main null |
|
91 | $ hg up -C -R main null | |
92 | \r (no-eol) (esc) |
|
92 | \r (no-eol) (esc) | |
93 | updating [===========================================>] 1/1\r (no-eol) (esc) |
|
93 | updating [===========================================>] 1/1\r (no-eol) (esc) | |
94 | \r (no-eol) (esc) |
|
94 | \r (no-eol) (esc) | |
95 | \r (no-eol) (esc) |
|
95 | \r (no-eol) (esc) | |
96 | updating [===========================================>] 3/3\r (no-eol) (esc) |
|
96 | updating [===========================================>] 3/3\r (no-eol) (esc) | |
97 | \r (no-eol) (esc) |
|
97 | \r (no-eol) (esc) | |
98 | \r (no-eol) (esc) |
|
98 | \r (no-eol) (esc) | |
99 | updating [===========================================>] 3/3\r (no-eol) (esc) |
|
99 | updating [===========================================>] 3/3\r (no-eol) (esc) | |
100 | \r (no-eol) (esc) |
|
100 | \r (no-eol) (esc) | |
101 | 0 files updated, 0 files merged, 3 files removed, 0 files unresolved |
|
101 | 0 files updated, 0 files merged, 3 files removed, 0 files unresolved | |
102 | $ rm -rf main/sub1 |
|
102 | $ rm -rf main/sub1 | |
103 | $ rm -rf sub1/sub2 |
|
103 | $ rm -rf sub1/sub2 | |
104 |
|
104 | |||
105 | Clone main |
|
105 | Clone main | |
106 |
|
106 | |||
107 | $ hg --config extensions.largefiles= clone main cloned |
|
107 | $ hg --config extensions.largefiles= clone main cloned | |
108 | \r (no-eol) (esc) |
|
108 | \r (no-eol) (esc) | |
109 | linking [ <=> ] 1\r (no-eol) (esc) |
|
109 | linking [ <=> ] 1\r (no-eol) (esc) | |
110 | linking [ <=> ] 2\r (no-eol) (esc) |
|
110 | linking [ <=> ] 2\r (no-eol) (esc) | |
111 | linking [ <=> ] 3\r (no-eol) (esc) |
|
111 | linking [ <=> ] 3\r (no-eol) (esc) | |
112 | linking [ <=> ] 4\r (no-eol) (esc) |
|
112 | linking [ <=> ] 4\r (no-eol) (esc) | |
113 | linking [ <=> ] 5\r (no-eol) (esc) |
|
113 | linking [ <=> ] 5\r (no-eol) (esc) | |
114 | linking [ <=> ] 6\r (no-eol) (esc) |
|
114 | linking [ <=> ] 6\r (no-eol) (esc) | |
115 | linking [ <=> ] 7\r (no-eol) (esc) |
|
115 | linking [ <=> ] 7\r (no-eol) (esc) | |
116 | linking [ <=> ] 8\r (no-eol) (esc) |
|
116 | linking [ <=> ] 8\r (no-eol) (esc) | |
117 | \r (no-eol) (esc) |
|
117 | \r (no-eol) (esc) | |
118 | \r (no-eol) (esc) |
|
118 | \r (no-eol) (esc) | |
119 | updating [===========================================>] 3/3\r (no-eol) (esc) |
|
119 | updating [===========================================>] 3/3\r (no-eol) (esc) | |
120 | updating [===========================================>] 3/3\r (no-eol) (esc) |
|
120 | updating [===========================================>] 3/3\r (no-eol) (esc) | |
121 | updating [===========================================>] 1/1\r (no-eol) (esc) |
|
121 | updating [===========================================>] 1/1\r (no-eol) (esc) | |
122 | \r (no-eol) (esc) |
|
122 | \r (no-eol) (esc) | |
123 | updating to branch default |
|
123 | updating to branch default | |
124 | cloning subrepo sub1 from $TESTTMP/sub1 |
|
124 | cloning subrepo sub1 from $TESTTMP/sub1 | |
125 | cloning subrepo sub1/sub2 from $TESTTMP/sub2 (glob) |
|
125 | cloning subrepo sub1/sub2 from $TESTTMP/sub2 (glob) | |
126 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
126 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
127 |
|
127 | |||
128 | Largefiles is NOT enabled in the clone if the source repo doesn't require it |
|
128 | Largefiles is NOT enabled in the clone if the source repo doesn't require it | |
129 | $ cat cloned/.hg/hgrc |
|
129 | $ cat cloned/.hg/hgrc | |
130 | # example repository config (see "hg help config" for more info) |
|
130 | # example repository config (see "hg help config" for more info) | |
131 | [paths] |
|
131 | [paths] | |
132 | default = $TESTTMP/main (glob) |
|
132 | default = $TESTTMP/main (glob) | |
133 |
|
133 | |||
134 | # path aliases to other clones of this repo in URLs or filesystem paths |
|
134 | # path aliases to other clones of this repo in URLs or filesystem paths | |
135 | # (see "hg help config.paths" for more info) |
|
135 | # (see "hg help config.paths" for more info) | |
136 | # |
|
136 | # | |
137 | # default-push = ssh://jdoe@example.net/hg/jdoes-fork |
|
137 | # default-push = ssh://jdoe@example.net/hg/jdoes-fork | |
138 | # my-fork = ssh://jdoe@example.net/hg/jdoes-fork |
|
138 | # my-fork = ssh://jdoe@example.net/hg/jdoes-fork | |
139 | # my-clone = /home/jdoe/jdoes-clone |
|
139 | # my-clone = /home/jdoe/jdoes-clone | |
140 |
|
140 | |||
141 | [ui] |
|
141 | [ui] | |
142 | # name and email (local to this repository, optional), e.g. |
|
142 | # name and email (local to this repository, optional), e.g. | |
143 | # username = Jane Doe <jdoe@example.com> |
|
143 | # username = Jane Doe <jdoe@example.com> | |
144 |
|
144 | |||
145 | Checking cloned repo ids |
|
145 | Checking cloned repo ids | |
146 |
|
146 | |||
147 | $ printf "cloned " ; hg id -R cloned |
|
147 | $ printf "cloned " ; hg id -R cloned | |
148 | cloned 7f491f53a367 tip |
|
148 | cloned 7f491f53a367 tip | |
149 | $ printf "cloned/sub1 " ; hg id -R cloned/sub1 |
|
149 | $ printf "cloned/sub1 " ; hg id -R cloned/sub1 | |
150 | cloned/sub1 fc3b4ce2696f tip |
|
150 | cloned/sub1 fc3b4ce2696f tip | |
151 | $ printf "cloned/sub1/sub2 " ; hg id -R cloned/sub1/sub2 |
|
151 | $ printf "cloned/sub1/sub2 " ; hg id -R cloned/sub1/sub2 | |
152 | cloned/sub1/sub2 c57a0840e3ba tip |
|
152 | cloned/sub1/sub2 c57a0840e3ba tip | |
153 |
|
153 | |||
154 | debugsub output for main and sub1 |
|
154 | debugsub output for main and sub1 | |
155 |
|
155 | |||
156 | $ hg debugsub -R cloned |
|
156 | $ hg debugsub -R cloned | |
157 | path sub1 |
|
157 | path sub1 | |
158 | source ../sub1 |
|
158 | source ../sub1 | |
159 | revision fc3b4ce2696f7741438c79207583768f2ce6b0dd |
|
159 | revision fc3b4ce2696f7741438c79207583768f2ce6b0dd | |
160 | $ hg debugsub -R cloned/sub1 |
|
160 | $ hg debugsub -R cloned/sub1 | |
161 | path sub2 |
|
161 | path sub2 | |
162 | source ../sub2 |
|
162 | source ../sub2 | |
163 | revision c57a0840e3badd667ef3c3ef65471609acb2ba3c |
|
163 | revision c57a0840e3badd667ef3c3ef65471609acb2ba3c | |
164 |
|
164 | |||
165 | Modifying deeply nested 'sub2' |
|
165 | Modifying deeply nested 'sub2' | |
166 |
|
166 | |||
167 | $ echo modified > cloned/sub1/sub2/sub2 |
|
167 | $ echo modified > cloned/sub1/sub2/sub2 | |
168 | $ hg commit --subrepos -m "deep nested modif should trigger a commit" -R cloned |
|
168 | $ hg commit --subrepos -m "deep nested modif should trigger a commit" -R cloned | |
169 | committing subrepository sub1 |
|
169 | committing subrepository sub1 | |
170 | committing subrepository sub1/sub2 (glob) |
|
170 | committing subrepository sub1/sub2 (glob) | |
171 |
|
171 | |||
172 | Checking modified node ids |
|
172 | Checking modified node ids | |
173 |
|
173 | |||
174 | $ printf "cloned " ; hg id -R cloned |
|
174 | $ printf "cloned " ; hg id -R cloned | |
175 | cloned ffe6649062fe tip |
|
175 | cloned ffe6649062fe tip | |
176 | $ printf "cloned/sub1 " ; hg id -R cloned/sub1 |
|
176 | $ printf "cloned/sub1 " ; hg id -R cloned/sub1 | |
177 | cloned/sub1 2ecb03bf44a9 tip |
|
177 | cloned/sub1 2ecb03bf44a9 tip | |
178 | $ printf "cloned/sub1/sub2 " ; hg id -R cloned/sub1/sub2 |
|
178 | $ printf "cloned/sub1/sub2 " ; hg id -R cloned/sub1/sub2 | |
179 | cloned/sub1/sub2 53dd3430bcaf tip |
|
179 | cloned/sub1/sub2 53dd3430bcaf tip | |
180 |
|
180 | |||
181 | debugsub output for main and sub1 |
|
181 | debugsub output for main and sub1 | |
182 |
|
182 | |||
183 | $ hg debugsub -R cloned |
|
183 | $ hg debugsub -R cloned | |
184 | path sub1 |
|
184 | path sub1 | |
185 | source ../sub1 |
|
185 | source ../sub1 | |
186 | revision 2ecb03bf44a94e749e8669481dd9069526ce7cb9 |
|
186 | revision 2ecb03bf44a94e749e8669481dd9069526ce7cb9 | |
187 | $ hg debugsub -R cloned/sub1 |
|
187 | $ hg debugsub -R cloned/sub1 | |
188 | path sub2 |
|
188 | path sub2 | |
189 | source ../sub2 |
|
189 | source ../sub2 | |
190 | revision 53dd3430bcaf5ab4a7c48262bcad6d441f510487 |
|
190 | revision 53dd3430bcaf5ab4a7c48262bcad6d441f510487 | |
191 |
|
191 | |||
192 | Check that deep archiving works |
|
192 | Check that deep archiving works | |
193 |
|
193 | |||
194 | $ cd cloned |
|
194 | $ cd cloned | |
195 | $ echo 'test' > sub1/sub2/test.txt |
|
195 | $ echo 'test' > sub1/sub2/test.txt | |
196 | $ hg --config extensions.largefiles=! add sub1/sub2/test.txt |
|
196 | $ hg --config extensions.largefiles=! add sub1/sub2/test.txt | |
197 | $ mkdir sub1/sub2/folder |
|
197 | $ mkdir sub1/sub2/folder | |
198 | $ echo 'subfolder' > sub1/sub2/folder/test.txt |
|
198 | $ echo 'subfolder' > sub1/sub2/folder/test.txt | |
199 | $ hg ci -ASm "add test.txt" |
|
199 | $ hg ci -ASm "add test.txt" | |
200 | adding sub1/sub2/folder/test.txt |
|
200 | adding sub1/sub2/folder/test.txt | |
201 | committing subrepository sub1 |
|
201 | committing subrepository sub1 | |
202 | committing subrepository sub1/sub2 (glob) |
|
202 | committing subrepository sub1/sub2 (glob) | |
203 |
|
203 | |||
204 | .. but first take a detour through some deep removal testing |
|
204 | .. but first take a detour through some deep removal testing | |
205 |
|
205 | |||
206 | $ hg remove -S -I 're:.*.txt' . |
|
206 | $ hg remove -S -I 're:.*.txt' . | |
207 | \r (no-eol) (esc) |
|
207 | \r (no-eol) (esc) | |
208 | searching [==========================================>] 1/1\r (no-eol) (esc) |
|
208 | searching [==========================================>] 1/1\r (no-eol) (esc) | |
209 | searching [==========================================>] 1/1\r (no-eol) (esc) |
|
209 | searching [==========================================>] 1/1\r (no-eol) (esc) | |
210 | \r (no-eol) (esc) |
|
210 | \r (no-eol) (esc) | |
211 | \r (no-eol) (esc) |
|
211 | \r (no-eol) (esc) | |
212 | deleting [=====================> ] 1/2\r (no-eol) (esc) |
|
212 | deleting [=====================> ] 1/2\r (no-eol) (esc) | |
213 | \r (no-eol) (esc) |
|
213 | \r (no-eol) (esc) | |
214 | \r (no-eol) (esc) |
|
214 | \r (no-eol) (esc) | |
215 | deleting [===========================================>] 2/2\r (no-eol) (esc) |
|
215 | deleting [===========================================>] 2/2\r (no-eol) (esc) | |
216 | \r (no-eol) (esc) |
|
216 | \r (no-eol) (esc) | |
217 | \r (no-eol) (esc) |
|
|||
218 | \r (no-eol) (esc) |
|
|||
219 | removing sub1/sub2/folder/test.txt (glob) |
|
217 | removing sub1/sub2/folder/test.txt (glob) | |
220 | removing sub1/sub2/test.txt (glob) |
|
218 | removing sub1/sub2/test.txt (glob) | |
221 | $ hg status -S |
|
219 | $ hg status -S | |
222 | R sub1/sub2/folder/test.txt |
|
220 | R sub1/sub2/folder/test.txt | |
223 | R sub1/sub2/test.txt |
|
221 | R sub1/sub2/test.txt | |
224 | $ hg update -Cq |
|
222 | $ hg update -Cq | |
225 | $ hg remove -I 're:.*.txt' sub1 |
|
223 | $ hg remove -I 're:.*.txt' sub1 | |
226 | \r (no-eol) (esc) |
|
224 | \r (no-eol) (esc) | |
227 | searching [==========================================>] 1/1\r (no-eol) (esc) |
|
225 | searching [==========================================>] 1/1\r (no-eol) (esc) | |
228 | \r (no-eol) (esc) |
|
226 | \r (no-eol) (esc) | |
229 | \r (no-eol) (esc) |
|
227 | \r (no-eol) (esc) | |
230 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
228 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
231 | \r (no-eol) (esc) |
|
229 | \r (no-eol) (esc) | |
232 | $ hg status -S |
|
230 | $ hg status -S | |
233 | $ hg remove sub1/sub2/folder/test.txt |
|
231 | $ hg remove sub1/sub2/folder/test.txt | |
234 | \r (no-eol) (esc) |
|
232 | \r (no-eol) (esc) | |
235 | searching [==========================================>] 1/1\r (no-eol) (esc) |
|
233 | searching [==========================================>] 1/1\r (no-eol) (esc) | |
236 | searching [==========================================>] 1/1\r (no-eol) (esc) |
|
234 | searching [==========================================>] 1/1\r (no-eol) (esc) | |
237 | \r (no-eol) (esc) |
|
235 | \r (no-eol) (esc) | |
238 | \r (no-eol) (esc) |
|
236 | \r (no-eol) (esc) | |
239 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
237 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
240 | \r (no-eol) (esc) |
|
238 | \r (no-eol) (esc) | |
241 | \r (no-eol) (esc) |
|
239 | \r (no-eol) (esc) | |
242 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
240 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
243 | \r (no-eol) (esc) |
|
241 | \r (no-eol) (esc) | |
244 | \r (no-eol) (esc) |
|
242 | \r (no-eol) (esc) | |
245 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
243 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
246 | \r (no-eol) (esc) |
|
244 | \r (no-eol) (esc) | |
247 | $ hg remove sub1/.hgsubstate |
|
245 | $ hg remove sub1/.hgsubstate | |
248 | \r (no-eol) (esc) |
|
246 | \r (no-eol) (esc) | |
249 | searching [==========================================>] 1/1\r (no-eol) (esc) |
|
247 | searching [==========================================>] 1/1\r (no-eol) (esc) | |
250 | \r (no-eol) (esc) |
|
248 | \r (no-eol) (esc) | |
251 | \r (no-eol) (esc) |
|
249 | \r (no-eol) (esc) | |
252 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
250 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
253 | \r (no-eol) (esc) |
|
251 | \r (no-eol) (esc) | |
254 | \r (no-eol) (esc) |
|
252 | \r (no-eol) (esc) | |
255 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
253 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
256 | \r (no-eol) (esc) |
|
254 | \r (no-eol) (esc) | |
257 | $ mv sub1/.hgsub sub1/x.hgsub |
|
255 | $ mv sub1/.hgsub sub1/x.hgsub | |
258 | $ hg status -S |
|
256 | $ hg status -S | |
259 | warning: subrepo spec file 'sub1/.hgsub' not found |
|
257 | warning: subrepo spec file 'sub1/.hgsub' not found | |
260 | R sub1/.hgsubstate |
|
258 | R sub1/.hgsubstate | |
261 | R sub1/sub2/folder/test.txt |
|
259 | R sub1/sub2/folder/test.txt | |
262 | ! sub1/.hgsub |
|
260 | ! sub1/.hgsub | |
263 | ? sub1/x.hgsub |
|
261 | ? sub1/x.hgsub | |
264 | $ mv sub1/x.hgsub sub1/.hgsub |
|
262 | $ mv sub1/x.hgsub sub1/.hgsub | |
265 | $ hg update -Cq |
|
263 | $ hg update -Cq | |
266 | $ touch sub1/foo |
|
264 | $ touch sub1/foo | |
267 | $ hg forget sub1/sub2/folder/test.txt |
|
265 | $ hg forget sub1/sub2/folder/test.txt | |
268 | $ rm sub1/sub2/test.txt |
|
266 | $ rm sub1/sub2/test.txt | |
269 |
|
267 | |||
270 | Test relative path printing + subrepos |
|
268 | Test relative path printing + subrepos | |
271 | $ mkdir -p foo/bar |
|
269 | $ mkdir -p foo/bar | |
272 | $ cd foo |
|
270 | $ cd foo | |
273 | $ touch bar/abc |
|
271 | $ touch bar/abc | |
274 | $ hg addremove -S .. |
|
272 | $ hg addremove -S .. | |
275 | \r (no-eol) (esc) |
|
273 | \r (no-eol) (esc) | |
276 | searching for exact renames [ ] 0/1\r (no-eol) (esc) |
|
274 | searching for exact renames [ ] 0/1\r (no-eol) (esc) | |
277 | \r (no-eol) (esc) |
|
275 | \r (no-eol) (esc) | |
278 | adding ../sub1/sub2/folder/test.txt (glob) |
|
276 | adding ../sub1/sub2/folder/test.txt (glob) | |
279 | removing ../sub1/sub2/test.txt (glob) |
|
277 | removing ../sub1/sub2/test.txt (glob) | |
280 | adding ../sub1/foo (glob) |
|
278 | adding ../sub1/foo (glob) | |
281 | adding bar/abc (glob) |
|
279 | adding bar/abc (glob) | |
282 | $ cd .. |
|
280 | $ cd .. | |
283 | $ hg status -S |
|
281 | $ hg status -S | |
284 | A foo/bar/abc |
|
282 | A foo/bar/abc | |
285 | A sub1/foo |
|
283 | A sub1/foo | |
286 | R sub1/sub2/test.txt |
|
284 | R sub1/sub2/test.txt | |
287 |
|
285 | |||
288 | Archive wdir() with subrepos |
|
286 | Archive wdir() with subrepos | |
289 | $ hg rm main |
|
287 | $ hg rm main | |
290 | \r (no-eol) (esc) |
|
288 | \r (no-eol) (esc) | |
291 | deleting [===========================================>] 1/1\r (no-eol) (esc) |
|
289 | deleting [===========================================>] 1/1\r (no-eol) (esc) | |
292 | \r (no-eol) (esc) |
|
290 | \r (no-eol) (esc) | |
293 | $ hg archive -S -r 'wdir()' ../wdir |
|
291 | $ hg archive -S -r 'wdir()' ../wdir | |
294 | \r (no-eol) (esc) |
|
292 | \r (no-eol) (esc) | |
295 | archiving [ ] 0/3\r (no-eol) (esc) |
|
293 | archiving [ ] 0/3\r (no-eol) (esc) | |
296 | archiving [=============> ] 1/3\r (no-eol) (esc) |
|
294 | archiving [=============> ] 1/3\r (no-eol) (esc) | |
297 | archiving [===========================> ] 2/3\r (no-eol) (esc) |
|
295 | archiving [===========================> ] 2/3\r (no-eol) (esc) | |
298 | archiving [==========================================>] 3/3\r (no-eol) (esc) |
|
296 | archiving [==========================================>] 3/3\r (no-eol) (esc) | |
299 | \r (no-eol) (esc) |
|
297 | \r (no-eol) (esc) | |
300 | \r (no-eol) (esc) |
|
298 | \r (no-eol) (esc) | |
301 | archiving (sub1) [ ] 0/4\r (no-eol) (esc) |
|
299 | archiving (sub1) [ ] 0/4\r (no-eol) (esc) | |
302 | archiving (sub1) [========> ] 1/4\r (no-eol) (esc) |
|
300 | archiving (sub1) [========> ] 1/4\r (no-eol) (esc) | |
303 | archiving (sub1) [=================> ] 2/4\r (no-eol) (esc) |
|
301 | archiving (sub1) [=================> ] 2/4\r (no-eol) (esc) | |
304 | archiving (sub1) [==========================> ] 3/4\r (no-eol) (esc) |
|
302 | archiving (sub1) [==========================> ] 3/4\r (no-eol) (esc) | |
305 | archiving (sub1) [===================================>] 4/4\r (no-eol) (esc) |
|
303 | archiving (sub1) [===================================>] 4/4\r (no-eol) (esc) | |
306 | \r (no-eol) (esc) |
|
304 | \r (no-eol) (esc) | |
307 | \r (no-eol) (esc) |
|
305 | \r (no-eol) (esc) | |
308 | archiving (sub1/sub2) [ ] 0/2\r (no-eol) (esc) |
|
306 | archiving (sub1/sub2) [ ] 0/2\r (no-eol) (esc) | |
309 | archiving (sub1/sub2) [==============> ] 1/2\r (no-eol) (esc) |
|
307 | archiving (sub1/sub2) [==============> ] 1/2\r (no-eol) (esc) | |
310 | archiving (sub1/sub2) [==============================>] 2/2\r (no-eol) (esc) |
|
308 | archiving (sub1/sub2) [==============================>] 2/2\r (no-eol) (esc) | |
311 | \r (no-eol) (esc) |
|
309 | \r (no-eol) (esc) | |
312 | $ diff -r . ../wdir | egrep -v '\.hg$|^Common subdirectories:' |
|
310 | $ diff -r . ../wdir | egrep -v '\.hg$|^Common subdirectories:' | |
313 | Only in ../wdir: .hg_archival.txt |
|
311 | Only in ../wdir: .hg_archival.txt | |
314 |
|
312 | |||
315 | $ find ../wdir -type f | sort |
|
313 | $ find ../wdir -type f | sort | |
316 | ../wdir/.hg_archival.txt |
|
314 | ../wdir/.hg_archival.txt | |
317 | ../wdir/.hgsub |
|
315 | ../wdir/.hgsub | |
318 | ../wdir/.hgsubstate |
|
316 | ../wdir/.hgsubstate | |
319 | ../wdir/foo/bar/abc |
|
317 | ../wdir/foo/bar/abc | |
320 | ../wdir/sub1/.hgsub |
|
318 | ../wdir/sub1/.hgsub | |
321 | ../wdir/sub1/.hgsubstate |
|
319 | ../wdir/sub1/.hgsubstate | |
322 | ../wdir/sub1/foo |
|
320 | ../wdir/sub1/foo | |
323 | ../wdir/sub1/sub1 |
|
321 | ../wdir/sub1/sub1 | |
324 | ../wdir/sub1/sub2/folder/test.txt |
|
322 | ../wdir/sub1/sub2/folder/test.txt | |
325 | ../wdir/sub1/sub2/sub2 |
|
323 | ../wdir/sub1/sub2/sub2 | |
326 |
|
324 | |||
327 | $ cat ../wdir/.hg_archival.txt |
|
325 | $ cat ../wdir/.hg_archival.txt | |
328 | repo: 7f491f53a367861f47ee64a80eb997d1f341b77a |
|
326 | repo: 7f491f53a367861f47ee64a80eb997d1f341b77a | |
329 | node: 9bb10eebee29dc0f1201dcf5977b811a540255fd+ |
|
327 | node: 9bb10eebee29dc0f1201dcf5977b811a540255fd+ | |
330 | branch: default |
|
328 | branch: default | |
331 | latesttag: null |
|
329 | latesttag: null | |
332 | latesttagdistance: 4 |
|
330 | latesttagdistance: 4 | |
333 | changessincelatesttag: 4 |
|
331 | changessincelatesttag: 4 | |
334 |
|
332 | |||
335 | Attempting to archive 'wdir()' with a missing file is handled gracefully |
|
333 | Attempting to archive 'wdir()' with a missing file is handled gracefully | |
336 | $ rm sub1/sub1 |
|
334 | $ rm sub1/sub1 | |
337 | $ rm -r ../wdir |
|
335 | $ rm -r ../wdir | |
338 | $ hg archive -v -S -r 'wdir()' ../wdir |
|
336 | $ hg archive -v -S -r 'wdir()' ../wdir | |
339 | \r (no-eol) (esc) |
|
337 | \r (no-eol) (esc) | |
340 | archiving [ ] 0/3\r (no-eol) (esc) |
|
338 | archiving [ ] 0/3\r (no-eol) (esc) | |
341 | archiving [=============> ] 1/3\r (no-eol) (esc) |
|
339 | archiving [=============> ] 1/3\r (no-eol) (esc) | |
342 | archiving [===========================> ] 2/3\r (no-eol) (esc) |
|
340 | archiving [===========================> ] 2/3\r (no-eol) (esc) | |
343 | archiving [==========================================>] 3/3\r (no-eol) (esc) |
|
341 | archiving [==========================================>] 3/3\r (no-eol) (esc) | |
344 | \r (no-eol) (esc) |
|
342 | \r (no-eol) (esc) | |
345 | \r (no-eol) (esc) |
|
343 | \r (no-eol) (esc) | |
346 | archiving (sub1) [ ] 0/3\r (no-eol) (esc) |
|
344 | archiving (sub1) [ ] 0/3\r (no-eol) (esc) | |
347 | archiving (sub1) [===========> ] 1/3\r (no-eol) (esc) |
|
345 | archiving (sub1) [===========> ] 1/3\r (no-eol) (esc) | |
348 | archiving (sub1) [=======================> ] 2/3\r (no-eol) (esc) |
|
346 | archiving (sub1) [=======================> ] 2/3\r (no-eol) (esc) | |
349 | archiving (sub1) [===================================>] 3/3\r (no-eol) (esc) |
|
347 | archiving (sub1) [===================================>] 3/3\r (no-eol) (esc) | |
350 | \r (no-eol) (esc) |
|
348 | \r (no-eol) (esc) | |
351 | \r (no-eol) (esc) |
|
349 | \r (no-eol) (esc) | |
352 | archiving (sub1/sub2) [ ] 0/2\r (no-eol) (esc) |
|
350 | archiving (sub1/sub2) [ ] 0/2\r (no-eol) (esc) | |
353 | archiving (sub1/sub2) [==============> ] 1/2\r (no-eol) (esc) |
|
351 | archiving (sub1/sub2) [==============> ] 1/2\r (no-eol) (esc) | |
354 | archiving (sub1/sub2) [==============================>] 2/2\r (no-eol) (esc) |
|
352 | archiving (sub1/sub2) [==============================>] 2/2\r (no-eol) (esc) | |
355 | \r (no-eol) (esc) |
|
353 | \r (no-eol) (esc) | |
356 | $ find ../wdir -type f | sort |
|
354 | $ find ../wdir -type f | sort | |
357 | ../wdir/.hg_archival.txt |
|
355 | ../wdir/.hg_archival.txt | |
358 | ../wdir/.hgsub |
|
356 | ../wdir/.hgsub | |
359 | ../wdir/.hgsubstate |
|
357 | ../wdir/.hgsubstate | |
360 | ../wdir/foo/bar/abc |
|
358 | ../wdir/foo/bar/abc | |
361 | ../wdir/sub1/.hgsub |
|
359 | ../wdir/sub1/.hgsub | |
362 | ../wdir/sub1/.hgsubstate |
|
360 | ../wdir/sub1/.hgsubstate | |
363 | ../wdir/sub1/foo |
|
361 | ../wdir/sub1/foo | |
364 | ../wdir/sub1/sub2/folder/test.txt |
|
362 | ../wdir/sub1/sub2/folder/test.txt | |
365 | ../wdir/sub1/sub2/sub2 |
|
363 | ../wdir/sub1/sub2/sub2 | |
366 |
|
364 | |||
367 | Continue relative path printing + subrepos |
|
365 | Continue relative path printing + subrepos | |
368 | $ hg update -Cq |
|
366 | $ hg update -Cq | |
369 | $ rm -r ../wdir |
|
367 | $ rm -r ../wdir | |
370 | $ hg archive -S -r 'wdir()' ../wdir |
|
368 | $ hg archive -S -r 'wdir()' ../wdir | |
371 | \r (no-eol) (esc) |
|
369 | \r (no-eol) (esc) | |
372 | archiving [ ] 0/3\r (no-eol) (esc) |
|
370 | archiving [ ] 0/3\r (no-eol) (esc) | |
373 | archiving [=============> ] 1/3\r (no-eol) (esc) |
|
371 | archiving [=============> ] 1/3\r (no-eol) (esc) | |
374 | archiving [===========================> ] 2/3\r (no-eol) (esc) |
|
372 | archiving [===========================> ] 2/3\r (no-eol) (esc) | |
375 | archiving [==========================================>] 3/3\r (no-eol) (esc) |
|
373 | archiving [==========================================>] 3/3\r (no-eol) (esc) | |
376 | \r (no-eol) (esc) |
|
374 | \r (no-eol) (esc) | |
377 | \r (no-eol) (esc) |
|
375 | \r (no-eol) (esc) | |
378 | archiving (sub1) [ ] 0/3\r (no-eol) (esc) |
|
376 | archiving (sub1) [ ] 0/3\r (no-eol) (esc) | |
379 | archiving (sub1) [===========> ] 1/3\r (no-eol) (esc) |
|
377 | archiving (sub1) [===========> ] 1/3\r (no-eol) (esc) | |
380 | archiving (sub1) [=======================> ] 2/3\r (no-eol) (esc) |
|
378 | archiving (sub1) [=======================> ] 2/3\r (no-eol) (esc) | |
381 | archiving (sub1) [===================================>] 3/3\r (no-eol) (esc) |
|
379 | archiving (sub1) [===================================>] 3/3\r (no-eol) (esc) | |
382 | \r (no-eol) (esc) |
|
380 | \r (no-eol) (esc) | |
383 | \r (no-eol) (esc) |
|
381 | \r (no-eol) (esc) | |
384 | archiving (sub1/sub2) [ ] 0/3\r (no-eol) (esc) |
|
382 | archiving (sub1/sub2) [ ] 0/3\r (no-eol) (esc) | |
385 | archiving (sub1/sub2) [=========> ] 1/3\r (no-eol) (esc) |
|
383 | archiving (sub1/sub2) [=========> ] 1/3\r (no-eol) (esc) | |
386 | archiving (sub1/sub2) [===================> ] 2/3\r (no-eol) (esc) |
|
384 | archiving (sub1/sub2) [===================> ] 2/3\r (no-eol) (esc) | |
387 | archiving (sub1/sub2) [==============================>] 3/3\r (no-eol) (esc) |
|
385 | archiving (sub1/sub2) [==============================>] 3/3\r (no-eol) (esc) | |
388 | \r (no-eol) (esc) |
|
386 | \r (no-eol) (esc) | |
389 | $ cat ../wdir/.hg_archival.txt |
|
387 | $ cat ../wdir/.hg_archival.txt | |
390 | repo: 7f491f53a367861f47ee64a80eb997d1f341b77a |
|
388 | repo: 7f491f53a367861f47ee64a80eb997d1f341b77a | |
391 | node: 9bb10eebee29dc0f1201dcf5977b811a540255fd |
|
389 | node: 9bb10eebee29dc0f1201dcf5977b811a540255fd | |
392 | branch: default |
|
390 | branch: default | |
393 | latesttag: null |
|
391 | latesttag: null | |
394 | latesttagdistance: 4 |
|
392 | latesttagdistance: 4 | |
395 | changessincelatesttag: 4 |
|
393 | changessincelatesttag: 4 | |
396 |
|
394 | |||
397 | $ touch sub1/sub2/folder/bar |
|
395 | $ touch sub1/sub2/folder/bar | |
398 | $ hg addremove sub1/sub2 |
|
396 | $ hg addremove sub1/sub2 | |
399 | adding sub1/sub2/folder/bar (glob) |
|
397 | adding sub1/sub2/folder/bar (glob) | |
400 | $ hg status -S |
|
398 | $ hg status -S | |
401 | A sub1/sub2/folder/bar |
|
399 | A sub1/sub2/folder/bar | |
402 | ? foo/bar/abc |
|
400 | ? foo/bar/abc | |
403 | ? sub1/foo |
|
401 | ? sub1/foo | |
404 | $ hg update -Cq |
|
402 | $ hg update -Cq | |
405 | $ hg addremove sub1 |
|
403 | $ hg addremove sub1 | |
406 | adding sub1/sub2/folder/bar (glob) |
|
404 | adding sub1/sub2/folder/bar (glob) | |
407 | adding sub1/foo (glob) |
|
405 | adding sub1/foo (glob) | |
408 | $ hg update -Cq |
|
406 | $ hg update -Cq | |
409 | $ rm sub1/sub2/folder/test.txt |
|
407 | $ rm sub1/sub2/folder/test.txt | |
410 | $ rm sub1/sub2/test.txt |
|
408 | $ rm sub1/sub2/test.txt | |
411 | $ hg ci -ASm "remove test.txt" |
|
409 | $ hg ci -ASm "remove test.txt" | |
412 | adding sub1/sub2/folder/bar |
|
410 | adding sub1/sub2/folder/bar | |
413 | removing sub1/sub2/folder/test.txt |
|
411 | removing sub1/sub2/folder/test.txt | |
414 | removing sub1/sub2/test.txt |
|
412 | removing sub1/sub2/test.txt | |
415 | adding sub1/foo |
|
413 | adding sub1/foo | |
416 | adding foo/bar/abc |
|
414 | adding foo/bar/abc | |
417 | committing subrepository sub1 |
|
415 | committing subrepository sub1 | |
418 | committing subrepository sub1/sub2 (glob) |
|
416 | committing subrepository sub1/sub2 (glob) | |
419 |
|
417 | |||
420 | $ hg forget sub1/sub2/sub2 |
|
418 | $ hg forget sub1/sub2/sub2 | |
421 | $ echo x > sub1/sub2/x.txt |
|
419 | $ echo x > sub1/sub2/x.txt | |
422 | $ hg add sub1/sub2/x.txt |
|
420 | $ hg add sub1/sub2/x.txt | |
423 |
|
421 | |||
424 | Files sees uncommitted adds and removes in subrepos |
|
422 | Files sees uncommitted adds and removes in subrepos | |
425 | $ hg files -S |
|
423 | $ hg files -S | |
426 | .hgsub |
|
424 | .hgsub | |
427 | .hgsubstate |
|
425 | .hgsubstate | |
428 | foo/bar/abc (glob) |
|
426 | foo/bar/abc (glob) | |
429 | main |
|
427 | main | |
430 | sub1/.hgsub (glob) |
|
428 | sub1/.hgsub (glob) | |
431 | sub1/.hgsubstate (glob) |
|
429 | sub1/.hgsubstate (glob) | |
432 | sub1/foo (glob) |
|
430 | sub1/foo (glob) | |
433 | sub1/sub1 (glob) |
|
431 | sub1/sub1 (glob) | |
434 | sub1/sub2/folder/bar (glob) |
|
432 | sub1/sub2/folder/bar (glob) | |
435 | sub1/sub2/x.txt (glob) |
|
433 | sub1/sub2/x.txt (glob) | |
436 |
|
434 | |||
437 | $ hg files -S "set:eol('dos') or eol('unix') or size('<= 0')" |
|
435 | $ hg files -S "set:eol('dos') or eol('unix') or size('<= 0')" | |
438 | .hgsub |
|
436 | .hgsub | |
439 | .hgsubstate |
|
437 | .hgsubstate | |
440 | foo/bar/abc (glob) |
|
438 | foo/bar/abc (glob) | |
441 | main |
|
439 | main | |
442 | sub1/.hgsub (glob) |
|
440 | sub1/.hgsub (glob) | |
443 | sub1/.hgsubstate (glob) |
|
441 | sub1/.hgsubstate (glob) | |
444 | sub1/foo (glob) |
|
442 | sub1/foo (glob) | |
445 | sub1/sub1 (glob) |
|
443 | sub1/sub1 (glob) | |
446 | sub1/sub2/folder/bar (glob) |
|
444 | sub1/sub2/folder/bar (glob) | |
447 | sub1/sub2/x.txt (glob) |
|
445 | sub1/sub2/x.txt (glob) | |
448 |
|
446 | |||
449 | $ hg files -r '.^' -S "set:eol('dos') or eol('unix')" |
|
447 | $ hg files -r '.^' -S "set:eol('dos') or eol('unix')" | |
450 | .hgsub |
|
448 | .hgsub | |
451 | .hgsubstate |
|
449 | .hgsubstate | |
452 | main |
|
450 | main | |
453 | sub1/.hgsub (glob) |
|
451 | sub1/.hgsub (glob) | |
454 | sub1/.hgsubstate (glob) |
|
452 | sub1/.hgsubstate (glob) | |
455 | sub1/sub1 (glob) |
|
453 | sub1/sub1 (glob) | |
456 | sub1/sub2/folder/test.txt (glob) |
|
454 | sub1/sub2/folder/test.txt (glob) | |
457 | sub1/sub2/sub2 (glob) |
|
455 | sub1/sub2/sub2 (glob) | |
458 | sub1/sub2/test.txt (glob) |
|
456 | sub1/sub2/test.txt (glob) | |
459 |
|
457 | |||
460 | $ hg files sub1 |
|
458 | $ hg files sub1 | |
461 | sub1/.hgsub (glob) |
|
459 | sub1/.hgsub (glob) | |
462 | sub1/.hgsubstate (glob) |
|
460 | sub1/.hgsubstate (glob) | |
463 | sub1/foo (glob) |
|
461 | sub1/foo (glob) | |
464 | sub1/sub1 (glob) |
|
462 | sub1/sub1 (glob) | |
465 | sub1/sub2/folder/bar (glob) |
|
463 | sub1/sub2/folder/bar (glob) | |
466 | sub1/sub2/x.txt (glob) |
|
464 | sub1/sub2/x.txt (glob) | |
467 |
|
465 | |||
468 | $ hg files sub1/sub2 |
|
466 | $ hg files sub1/sub2 | |
469 | sub1/sub2/folder/bar (glob) |
|
467 | sub1/sub2/folder/bar (glob) | |
470 | sub1/sub2/x.txt (glob) |
|
468 | sub1/sub2/x.txt (glob) | |
471 |
|
469 | |||
472 | $ hg files |
|
470 | $ hg files | |
473 | .hgsub |
|
471 | .hgsub | |
474 | .hgsubstate |
|
472 | .hgsubstate | |
475 | foo/bar/abc (glob) |
|
473 | foo/bar/abc (glob) | |
476 | main |
|
474 | main | |
477 |
|
475 | |||
478 | $ hg files -S -r '.^' sub1/sub2/folder |
|
476 | $ hg files -S -r '.^' sub1/sub2/folder | |
479 | sub1/sub2/folder/test.txt (glob) |
|
477 | sub1/sub2/folder/test.txt (glob) | |
480 |
|
478 | |||
481 | $ hg files -S -r '.^' sub1/sub2/missing |
|
479 | $ hg files -S -r '.^' sub1/sub2/missing | |
482 | sub1/sub2/missing: no such file in rev 78026e779ea6 (glob) |
|
480 | sub1/sub2/missing: no such file in rev 78026e779ea6 (glob) | |
483 | [1] |
|
481 | [1] | |
484 |
|
482 | |||
485 | $ hg files -r '.^' sub1/ |
|
483 | $ hg files -r '.^' sub1/ | |
486 | sub1/.hgsub (glob) |
|
484 | sub1/.hgsub (glob) | |
487 | sub1/.hgsubstate (glob) |
|
485 | sub1/.hgsubstate (glob) | |
488 | sub1/sub1 (glob) |
|
486 | sub1/sub1 (glob) | |
489 | sub1/sub2/folder/test.txt (glob) |
|
487 | sub1/sub2/folder/test.txt (glob) | |
490 | sub1/sub2/sub2 (glob) |
|
488 | sub1/sub2/sub2 (glob) | |
491 | sub1/sub2/test.txt (glob) |
|
489 | sub1/sub2/test.txt (glob) | |
492 |
|
490 | |||
493 | $ hg files -r '.^' sub1/sub2 |
|
491 | $ hg files -r '.^' sub1/sub2 | |
494 | sub1/sub2/folder/test.txt (glob) |
|
492 | sub1/sub2/folder/test.txt (glob) | |
495 | sub1/sub2/sub2 (glob) |
|
493 | sub1/sub2/sub2 (glob) | |
496 | sub1/sub2/test.txt (glob) |
|
494 | sub1/sub2/test.txt (glob) | |
497 |
|
495 | |||
498 | $ hg rollback -q |
|
496 | $ hg rollback -q | |
499 | $ hg up -Cq |
|
497 | $ hg up -Cq | |
500 |
|
498 | |||
501 | $ hg --config extensions.largefiles=! archive -S ../archive_all |
|
499 | $ hg --config extensions.largefiles=! archive -S ../archive_all | |
502 | \r (no-eol) (esc) |
|
500 | \r (no-eol) (esc) | |
503 | archiving [ ] 0/3\r (no-eol) (esc) |
|
501 | archiving [ ] 0/3\r (no-eol) (esc) | |
504 | archiving [=============> ] 1/3\r (no-eol) (esc) |
|
502 | archiving [=============> ] 1/3\r (no-eol) (esc) | |
505 | archiving [===========================> ] 2/3\r (no-eol) (esc) |
|
503 | archiving [===========================> ] 2/3\r (no-eol) (esc) | |
506 | archiving [==========================================>] 3/3\r (no-eol) (esc) |
|
504 | archiving [==========================================>] 3/3\r (no-eol) (esc) | |
507 | \r (no-eol) (esc) |
|
505 | \r (no-eol) (esc) | |
508 | \r (no-eol) (esc) |
|
506 | \r (no-eol) (esc) | |
509 | archiving (sub1) [ ] 0/3\r (no-eol) (esc) |
|
507 | archiving (sub1) [ ] 0/3\r (no-eol) (esc) | |
510 | archiving (sub1) [===========> ] 1/3\r (no-eol) (esc) |
|
508 | archiving (sub1) [===========> ] 1/3\r (no-eol) (esc) | |
511 | archiving (sub1) [=======================> ] 2/3\r (no-eol) (esc) |
|
509 | archiving (sub1) [=======================> ] 2/3\r (no-eol) (esc) | |
512 | archiving (sub1) [===================================>] 3/3\r (no-eol) (esc) |
|
510 | archiving (sub1) [===================================>] 3/3\r (no-eol) (esc) | |
513 | \r (no-eol) (esc) |
|
511 | \r (no-eol) (esc) | |
514 | \r (no-eol) (esc) |
|
512 | \r (no-eol) (esc) | |
515 | archiving (sub1/sub2) [ ] 0/3\r (no-eol) (esc) |
|
513 | archiving (sub1/sub2) [ ] 0/3\r (no-eol) (esc) | |
516 | archiving (sub1/sub2) [=========> ] 1/3\r (no-eol) (esc) |
|
514 | archiving (sub1/sub2) [=========> ] 1/3\r (no-eol) (esc) | |
517 | archiving (sub1/sub2) [===================> ] 2/3\r (no-eol) (esc) |
|
515 | archiving (sub1/sub2) [===================> ] 2/3\r (no-eol) (esc) | |
518 | archiving (sub1/sub2) [==============================>] 3/3\r (no-eol) (esc) |
|
516 | archiving (sub1/sub2) [==============================>] 3/3\r (no-eol) (esc) | |
519 | \r (no-eol) (esc) |
|
517 | \r (no-eol) (esc) | |
520 | $ find ../archive_all | sort |
|
518 | $ find ../archive_all | sort | |
521 | ../archive_all |
|
519 | ../archive_all | |
522 | ../archive_all/.hg_archival.txt |
|
520 | ../archive_all/.hg_archival.txt | |
523 | ../archive_all/.hgsub |
|
521 | ../archive_all/.hgsub | |
524 | ../archive_all/.hgsubstate |
|
522 | ../archive_all/.hgsubstate | |
525 | ../archive_all/main |
|
523 | ../archive_all/main | |
526 | ../archive_all/sub1 |
|
524 | ../archive_all/sub1 | |
527 | ../archive_all/sub1/.hgsub |
|
525 | ../archive_all/sub1/.hgsub | |
528 | ../archive_all/sub1/.hgsubstate |
|
526 | ../archive_all/sub1/.hgsubstate | |
529 | ../archive_all/sub1/sub1 |
|
527 | ../archive_all/sub1/sub1 | |
530 | ../archive_all/sub1/sub2 |
|
528 | ../archive_all/sub1/sub2 | |
531 | ../archive_all/sub1/sub2/folder |
|
529 | ../archive_all/sub1/sub2/folder | |
532 | ../archive_all/sub1/sub2/folder/test.txt |
|
530 | ../archive_all/sub1/sub2/folder/test.txt | |
533 | ../archive_all/sub1/sub2/sub2 |
|
531 | ../archive_all/sub1/sub2/sub2 | |
534 | ../archive_all/sub1/sub2/test.txt |
|
532 | ../archive_all/sub1/sub2/test.txt | |
535 |
|
533 | |||
536 | Check that archive -X works in deep subrepos |
|
534 | Check that archive -X works in deep subrepos | |
537 |
|
535 | |||
538 | $ hg --config extensions.largefiles=! archive -S -X '**test*' ../archive_exclude |
|
536 | $ hg --config extensions.largefiles=! archive -S -X '**test*' ../archive_exclude | |
539 | \r (no-eol) (esc) |
|
537 | \r (no-eol) (esc) | |
540 | archiving [ ] 0/3\r (no-eol) (esc) |
|
538 | archiving [ ] 0/3\r (no-eol) (esc) | |
541 | archiving [=============> ] 1/3\r (no-eol) (esc) |
|
539 | archiving [=============> ] 1/3\r (no-eol) (esc) | |
542 | archiving [===========================> ] 2/3\r (no-eol) (esc) |
|
540 | archiving [===========================> ] 2/3\r (no-eol) (esc) | |
543 | archiving [==========================================>] 3/3\r (no-eol) (esc) |
|
541 | archiving [==========================================>] 3/3\r (no-eol) (esc) | |
544 | \r (no-eol) (esc) |
|
542 | \r (no-eol) (esc) | |
545 | \r (no-eol) (esc) |
|
543 | \r (no-eol) (esc) | |
546 | archiving (sub1) [ ] 0/3\r (no-eol) (esc) |
|
544 | archiving (sub1) [ ] 0/3\r (no-eol) (esc) | |
547 | archiving (sub1) [===========> ] 1/3\r (no-eol) (esc) |
|
545 | archiving (sub1) [===========> ] 1/3\r (no-eol) (esc) | |
548 | archiving (sub1) [=======================> ] 2/3\r (no-eol) (esc) |
|
546 | archiving (sub1) [=======================> ] 2/3\r (no-eol) (esc) | |
549 | archiving (sub1) [===================================>] 3/3\r (no-eol) (esc) |
|
547 | archiving (sub1) [===================================>] 3/3\r (no-eol) (esc) | |
550 | \r (no-eol) (esc) |
|
548 | \r (no-eol) (esc) | |
551 | \r (no-eol) (esc) |
|
549 | \r (no-eol) (esc) | |
552 | archiving (sub1/sub2) [ ] 0/1\r (no-eol) (esc) |
|
550 | archiving (sub1/sub2) [ ] 0/1\r (no-eol) (esc) | |
553 | archiving (sub1/sub2) [==============================>] 1/1\r (no-eol) (esc) |
|
551 | archiving (sub1/sub2) [==============================>] 1/1\r (no-eol) (esc) | |
554 | \r (no-eol) (esc) |
|
552 | \r (no-eol) (esc) | |
555 | $ find ../archive_exclude | sort |
|
553 | $ find ../archive_exclude | sort | |
556 | ../archive_exclude |
|
554 | ../archive_exclude | |
557 | ../archive_exclude/.hg_archival.txt |
|
555 | ../archive_exclude/.hg_archival.txt | |
558 | ../archive_exclude/.hgsub |
|
556 | ../archive_exclude/.hgsub | |
559 | ../archive_exclude/.hgsubstate |
|
557 | ../archive_exclude/.hgsubstate | |
560 | ../archive_exclude/main |
|
558 | ../archive_exclude/main | |
561 | ../archive_exclude/sub1 |
|
559 | ../archive_exclude/sub1 | |
562 | ../archive_exclude/sub1/.hgsub |
|
560 | ../archive_exclude/sub1/.hgsub | |
563 | ../archive_exclude/sub1/.hgsubstate |
|
561 | ../archive_exclude/sub1/.hgsubstate | |
564 | ../archive_exclude/sub1/sub1 |
|
562 | ../archive_exclude/sub1/sub1 | |
565 | ../archive_exclude/sub1/sub2 |
|
563 | ../archive_exclude/sub1/sub2 | |
566 | ../archive_exclude/sub1/sub2/sub2 |
|
564 | ../archive_exclude/sub1/sub2/sub2 | |
567 |
|
565 | |||
568 | $ hg --config extensions.largefiles=! archive -S -I '**test*' ../archive_include |
|
566 | $ hg --config extensions.largefiles=! archive -S -I '**test*' ../archive_include | |
569 | \r (no-eol) (esc) |
|
567 | \r (no-eol) (esc) | |
570 | archiving (sub1) [ <=> ] 0\r (no-eol) (esc) |
|
568 | archiving (sub1) [ <=> ] 0\r (no-eol) (esc) | |
571 | \r (no-eol) (esc) |
|
569 | \r (no-eol) (esc) | |
572 | \r (no-eol) (esc) |
|
570 | \r (no-eol) (esc) | |
573 | archiving (sub1/sub2) [ ] 0/2\r (no-eol) (esc) |
|
571 | archiving (sub1/sub2) [ ] 0/2\r (no-eol) (esc) | |
574 | archiving (sub1/sub2) [==============> ] 1/2\r (no-eol) (esc) |
|
572 | archiving (sub1/sub2) [==============> ] 1/2\r (no-eol) (esc) | |
575 | archiving (sub1/sub2) [==============================>] 2/2\r (no-eol) (esc) |
|
573 | archiving (sub1/sub2) [==============================>] 2/2\r (no-eol) (esc) | |
576 | \r (no-eol) (esc) |
|
574 | \r (no-eol) (esc) | |
577 | $ find ../archive_include | sort |
|
575 | $ find ../archive_include | sort | |
578 | ../archive_include |
|
576 | ../archive_include | |
579 | ../archive_include/sub1 |
|
577 | ../archive_include/sub1 | |
580 | ../archive_include/sub1/sub2 |
|
578 | ../archive_include/sub1/sub2 | |
581 | ../archive_include/sub1/sub2/folder |
|
579 | ../archive_include/sub1/sub2/folder | |
582 | ../archive_include/sub1/sub2/folder/test.txt |
|
580 | ../archive_include/sub1/sub2/folder/test.txt | |
583 | ../archive_include/sub1/sub2/test.txt |
|
581 | ../archive_include/sub1/sub2/test.txt | |
584 |
|
582 | |||
585 | Check that deep archive works with largefiles (which overrides hgsubrepo impl) |
|
583 | Check that deep archive works with largefiles (which overrides hgsubrepo impl) | |
586 | This also tests the repo.ui regression in 43fb170a23bd, and that lf subrepo |
|
584 | This also tests the repo.ui regression in 43fb170a23bd, and that lf subrepo | |
587 | subrepos are archived properly. |
|
585 | subrepos are archived properly. | |
588 | Note that add --large through a subrepo currently adds the file as a normal file |
|
586 | Note that add --large through a subrepo currently adds the file as a normal file | |
589 |
|
587 | |||
590 | $ echo "large" > sub1/sub2/large.bin |
|
588 | $ echo "large" > sub1/sub2/large.bin | |
591 | $ hg --config extensions.largefiles= add --large -R sub1/sub2 sub1/sub2/large.bin |
|
589 | $ hg --config extensions.largefiles= add --large -R sub1/sub2 sub1/sub2/large.bin | |
592 | $ echo "large" > large.bin |
|
590 | $ echo "large" > large.bin | |
593 | $ hg --config extensions.largefiles= add --large large.bin |
|
591 | $ hg --config extensions.largefiles= add --large large.bin | |
594 | $ hg --config extensions.largefiles= ci -S -m "add large files" |
|
592 | $ hg --config extensions.largefiles= ci -S -m "add large files" | |
595 | committing subrepository sub1 |
|
593 | committing subrepository sub1 | |
596 | committing subrepository sub1/sub2 (glob) |
|
594 | committing subrepository sub1/sub2 (glob) | |
597 |
|
595 | |||
598 | $ hg --config extensions.largefiles= archive -S ../archive_lf |
|
596 | $ hg --config extensions.largefiles= archive -S ../archive_lf | |
599 | $ find ../archive_lf | sort |
|
597 | $ find ../archive_lf | sort | |
600 | ../archive_lf |
|
598 | ../archive_lf | |
601 | ../archive_lf/.hg_archival.txt |
|
599 | ../archive_lf/.hg_archival.txt | |
602 | ../archive_lf/.hgsub |
|
600 | ../archive_lf/.hgsub | |
603 | ../archive_lf/.hgsubstate |
|
601 | ../archive_lf/.hgsubstate | |
604 | ../archive_lf/large.bin |
|
602 | ../archive_lf/large.bin | |
605 | ../archive_lf/main |
|
603 | ../archive_lf/main | |
606 | ../archive_lf/sub1 |
|
604 | ../archive_lf/sub1 | |
607 | ../archive_lf/sub1/.hgsub |
|
605 | ../archive_lf/sub1/.hgsub | |
608 | ../archive_lf/sub1/.hgsubstate |
|
606 | ../archive_lf/sub1/.hgsubstate | |
609 | ../archive_lf/sub1/sub1 |
|
607 | ../archive_lf/sub1/sub1 | |
610 | ../archive_lf/sub1/sub2 |
|
608 | ../archive_lf/sub1/sub2 | |
611 | ../archive_lf/sub1/sub2/folder |
|
609 | ../archive_lf/sub1/sub2/folder | |
612 | ../archive_lf/sub1/sub2/folder/test.txt |
|
610 | ../archive_lf/sub1/sub2/folder/test.txt | |
613 | ../archive_lf/sub1/sub2/large.bin |
|
611 | ../archive_lf/sub1/sub2/large.bin | |
614 | ../archive_lf/sub1/sub2/sub2 |
|
612 | ../archive_lf/sub1/sub2/sub2 | |
615 | ../archive_lf/sub1/sub2/test.txt |
|
613 | ../archive_lf/sub1/sub2/test.txt | |
616 | $ rm -rf ../archive_lf |
|
614 | $ rm -rf ../archive_lf | |
617 |
|
615 | |||
618 | Exclude large files from main and sub-sub repo |
|
616 | Exclude large files from main and sub-sub repo | |
619 |
|
617 | |||
620 | $ hg --config extensions.largefiles= archive -S -X '**.bin' ../archive_lf |
|
618 | $ hg --config extensions.largefiles= archive -S -X '**.bin' ../archive_lf | |
621 | $ find ../archive_lf | sort |
|
619 | $ find ../archive_lf | sort | |
622 | ../archive_lf |
|
620 | ../archive_lf | |
623 | ../archive_lf/.hg_archival.txt |
|
621 | ../archive_lf/.hg_archival.txt | |
624 | ../archive_lf/.hgsub |
|
622 | ../archive_lf/.hgsub | |
625 | ../archive_lf/.hgsubstate |
|
623 | ../archive_lf/.hgsubstate | |
626 | ../archive_lf/main |
|
624 | ../archive_lf/main | |
627 | ../archive_lf/sub1 |
|
625 | ../archive_lf/sub1 | |
628 | ../archive_lf/sub1/.hgsub |
|
626 | ../archive_lf/sub1/.hgsub | |
629 | ../archive_lf/sub1/.hgsubstate |
|
627 | ../archive_lf/sub1/.hgsubstate | |
630 | ../archive_lf/sub1/sub1 |
|
628 | ../archive_lf/sub1/sub1 | |
631 | ../archive_lf/sub1/sub2 |
|
629 | ../archive_lf/sub1/sub2 | |
632 | ../archive_lf/sub1/sub2/folder |
|
630 | ../archive_lf/sub1/sub2/folder | |
633 | ../archive_lf/sub1/sub2/folder/test.txt |
|
631 | ../archive_lf/sub1/sub2/folder/test.txt | |
634 | ../archive_lf/sub1/sub2/sub2 |
|
632 | ../archive_lf/sub1/sub2/sub2 | |
635 | ../archive_lf/sub1/sub2/test.txt |
|
633 | ../archive_lf/sub1/sub2/test.txt | |
636 | $ rm -rf ../archive_lf |
|
634 | $ rm -rf ../archive_lf | |
637 |
|
635 | |||
638 | Exclude normal files from main and sub-sub repo |
|
636 | Exclude normal files from main and sub-sub repo | |
639 |
|
637 | |||
640 | $ hg --config extensions.largefiles= archive -S -X '**.txt' -p '.' ../archive_lf.tgz |
|
638 | $ hg --config extensions.largefiles= archive -S -X '**.txt' -p '.' ../archive_lf.tgz | |
641 | $ tar -tzf ../archive_lf.tgz | sort |
|
639 | $ tar -tzf ../archive_lf.tgz | sort | |
642 | .hgsub |
|
640 | .hgsub | |
643 | .hgsubstate |
|
641 | .hgsubstate | |
644 | large.bin |
|
642 | large.bin | |
645 | main |
|
643 | main | |
646 | sub1/.hgsub |
|
644 | sub1/.hgsub | |
647 | sub1/.hgsubstate |
|
645 | sub1/.hgsubstate | |
648 | sub1/sub1 |
|
646 | sub1/sub1 | |
649 | sub1/sub2/large.bin |
|
647 | sub1/sub2/large.bin | |
650 | sub1/sub2/sub2 |
|
648 | sub1/sub2/sub2 | |
651 |
|
649 | |||
652 | Include normal files from within a largefiles subrepo |
|
650 | Include normal files from within a largefiles subrepo | |
653 |
|
651 | |||
654 | $ hg --config extensions.largefiles= archive -S -I '**.txt' ../archive_lf |
|
652 | $ hg --config extensions.largefiles= archive -S -I '**.txt' ../archive_lf | |
655 | $ find ../archive_lf | sort |
|
653 | $ find ../archive_lf | sort | |
656 | ../archive_lf |
|
654 | ../archive_lf | |
657 | ../archive_lf/.hg_archival.txt |
|
655 | ../archive_lf/.hg_archival.txt | |
658 | ../archive_lf/sub1 |
|
656 | ../archive_lf/sub1 | |
659 | ../archive_lf/sub1/sub2 |
|
657 | ../archive_lf/sub1/sub2 | |
660 | ../archive_lf/sub1/sub2/folder |
|
658 | ../archive_lf/sub1/sub2/folder | |
661 | ../archive_lf/sub1/sub2/folder/test.txt |
|
659 | ../archive_lf/sub1/sub2/folder/test.txt | |
662 | ../archive_lf/sub1/sub2/test.txt |
|
660 | ../archive_lf/sub1/sub2/test.txt | |
663 | $ rm -rf ../archive_lf |
|
661 | $ rm -rf ../archive_lf | |
664 |
|
662 | |||
665 | Include large files from within a largefiles subrepo |
|
663 | Include large files from within a largefiles subrepo | |
666 |
|
664 | |||
667 | $ hg --config extensions.largefiles= archive -S -I '**.bin' ../archive_lf |
|
665 | $ hg --config extensions.largefiles= archive -S -I '**.bin' ../archive_lf | |
668 | $ find ../archive_lf | sort |
|
666 | $ find ../archive_lf | sort | |
669 | ../archive_lf |
|
667 | ../archive_lf | |
670 | ../archive_lf/large.bin |
|
668 | ../archive_lf/large.bin | |
671 | ../archive_lf/sub1 |
|
669 | ../archive_lf/sub1 | |
672 | ../archive_lf/sub1/sub2 |
|
670 | ../archive_lf/sub1/sub2 | |
673 | ../archive_lf/sub1/sub2/large.bin |
|
671 | ../archive_lf/sub1/sub2/large.bin | |
674 | $ rm -rf ../archive_lf |
|
672 | $ rm -rf ../archive_lf | |
675 |
|
673 | |||
676 | Find an exact largefile match in a largefiles subrepo |
|
674 | Find an exact largefile match in a largefiles subrepo | |
677 |
|
675 | |||
678 | $ hg --config extensions.largefiles= archive -S -I 'sub1/sub2/large.bin' ../archive_lf |
|
676 | $ hg --config extensions.largefiles= archive -S -I 'sub1/sub2/large.bin' ../archive_lf | |
679 | $ find ../archive_lf | sort |
|
677 | $ find ../archive_lf | sort | |
680 | ../archive_lf |
|
678 | ../archive_lf | |
681 | ../archive_lf/sub1 |
|
679 | ../archive_lf/sub1 | |
682 | ../archive_lf/sub1/sub2 |
|
680 | ../archive_lf/sub1/sub2 | |
683 | ../archive_lf/sub1/sub2/large.bin |
|
681 | ../archive_lf/sub1/sub2/large.bin | |
684 | $ rm -rf ../archive_lf |
|
682 | $ rm -rf ../archive_lf | |
685 |
|
683 | |||
686 | The local repo enables largefiles if a largefiles repo is cloned |
|
684 | The local repo enables largefiles if a largefiles repo is cloned | |
687 | $ hg showconfig extensions |
|
685 | $ hg showconfig extensions | |
688 | abort: repository requires features unknown to this Mercurial: largefiles! |
|
686 | abort: repository requires features unknown to this Mercurial: largefiles! | |
689 | (see https://mercurial-scm.org/wiki/MissingRequirement for more information) |
|
687 | (see https://mercurial-scm.org/wiki/MissingRequirement for more information) | |
690 | [255] |
|
688 | [255] | |
691 | $ hg --config extensions.largefiles= clone -qU . ../lfclone |
|
689 | $ hg --config extensions.largefiles= clone -qU . ../lfclone | |
692 | $ cat ../lfclone/.hg/hgrc |
|
690 | $ cat ../lfclone/.hg/hgrc | |
693 | # example repository config (see "hg help config" for more info) |
|
691 | # example repository config (see "hg help config" for more info) | |
694 | [paths] |
|
692 | [paths] | |
695 | default = $TESTTMP/cloned (glob) |
|
693 | default = $TESTTMP/cloned (glob) | |
696 |
|
694 | |||
697 | # path aliases to other clones of this repo in URLs or filesystem paths |
|
695 | # path aliases to other clones of this repo in URLs or filesystem paths | |
698 | # (see "hg help config.paths" for more info) |
|
696 | # (see "hg help config.paths" for more info) | |
699 | # |
|
697 | # | |
700 | # default-push = ssh://jdoe@example.net/hg/jdoes-fork |
|
698 | # default-push = ssh://jdoe@example.net/hg/jdoes-fork | |
701 | # my-fork = ssh://jdoe@example.net/hg/jdoes-fork |
|
699 | # my-fork = ssh://jdoe@example.net/hg/jdoes-fork | |
702 | # my-clone = /home/jdoe/jdoes-clone |
|
700 | # my-clone = /home/jdoe/jdoes-clone | |
703 |
|
701 | |||
704 | [ui] |
|
702 | [ui] | |
705 | # name and email (local to this repository, optional), e.g. |
|
703 | # name and email (local to this repository, optional), e.g. | |
706 | # username = Jane Doe <jdoe@example.com> |
|
704 | # username = Jane Doe <jdoe@example.com> | |
707 |
|
705 | |||
708 | [extensions] |
|
706 | [extensions] | |
709 | largefiles= |
|
707 | largefiles= | |
710 |
|
708 | |||
711 | Find an exact match to a standin (should archive nothing) |
|
709 | Find an exact match to a standin (should archive nothing) | |
712 | $ hg --config extensions.largefiles= archive -S -I 'sub/sub2/.hglf/large.bin' ../archive_lf |
|
710 | $ hg --config extensions.largefiles= archive -S -I 'sub/sub2/.hglf/large.bin' ../archive_lf | |
713 | $ find ../archive_lf 2> /dev/null | sort |
|
711 | $ find ../archive_lf 2> /dev/null | sort | |
714 |
|
712 | |||
715 | $ cat >> $HGRCPATH <<EOF |
|
713 | $ cat >> $HGRCPATH <<EOF | |
716 | > [extensions] |
|
714 | > [extensions] | |
717 | > largefiles= |
|
715 | > largefiles= | |
718 | > [largefiles] |
|
716 | > [largefiles] | |
719 | > patterns=glob:**.dat |
|
717 | > patterns=glob:**.dat | |
720 | > EOF |
|
718 | > EOF | |
721 |
|
719 | |||
722 | Test forget through a deep subrepo with the largefiles extension, both a |
|
720 | Test forget through a deep subrepo with the largefiles extension, both a | |
723 | largefile and a normal file. Then a largefile that hasn't been committed yet. |
|
721 | largefile and a normal file. Then a largefile that hasn't been committed yet. | |
724 | $ touch sub1/sub2/untracked.txt |
|
722 | $ touch sub1/sub2/untracked.txt | |
725 | $ touch sub1/sub2/large.dat |
|
723 | $ touch sub1/sub2/large.dat | |
726 | $ hg forget sub1/sub2/large.bin sub1/sub2/test.txt sub1/sub2/untracked.txt |
|
724 | $ hg forget sub1/sub2/large.bin sub1/sub2/test.txt sub1/sub2/untracked.txt | |
727 | not removing sub1/sub2/untracked.txt: file is already untracked (glob) |
|
725 | not removing sub1/sub2/untracked.txt: file is already untracked (glob) | |
728 | [1] |
|
726 | [1] | |
729 | $ hg add --large --dry-run -v sub1/sub2/untracked.txt |
|
727 | $ hg add --large --dry-run -v sub1/sub2/untracked.txt | |
730 | adding sub1/sub2/untracked.txt as a largefile (glob) |
|
728 | adding sub1/sub2/untracked.txt as a largefile (glob) | |
731 | $ hg add --large -v sub1/sub2/untracked.txt |
|
729 | $ hg add --large -v sub1/sub2/untracked.txt | |
732 | adding sub1/sub2/untracked.txt as a largefile (glob) |
|
730 | adding sub1/sub2/untracked.txt as a largefile (glob) | |
733 | $ hg add --normal -v sub1/sub2/large.dat |
|
731 | $ hg add --normal -v sub1/sub2/large.dat | |
734 | adding sub1/sub2/large.dat (glob) |
|
732 | adding sub1/sub2/large.dat (glob) | |
735 | $ hg forget -v sub1/sub2/untracked.txt |
|
733 | $ hg forget -v sub1/sub2/untracked.txt | |
736 | removing sub1/sub2/untracked.txt (glob) |
|
734 | removing sub1/sub2/untracked.txt (glob) | |
737 | $ hg status -S |
|
735 | $ hg status -S | |
738 | A sub1/sub2/large.dat |
|
736 | A sub1/sub2/large.dat | |
739 | R sub1/sub2/large.bin |
|
737 | R sub1/sub2/large.bin | |
740 | R sub1/sub2/test.txt |
|
738 | R sub1/sub2/test.txt | |
741 | ? foo/bar/abc |
|
739 | ? foo/bar/abc | |
742 | ? sub1/sub2/untracked.txt |
|
740 | ? sub1/sub2/untracked.txt | |
743 | ? sub1/sub2/x.txt |
|
741 | ? sub1/sub2/x.txt | |
744 | $ hg add sub1/sub2 |
|
742 | $ hg add sub1/sub2 | |
745 |
|
743 | |||
746 | $ hg archive -S -r 'wdir()' ../wdir2 |
|
744 | $ hg archive -S -r 'wdir()' ../wdir2 | |
747 | $ diff -r . ../wdir2 | egrep -v '\.hg$|^Common subdirectories:' |
|
745 | $ diff -r . ../wdir2 | egrep -v '\.hg$|^Common subdirectories:' | |
748 | Only in ../wdir2: .hg_archival.txt |
|
746 | Only in ../wdir2: .hg_archival.txt | |
749 | Only in .: .hglf |
|
747 | Only in .: .hglf | |
750 | Only in .: foo |
|
748 | Only in .: foo | |
751 | Only in ./sub1/sub2: large.bin |
|
749 | Only in ./sub1/sub2: large.bin | |
752 | Only in ./sub1/sub2: test.txt |
|
750 | Only in ./sub1/sub2: test.txt | |
753 | Only in ./sub1/sub2: untracked.txt |
|
751 | Only in ./sub1/sub2: untracked.txt | |
754 | Only in ./sub1/sub2: x.txt |
|
752 | Only in ./sub1/sub2: x.txt | |
755 | $ find ../wdir2 -type f | sort |
|
753 | $ find ../wdir2 -type f | sort | |
756 | ../wdir2/.hg_archival.txt |
|
754 | ../wdir2/.hg_archival.txt | |
757 | ../wdir2/.hgsub |
|
755 | ../wdir2/.hgsub | |
758 | ../wdir2/.hgsubstate |
|
756 | ../wdir2/.hgsubstate | |
759 | ../wdir2/large.bin |
|
757 | ../wdir2/large.bin | |
760 | ../wdir2/main |
|
758 | ../wdir2/main | |
761 | ../wdir2/sub1/.hgsub |
|
759 | ../wdir2/sub1/.hgsub | |
762 | ../wdir2/sub1/.hgsubstate |
|
760 | ../wdir2/sub1/.hgsubstate | |
763 | ../wdir2/sub1/sub1 |
|
761 | ../wdir2/sub1/sub1 | |
764 | ../wdir2/sub1/sub2/folder/test.txt |
|
762 | ../wdir2/sub1/sub2/folder/test.txt | |
765 | ../wdir2/sub1/sub2/large.dat |
|
763 | ../wdir2/sub1/sub2/large.dat | |
766 | ../wdir2/sub1/sub2/sub2 |
|
764 | ../wdir2/sub1/sub2/sub2 | |
767 | $ hg status -S -mac -n | sort |
|
765 | $ hg status -S -mac -n | sort | |
768 | .hgsub |
|
766 | .hgsub | |
769 | .hgsubstate |
|
767 | .hgsubstate | |
770 | large.bin |
|
768 | large.bin | |
771 | main |
|
769 | main | |
772 | sub1/.hgsub |
|
770 | sub1/.hgsub | |
773 | sub1/.hgsubstate |
|
771 | sub1/.hgsubstate | |
774 | sub1/sub1 |
|
772 | sub1/sub1 | |
775 | sub1/sub2/folder/test.txt |
|
773 | sub1/sub2/folder/test.txt | |
776 | sub1/sub2/large.dat |
|
774 | sub1/sub2/large.dat | |
777 | sub1/sub2/sub2 |
|
775 | sub1/sub2/sub2 | |
778 |
|
776 | |||
779 | $ hg ci -Sqm 'forget testing' |
|
777 | $ hg ci -Sqm 'forget testing' | |
780 |
|
778 | |||
781 | Test 'wdir()' modified file archiving with largefiles |
|
779 | Test 'wdir()' modified file archiving with largefiles | |
782 | $ echo 'mod' > main |
|
780 | $ echo 'mod' > main | |
783 | $ echo 'mod' > large.bin |
|
781 | $ echo 'mod' > large.bin | |
784 | $ echo 'mod' > sub1/sub2/large.dat |
|
782 | $ echo 'mod' > sub1/sub2/large.dat | |
785 | $ hg archive -S -r 'wdir()' ../wdir3 |
|
783 | $ hg archive -S -r 'wdir()' ../wdir3 | |
786 | $ diff -r . ../wdir3 | egrep -v '\.hg$|^Common subdirectories' |
|
784 | $ diff -r . ../wdir3 | egrep -v '\.hg$|^Common subdirectories' | |
787 | Only in ../wdir3: .hg_archival.txt |
|
785 | Only in ../wdir3: .hg_archival.txt | |
788 | Only in .: .hglf |
|
786 | Only in .: .hglf | |
789 | Only in .: foo |
|
787 | Only in .: foo | |
790 | Only in ./sub1/sub2: large.bin |
|
788 | Only in ./sub1/sub2: large.bin | |
791 | Only in ./sub1/sub2: test.txt |
|
789 | Only in ./sub1/sub2: test.txt | |
792 | Only in ./sub1/sub2: untracked.txt |
|
790 | Only in ./sub1/sub2: untracked.txt | |
793 | Only in ./sub1/sub2: x.txt |
|
791 | Only in ./sub1/sub2: x.txt | |
794 | $ find ../wdir3 -type f | sort |
|
792 | $ find ../wdir3 -type f | sort | |
795 | ../wdir3/.hg_archival.txt |
|
793 | ../wdir3/.hg_archival.txt | |
796 | ../wdir3/.hgsub |
|
794 | ../wdir3/.hgsub | |
797 | ../wdir3/.hgsubstate |
|
795 | ../wdir3/.hgsubstate | |
798 | ../wdir3/large.bin |
|
796 | ../wdir3/large.bin | |
799 | ../wdir3/main |
|
797 | ../wdir3/main | |
800 | ../wdir3/sub1/.hgsub |
|
798 | ../wdir3/sub1/.hgsub | |
801 | ../wdir3/sub1/.hgsubstate |
|
799 | ../wdir3/sub1/.hgsubstate | |
802 | ../wdir3/sub1/sub1 |
|
800 | ../wdir3/sub1/sub1 | |
803 | ../wdir3/sub1/sub2/folder/test.txt |
|
801 | ../wdir3/sub1/sub2/folder/test.txt | |
804 | ../wdir3/sub1/sub2/large.dat |
|
802 | ../wdir3/sub1/sub2/large.dat | |
805 | ../wdir3/sub1/sub2/sub2 |
|
803 | ../wdir3/sub1/sub2/sub2 | |
806 | $ hg up -Cq |
|
804 | $ hg up -Cq | |
807 |
|
805 | |||
808 | Test issue4330: commit a directory where only normal files have changed |
|
806 | Test issue4330: commit a directory where only normal files have changed | |
809 | $ touch foo/bar/large.dat |
|
807 | $ touch foo/bar/large.dat | |
810 | $ hg add --large foo/bar/large.dat |
|
808 | $ hg add --large foo/bar/large.dat | |
811 | $ hg ci -m 'add foo/bar/large.dat' |
|
809 | $ hg ci -m 'add foo/bar/large.dat' | |
812 | $ touch a.txt |
|
810 | $ touch a.txt | |
813 | $ touch a.dat |
|
811 | $ touch a.dat | |
814 | $ hg add -v foo/bar/abc a.txt a.dat |
|
812 | $ hg add -v foo/bar/abc a.txt a.dat | |
815 | adding a.dat as a largefile |
|
813 | adding a.dat as a largefile | |
816 | adding a.txt |
|
814 | adding a.txt | |
817 | adding foo/bar/abc (glob) |
|
815 | adding foo/bar/abc (glob) | |
818 | $ hg ci -m 'dir commit with only normal file deltas' foo/bar |
|
816 | $ hg ci -m 'dir commit with only normal file deltas' foo/bar | |
819 | $ hg status |
|
817 | $ hg status | |
820 | A a.dat |
|
818 | A a.dat | |
821 | A a.txt |
|
819 | A a.txt | |
822 |
|
820 | |||
823 | Test a directory commit with a changed largefile and a changed normal file |
|
821 | Test a directory commit with a changed largefile and a changed normal file | |
824 | $ echo changed > foo/bar/large.dat |
|
822 | $ echo changed > foo/bar/large.dat | |
825 | $ echo changed > foo/bar/abc |
|
823 | $ echo changed > foo/bar/abc | |
826 | $ hg ci -m 'dir commit with normal and lf file deltas' foo |
|
824 | $ hg ci -m 'dir commit with normal and lf file deltas' foo | |
827 | $ hg status |
|
825 | $ hg status | |
828 | A a.dat |
|
826 | A a.dat | |
829 | A a.txt |
|
827 | A a.txt | |
830 |
|
828 | |||
831 | $ hg ci -m "add a.*" |
|
829 | $ hg ci -m "add a.*" | |
832 | $ hg mv a.dat b.dat |
|
830 | $ hg mv a.dat b.dat | |
833 | $ hg mv foo/bar/abc foo/bar/def |
|
831 | $ hg mv foo/bar/abc foo/bar/def | |
834 | $ hg status -C |
|
832 | $ hg status -C | |
835 | A b.dat |
|
833 | A b.dat | |
836 | a.dat |
|
834 | a.dat | |
837 | A foo/bar/def |
|
835 | A foo/bar/def | |
838 | foo/bar/abc |
|
836 | foo/bar/abc | |
839 | R a.dat |
|
837 | R a.dat | |
840 | R foo/bar/abc |
|
838 | R foo/bar/abc | |
841 |
|
839 | |||
842 | $ hg ci -m "move large and normal" |
|
840 | $ hg ci -m "move large and normal" | |
843 | $ hg status -C --rev '.^' --rev . |
|
841 | $ hg status -C --rev '.^' --rev . | |
844 | A b.dat |
|
842 | A b.dat | |
845 | a.dat |
|
843 | a.dat | |
846 | A foo/bar/def |
|
844 | A foo/bar/def | |
847 | foo/bar/abc |
|
845 | foo/bar/abc | |
848 | R a.dat |
|
846 | R a.dat | |
849 | R foo/bar/abc |
|
847 | R foo/bar/abc | |
850 |
|
848 | |||
851 |
|
849 | |||
852 | $ echo foo > main |
|
850 | $ echo foo > main | |
853 | $ hg ci -m "mod parent only" |
|
851 | $ hg ci -m "mod parent only" | |
854 | $ hg init sub3 |
|
852 | $ hg init sub3 | |
855 | $ echo "sub3 = sub3" >> .hgsub |
|
853 | $ echo "sub3 = sub3" >> .hgsub | |
856 | $ echo xyz > sub3/a.txt |
|
854 | $ echo xyz > sub3/a.txt | |
857 | $ hg add sub3/a.txt |
|
855 | $ hg add sub3/a.txt | |
858 | $ hg ci -Sm "add sub3" |
|
856 | $ hg ci -Sm "add sub3" | |
859 | committing subrepository sub3 |
|
857 | committing subrepository sub3 | |
860 | $ cat .hgsub | grep -v sub3 > .hgsub1 |
|
858 | $ cat .hgsub | grep -v sub3 > .hgsub1 | |
861 | $ mv .hgsub1 .hgsub |
|
859 | $ mv .hgsub1 .hgsub | |
862 | $ hg ci -m "remove sub3" |
|
860 | $ hg ci -m "remove sub3" | |
863 |
|
861 | |||
864 | $ hg log -r "subrepo()" --style compact |
|
862 | $ hg log -r "subrepo()" --style compact | |
865 | 0 7f491f53a367 1970-01-01 00:00 +0000 test |
|
863 | 0 7f491f53a367 1970-01-01 00:00 +0000 test | |
866 | main import |
|
864 | main import | |
867 |
|
865 | |||
868 | 1 ffe6649062fe 1970-01-01 00:00 +0000 test |
|
866 | 1 ffe6649062fe 1970-01-01 00:00 +0000 test | |
869 | deep nested modif should trigger a commit |
|
867 | deep nested modif should trigger a commit | |
870 |
|
868 | |||
871 | 2 9bb10eebee29 1970-01-01 00:00 +0000 test |
|
869 | 2 9bb10eebee29 1970-01-01 00:00 +0000 test | |
872 | add test.txt |
|
870 | add test.txt | |
873 |
|
871 | |||
874 | 3 7c64f035294f 1970-01-01 00:00 +0000 test |
|
872 | 3 7c64f035294f 1970-01-01 00:00 +0000 test | |
875 | add large files |
|
873 | add large files | |
876 |
|
874 | |||
877 | 4 f734a59e2e35 1970-01-01 00:00 +0000 test |
|
875 | 4 f734a59e2e35 1970-01-01 00:00 +0000 test | |
878 | forget testing |
|
876 | forget testing | |
879 |
|
877 | |||
880 | 11 9685a22af5db 1970-01-01 00:00 +0000 test |
|
878 | 11 9685a22af5db 1970-01-01 00:00 +0000 test | |
881 | add sub3 |
|
879 | add sub3 | |
882 |
|
880 | |||
883 | 12[tip] 2e0485b475b9 1970-01-01 00:00 +0000 test |
|
881 | 12[tip] 2e0485b475b9 1970-01-01 00:00 +0000 test | |
884 | remove sub3 |
|
882 | remove sub3 | |
885 |
|
883 | |||
886 | $ hg log -r "subrepo('sub3')" --style compact |
|
884 | $ hg log -r "subrepo('sub3')" --style compact | |
887 | 11 9685a22af5db 1970-01-01 00:00 +0000 test |
|
885 | 11 9685a22af5db 1970-01-01 00:00 +0000 test | |
888 | add sub3 |
|
886 | add sub3 | |
889 |
|
887 | |||
890 | 12[tip] 2e0485b475b9 1970-01-01 00:00 +0000 test |
|
888 | 12[tip] 2e0485b475b9 1970-01-01 00:00 +0000 test | |
891 | remove sub3 |
|
889 | remove sub3 | |
892 |
|
890 | |||
893 | $ hg log -r "subrepo('bogus')" --style compact |
|
891 | $ hg log -r "subrepo('bogus')" --style compact | |
894 |
|
892 | |||
895 |
|
893 | |||
896 | Test .hgsubstate in the R state |
|
894 | Test .hgsubstate in the R state | |
897 |
|
895 | |||
898 | $ hg rm .hgsub .hgsubstate |
|
896 | $ hg rm .hgsub .hgsubstate | |
899 | \r (no-eol) (esc) |
|
897 | \r (no-eol) (esc) | |
900 | deleting [=====================> ] 1/2\r (no-eol) (esc) |
|
898 | deleting [=====================> ] 1/2\r (no-eol) (esc) | |
901 | deleting [===========================================>] 2/2\r (no-eol) (esc) |
|
899 | deleting [===========================================>] 2/2\r (no-eol) (esc) | |
902 | \r (no-eol) (esc) |
|
900 | \r (no-eol) (esc) | |
903 | $ hg ci -m 'trash subrepo tracking' |
|
901 | $ hg ci -m 'trash subrepo tracking' | |
904 |
|
902 | |||
905 | $ hg log -r "subrepo('re:sub\d+')" --style compact |
|
903 | $ hg log -r "subrepo('re:sub\d+')" --style compact | |
906 | 0 7f491f53a367 1970-01-01 00:00 +0000 test |
|
904 | 0 7f491f53a367 1970-01-01 00:00 +0000 test | |
907 | main import |
|
905 | main import | |
908 |
|
906 | |||
909 | 1 ffe6649062fe 1970-01-01 00:00 +0000 test |
|
907 | 1 ffe6649062fe 1970-01-01 00:00 +0000 test | |
910 | deep nested modif should trigger a commit |
|
908 | deep nested modif should trigger a commit | |
911 |
|
909 | |||
912 | 2 9bb10eebee29 1970-01-01 00:00 +0000 test |
|
910 | 2 9bb10eebee29 1970-01-01 00:00 +0000 test | |
913 | add test.txt |
|
911 | add test.txt | |
914 |
|
912 | |||
915 | 3 7c64f035294f 1970-01-01 00:00 +0000 test |
|
913 | 3 7c64f035294f 1970-01-01 00:00 +0000 test | |
916 | add large files |
|
914 | add large files | |
917 |
|
915 | |||
918 | 4 f734a59e2e35 1970-01-01 00:00 +0000 test |
|
916 | 4 f734a59e2e35 1970-01-01 00:00 +0000 test | |
919 | forget testing |
|
917 | forget testing | |
920 |
|
918 | |||
921 | 11 9685a22af5db 1970-01-01 00:00 +0000 test |
|
919 | 11 9685a22af5db 1970-01-01 00:00 +0000 test | |
922 | add sub3 |
|
920 | add sub3 | |
923 |
|
921 | |||
924 | 12 2e0485b475b9 1970-01-01 00:00 +0000 test |
|
922 | 12 2e0485b475b9 1970-01-01 00:00 +0000 test | |
925 | remove sub3 |
|
923 | remove sub3 | |
926 |
|
924 | |||
927 | 13[tip] a68b2c361653 1970-01-01 00:00 +0000 test |
|
925 | 13[tip] a68b2c361653 1970-01-01 00:00 +0000 test | |
928 | trash subrepo tracking |
|
926 | trash subrepo tracking | |
929 |
|
927 | |||
930 |
|
928 | |||
931 | Restore the trashed subrepo tracking |
|
929 | Restore the trashed subrepo tracking | |
932 |
|
930 | |||
933 | $ hg rollback -q |
|
931 | $ hg rollback -q | |
934 | $ hg update -Cq . |
|
932 | $ hg update -Cq . | |
935 |
|
933 | |||
936 | Interaction with extdiff, largefiles and subrepos |
|
934 | Interaction with extdiff, largefiles and subrepos | |
937 |
|
935 | |||
938 | $ hg --config extensions.extdiff= pdiff -S |
|
936 | $ hg --config extensions.extdiff= pdiff -S | |
939 |
|
937 | |||
940 | $ hg --config extensions.extdiff= pdiff -r '.^' -S |
|
938 | $ hg --config extensions.extdiff= pdiff -r '.^' -S | |
941 | \r (no-eol) (esc) |
|
939 | \r (no-eol) (esc) | |
942 | archiving [ ] 0/2\r (no-eol) (esc) |
|
940 | archiving [ ] 0/2\r (no-eol) (esc) | |
943 | archiving [====================> ] 1/2\r (no-eol) (esc) |
|
941 | archiving [====================> ] 1/2\r (no-eol) (esc) | |
944 | archiving [==========================================>] 2/2\r (no-eol) (esc) |
|
942 | archiving [==========================================>] 2/2\r (no-eol) (esc) | |
945 | \r (no-eol) (esc) |
|
943 | \r (no-eol) (esc) | |
946 | \r (no-eol) (esc) |
|
944 | \r (no-eol) (esc) | |
947 | archiving (sub1) [ <=> ] 0\r (no-eol) (esc) |
|
945 | archiving (sub1) [ <=> ] 0\r (no-eol) (esc) | |
948 | \r (no-eol) (esc) |
|
946 | \r (no-eol) (esc) | |
949 | \r (no-eol) (esc) |
|
947 | \r (no-eol) (esc) | |
950 | archiving (sub1/sub2) [ <=> ] 0\r (no-eol) (esc) |
|
948 | archiving (sub1/sub2) [ <=> ] 0\r (no-eol) (esc) | |
951 | \r (no-eol) (esc) |
|
949 | \r (no-eol) (esc) | |
952 | \r (no-eol) (esc) |
|
950 | \r (no-eol) (esc) | |
953 | archiving (sub3) [ <=> ] 0\r (no-eol) (esc) |
|
951 | archiving (sub3) [ <=> ] 0\r (no-eol) (esc) | |
954 | \r (no-eol) (esc) |
|
952 | \r (no-eol) (esc) | |
955 | \r (no-eol) (esc) |
|
953 | \r (no-eol) (esc) | |
956 | archiving [ ] 0/2\r (no-eol) (esc) |
|
954 | archiving [ ] 0/2\r (no-eol) (esc) | |
957 | archiving [====================> ] 1/2\r (no-eol) (esc) |
|
955 | archiving [====================> ] 1/2\r (no-eol) (esc) | |
958 | archiving [==========================================>] 2/2\r (no-eol) (esc) |
|
956 | archiving [==========================================>] 2/2\r (no-eol) (esc) | |
959 | \r (no-eol) (esc) |
|
957 | \r (no-eol) (esc) | |
960 | \r (no-eol) (esc) |
|
958 | \r (no-eol) (esc) | |
961 | archiving (sub1) [ <=> ] 0\r (no-eol) (esc) |
|
959 | archiving (sub1) [ <=> ] 0\r (no-eol) (esc) | |
962 | \r (no-eol) (esc) |
|
960 | \r (no-eol) (esc) | |
963 | \r (no-eol) (esc) |
|
961 | \r (no-eol) (esc) | |
964 | archiving (sub1/sub2) [ <=> ] 0\r (no-eol) (esc) |
|
962 | archiving (sub1/sub2) [ <=> ] 0\r (no-eol) (esc) | |
965 | \r (no-eol) (esc) |
|
963 | \r (no-eol) (esc) | |
966 | diff -Nru cloned.*/.hgsub cloned/.hgsub (glob) |
|
964 | diff -Nru cloned.*/.hgsub cloned/.hgsub (glob) | |
967 | --- cloned.*/.hgsub * (glob) |
|
965 | --- cloned.*/.hgsub * (glob) | |
968 | +++ cloned/.hgsub * (glob) |
|
966 | +++ cloned/.hgsub * (glob) | |
969 | @@ -1,2 +1* @@ (glob) |
|
967 | @@ -1,2 +1* @@ (glob) | |
970 | sub1 = ../sub1 |
|
968 | sub1 = ../sub1 | |
971 | -sub3 = sub3 |
|
969 | -sub3 = sub3 | |
972 | diff -Nru cloned.*/.hgsubstate cloned/.hgsubstate (glob) |
|
970 | diff -Nru cloned.*/.hgsubstate cloned/.hgsubstate (glob) | |
973 | --- cloned.*/.hgsubstate * (glob) |
|
971 | --- cloned.*/.hgsubstate * (glob) | |
974 | +++ cloned/.hgsubstate * (glob) |
|
972 | +++ cloned/.hgsubstate * (glob) | |
975 | @@ -1,2 +1* @@ (glob) |
|
973 | @@ -1,2 +1* @@ (glob) | |
976 | 7a36fa02b66e61f27f3d4a822809f159479b8ab2 sub1 |
|
974 | 7a36fa02b66e61f27f3d4a822809f159479b8ab2 sub1 | |
977 | -b1a26de6f2a045a9f079323693614ee322f1ff7e sub3 |
|
975 | -b1a26de6f2a045a9f079323693614ee322f1ff7e sub3 | |
978 | [1] |
|
976 | [1] | |
979 |
|
977 | |||
980 | $ hg --config extensions.extdiff= pdiff -r 0 -r '.^' -S |
|
978 | $ hg --config extensions.extdiff= pdiff -r 0 -r '.^' -S | |
981 | \r (no-eol) (esc) |
|
979 | \r (no-eol) (esc) | |
982 | archiving [ ] 0/3\r (no-eol) (esc) |
|
980 | archiving [ ] 0/3\r (no-eol) (esc) | |
983 | archiving [=============> ] 1/3\r (no-eol) (esc) |
|
981 | archiving [=============> ] 1/3\r (no-eol) (esc) | |
984 | archiving [===========================> ] 2/3\r (no-eol) (esc) |
|
982 | archiving [===========================> ] 2/3\r (no-eol) (esc) | |
985 | archiving [==========================================>] 3/3\r (no-eol) (esc) |
|
983 | archiving [==========================================>] 3/3\r (no-eol) (esc) | |
986 | \r (no-eol) (esc) |
|
984 | \r (no-eol) (esc) | |
987 | \r (no-eol) (esc) |
|
985 | \r (no-eol) (esc) | |
988 | archiving (sub1) [ ] 0/1\r (no-eol) (esc) |
|
986 | archiving (sub1) [ ] 0/1\r (no-eol) (esc) | |
989 | archiving (sub1) [===================================>] 1/1\r (no-eol) (esc) |
|
987 | archiving (sub1) [===================================>] 1/1\r (no-eol) (esc) | |
990 | \r (no-eol) (esc) |
|
988 | \r (no-eol) (esc) | |
991 | \r (no-eol) (esc) |
|
989 | \r (no-eol) (esc) | |
992 | archiving (sub1/sub2) [ ] 0/1\r (no-eol) (esc) |
|
990 | archiving (sub1/sub2) [ ] 0/1\r (no-eol) (esc) | |
993 | archiving (sub1/sub2) [==============================>] 1/1\r (no-eol) (esc) |
|
991 | archiving (sub1/sub2) [==============================>] 1/1\r (no-eol) (esc) | |
994 | \r (no-eol) (esc) |
|
992 | \r (no-eol) (esc) | |
995 | \r (no-eol) (esc) |
|
993 | \r (no-eol) (esc) | |
996 | archiving [ ] 0/8\r (no-eol) (esc) |
|
994 | archiving [ ] 0/8\r (no-eol) (esc) | |
997 | archiving [====> ] 1/8\r (no-eol) (esc) |
|
995 | archiving [====> ] 1/8\r (no-eol) (esc) | |
998 | archiving [=========> ] 2/8\r (no-eol) (esc) |
|
996 | archiving [=========> ] 2/8\r (no-eol) (esc) | |
999 | archiving [===============> ] 3/8\r (no-eol) (esc) |
|
997 | archiving [===============> ] 3/8\r (no-eol) (esc) | |
1000 | archiving [====================> ] 4/8\r (no-eol) (esc) |
|
998 | archiving [====================> ] 4/8\r (no-eol) (esc) | |
1001 | archiving [=========================> ] 5/8\r (no-eol) (esc) |
|
999 | archiving [=========================> ] 5/8\r (no-eol) (esc) | |
1002 | archiving [===============================> ] 6/8\r (no-eol) (esc) |
|
1000 | archiving [===============================> ] 6/8\r (no-eol) (esc) | |
1003 | archiving [====================================> ] 7/8\r (no-eol) (esc) |
|
1001 | archiving [====================================> ] 7/8\r (no-eol) (esc) | |
1004 | archiving [==========================================>] 8/8\r (no-eol) (esc) |
|
1002 | archiving [==========================================>] 8/8\r (no-eol) (esc) | |
1005 | \r (no-eol) (esc) |
|
1003 | \r (no-eol) (esc) | |
1006 | \r (no-eol) (esc) |
|
1004 | \r (no-eol) (esc) | |
1007 | archiving (sub1) [ ] 0/1\r (no-eol) (esc) |
|
1005 | archiving (sub1) [ ] 0/1\r (no-eol) (esc) | |
1008 | archiving (sub1) [===================================>] 1/1\r (no-eol) (esc) |
|
1006 | archiving (sub1) [===================================>] 1/1\r (no-eol) (esc) | |
1009 | \r (no-eol) (esc) |
|
1007 | \r (no-eol) (esc) | |
1010 | \r (no-eol) (esc) |
|
1008 | \r (no-eol) (esc) | |
1011 | archiving (sub1/sub2) [ ] 0/3\r (no-eol) (esc) |
|
1009 | archiving (sub1/sub2) [ ] 0/3\r (no-eol) (esc) | |
1012 | archiving (sub1/sub2) [=========> ] 1/3\r (no-eol) (esc) |
|
1010 | archiving (sub1/sub2) [=========> ] 1/3\r (no-eol) (esc) | |
1013 | archiving (sub1/sub2) [===================> ] 2/3\r (no-eol) (esc) |
|
1011 | archiving (sub1/sub2) [===================> ] 2/3\r (no-eol) (esc) | |
1014 | archiving (sub1/sub2) [==============================>] 3/3\r (no-eol) (esc) |
|
1012 | archiving (sub1/sub2) [==============================>] 3/3\r (no-eol) (esc) | |
1015 | \r (no-eol) (esc) |
|
1013 | \r (no-eol) (esc) | |
1016 | \r (no-eol) (esc) |
|
1014 | \r (no-eol) (esc) | |
1017 | archiving (sub3) [ ] 0/1\r (no-eol) (esc) |
|
1015 | archiving (sub3) [ ] 0/1\r (no-eol) (esc) | |
1018 | archiving (sub3) [===================================>] 1/1\r (no-eol) (esc) |
|
1016 | archiving (sub3) [===================================>] 1/1\r (no-eol) (esc) | |
1019 | \r (no-eol) (esc) |
|
1017 | \r (no-eol) (esc) | |
1020 | diff -Nru cloned.*/.hglf/b.dat cloned.*/.hglf/b.dat (glob) |
|
1018 | diff -Nru cloned.*/.hglf/b.dat cloned.*/.hglf/b.dat (glob) | |
1021 | --- cloned.*/.hglf/b.dat * (glob) |
|
1019 | --- cloned.*/.hglf/b.dat * (glob) | |
1022 | +++ cloned.*/.hglf/b.dat * (glob) |
|
1020 | +++ cloned.*/.hglf/b.dat * (glob) | |
1023 | @@ -*,0 +1* @@ (glob) |
|
1021 | @@ -*,0 +1* @@ (glob) | |
1024 | +da39a3ee5e6b4b0d3255bfef95601890afd80709 |
|
1022 | +da39a3ee5e6b4b0d3255bfef95601890afd80709 | |
1025 | diff -Nru cloned.*/.hglf/foo/bar/large.dat cloned.*/.hglf/foo/bar/large.dat (glob) |
|
1023 | diff -Nru cloned.*/.hglf/foo/bar/large.dat cloned.*/.hglf/foo/bar/large.dat (glob) | |
1026 | --- cloned.*/.hglf/foo/bar/large.dat * (glob) |
|
1024 | --- cloned.*/.hglf/foo/bar/large.dat * (glob) | |
1027 | +++ cloned.*/.hglf/foo/bar/large.dat * (glob) |
|
1025 | +++ cloned.*/.hglf/foo/bar/large.dat * (glob) | |
1028 | @@ -*,0 +1* @@ (glob) |
|
1026 | @@ -*,0 +1* @@ (glob) | |
1029 | +2f6933b5ee0f5fdd823d9717d8729f3c2523811b |
|
1027 | +2f6933b5ee0f5fdd823d9717d8729f3c2523811b | |
1030 | diff -Nru cloned.*/.hglf/large.bin cloned.*/.hglf/large.bin (glob) |
|
1028 | diff -Nru cloned.*/.hglf/large.bin cloned.*/.hglf/large.bin (glob) | |
1031 | --- cloned.*/.hglf/large.bin * (glob) |
|
1029 | --- cloned.*/.hglf/large.bin * (glob) | |
1032 | +++ cloned.*/.hglf/large.bin * (glob) |
|
1030 | +++ cloned.*/.hglf/large.bin * (glob) | |
1033 | @@ -*,0 +1* @@ (glob) |
|
1031 | @@ -*,0 +1* @@ (glob) | |
1034 | +7f7097b041ccf68cc5561e9600da4655d21c6d18 |
|
1032 | +7f7097b041ccf68cc5561e9600da4655d21c6d18 | |
1035 | diff -Nru cloned.*/.hgsub cloned.*/.hgsub (glob) |
|
1033 | diff -Nru cloned.*/.hgsub cloned.*/.hgsub (glob) | |
1036 | --- cloned.*/.hgsub * (glob) |
|
1034 | --- cloned.*/.hgsub * (glob) | |
1037 | +++ cloned.*/.hgsub * (glob) |
|
1035 | +++ cloned.*/.hgsub * (glob) | |
1038 | @@ -1* +1,2 @@ (glob) |
|
1036 | @@ -1* +1,2 @@ (glob) | |
1039 | sub1 = ../sub1 |
|
1037 | sub1 = ../sub1 | |
1040 | +sub3 = sub3 |
|
1038 | +sub3 = sub3 | |
1041 | diff -Nru cloned.*/.hgsubstate cloned.*/.hgsubstate (glob) |
|
1039 | diff -Nru cloned.*/.hgsubstate cloned.*/.hgsubstate (glob) | |
1042 | --- cloned.*/.hgsubstate * (glob) |
|
1040 | --- cloned.*/.hgsubstate * (glob) | |
1043 | +++ cloned.*/.hgsubstate * (glob) |
|
1041 | +++ cloned.*/.hgsubstate * (glob) | |
1044 | @@ -1* +1,2 @@ (glob) |
|
1042 | @@ -1* +1,2 @@ (glob) | |
1045 | -fc3b4ce2696f7741438c79207583768f2ce6b0dd sub1 |
|
1043 | -fc3b4ce2696f7741438c79207583768f2ce6b0dd sub1 | |
1046 | +7a36fa02b66e61f27f3d4a822809f159479b8ab2 sub1 |
|
1044 | +7a36fa02b66e61f27f3d4a822809f159479b8ab2 sub1 | |
1047 | +b1a26de6f2a045a9f079323693614ee322f1ff7e sub3 |
|
1045 | +b1a26de6f2a045a9f079323693614ee322f1ff7e sub3 | |
1048 | diff -Nru cloned.*/foo/bar/def cloned.*/foo/bar/def (glob) |
|
1046 | diff -Nru cloned.*/foo/bar/def cloned.*/foo/bar/def (glob) | |
1049 | --- cloned.*/foo/bar/def * (glob) |
|
1047 | --- cloned.*/foo/bar/def * (glob) | |
1050 | +++ cloned.*/foo/bar/def * (glob) |
|
1048 | +++ cloned.*/foo/bar/def * (glob) | |
1051 | @@ -*,0 +1* @@ (glob) |
|
1049 | @@ -*,0 +1* @@ (glob) | |
1052 | +changed |
|
1050 | +changed | |
1053 | diff -Nru cloned.*/main cloned.*/main (glob) |
|
1051 | diff -Nru cloned.*/main cloned.*/main (glob) | |
1054 | --- cloned.*/main * (glob) |
|
1052 | --- cloned.*/main * (glob) | |
1055 | +++ cloned.*/main * (glob) |
|
1053 | +++ cloned.*/main * (glob) | |
1056 | @@ -1* +1* @@ (glob) |
|
1054 | @@ -1* +1* @@ (glob) | |
1057 | -main |
|
1055 | -main | |
1058 | +foo |
|
1056 | +foo | |
1059 | diff -Nru cloned.*/sub1/.hgsubstate cloned.*/sub1/.hgsubstate (glob) |
|
1057 | diff -Nru cloned.*/sub1/.hgsubstate cloned.*/sub1/.hgsubstate (glob) | |
1060 | --- cloned.*/sub1/.hgsubstate * (glob) |
|
1058 | --- cloned.*/sub1/.hgsubstate * (glob) | |
1061 | +++ cloned.*/sub1/.hgsubstate * (glob) |
|
1059 | +++ cloned.*/sub1/.hgsubstate * (glob) | |
1062 | @@ -1* +1* @@ (glob) |
|
1060 | @@ -1* +1* @@ (glob) | |
1063 | -c57a0840e3badd667ef3c3ef65471609acb2ba3c sub2 |
|
1061 | -c57a0840e3badd667ef3c3ef65471609acb2ba3c sub2 | |
1064 | +c77908c81ccea3794a896c79e98b0e004aee2e9e sub2 |
|
1062 | +c77908c81ccea3794a896c79e98b0e004aee2e9e sub2 | |
1065 | diff -Nru cloned.*/sub1/sub2/folder/test.txt cloned.*/sub1/sub2/folder/test.txt (glob) |
|
1063 | diff -Nru cloned.*/sub1/sub2/folder/test.txt cloned.*/sub1/sub2/folder/test.txt (glob) | |
1066 | --- cloned.*/sub1/sub2/folder/test.txt * (glob) |
|
1064 | --- cloned.*/sub1/sub2/folder/test.txt * (glob) | |
1067 | +++ cloned.*/sub1/sub2/folder/test.txt * (glob) |
|
1065 | +++ cloned.*/sub1/sub2/folder/test.txt * (glob) | |
1068 | @@ -*,0 +1* @@ (glob) |
|
1066 | @@ -*,0 +1* @@ (glob) | |
1069 | +subfolder |
|
1067 | +subfolder | |
1070 | diff -Nru cloned.*/sub1/sub2/sub2 cloned.*/sub1/sub2/sub2 (glob) |
|
1068 | diff -Nru cloned.*/sub1/sub2/sub2 cloned.*/sub1/sub2/sub2 (glob) | |
1071 | --- cloned.*/sub1/sub2/sub2 * (glob) |
|
1069 | --- cloned.*/sub1/sub2/sub2 * (glob) | |
1072 | +++ cloned.*/sub1/sub2/sub2 * (glob) |
|
1070 | +++ cloned.*/sub1/sub2/sub2 * (glob) | |
1073 | @@ -1* +1* @@ (glob) |
|
1071 | @@ -1* +1* @@ (glob) | |
1074 | -sub2 |
|
1072 | -sub2 | |
1075 | +modified |
|
1073 | +modified | |
1076 | diff -Nru cloned.*/sub3/a.txt cloned.*/sub3/a.txt (glob) |
|
1074 | diff -Nru cloned.*/sub3/a.txt cloned.*/sub3/a.txt (glob) | |
1077 | --- cloned.*/sub3/a.txt * (glob) |
|
1075 | --- cloned.*/sub3/a.txt * (glob) | |
1078 | +++ cloned.*/sub3/a.txt * (glob) |
|
1076 | +++ cloned.*/sub3/a.txt * (glob) | |
1079 | @@ -*,0 +1* @@ (glob) |
|
1077 | @@ -*,0 +1* @@ (glob) | |
1080 | +xyz |
|
1078 | +xyz | |
1081 | [1] |
|
1079 | [1] | |
1082 |
|
1080 | |||
1083 | $ echo mod > sub1/sub2/sub2 |
|
1081 | $ echo mod > sub1/sub2/sub2 | |
1084 | $ hg --config extensions.extdiff= pdiff -S |
|
1082 | $ hg --config extensions.extdiff= pdiff -S | |
1085 | \r (no-eol) (esc) |
|
1083 | \r (no-eol) (esc) | |
1086 | archiving (sub1) [ <=> ] 0\r (no-eol) (esc) |
|
1084 | archiving (sub1) [ <=> ] 0\r (no-eol) (esc) | |
1087 | \r (no-eol) (esc) |
|
1085 | \r (no-eol) (esc) | |
1088 | \r (no-eol) (esc) |
|
1086 | \r (no-eol) (esc) | |
1089 | archiving (sub1/sub2) [ ] 0/1\r (no-eol) (esc) |
|
1087 | archiving (sub1/sub2) [ ] 0/1\r (no-eol) (esc) | |
1090 | archiving (sub1/sub2) [==============================>] 1/1\r (no-eol) (esc) |
|
1088 | archiving (sub1/sub2) [==============================>] 1/1\r (no-eol) (esc) | |
1091 | \r (no-eol) (esc) |
|
1089 | \r (no-eol) (esc) | |
1092 | --- */cloned.*/sub1/sub2/sub2 * (glob) |
|
1090 | --- */cloned.*/sub1/sub2/sub2 * (glob) | |
1093 | +++ */cloned/sub1/sub2/sub2 * (glob) |
|
1091 | +++ */cloned/sub1/sub2/sub2 * (glob) | |
1094 | @@ -1* +1* @@ (glob) |
|
1092 | @@ -1* +1* @@ (glob) | |
1095 | -modified |
|
1093 | -modified | |
1096 | +mod |
|
1094 | +mod | |
1097 | [1] |
|
1095 | [1] | |
1098 |
|
1096 | |||
1099 | $ cd .. |
|
1097 | $ cd .. |
General Comments 0
You need to be logged in to leave comments.
Login now