##// END OF EJS Templates
merge with stable
Matt Mackall -
r17980:83aa4359 merge default
parent child Browse files
Show More
@@ -142,9 +142,14 b' def hook(ui, repo, name, throw=False, **'
142 142 return False
143 143
144 144 r = False
145 oldstdout = -1
145 146
146 oldstdout = -1
147 if _redirect:
147 try:
148 for hname, cmd in _allhooks(ui):
149 if hname.split('.')[0] != name or not cmd:
150 continue
151
152 if oldstdout == -1 and _redirect:
148 153 try:
149 154 stdoutno = sys.__stdout__.fileno()
150 155 stderrno = sys.__stderr__.fileno()
@@ -153,14 +158,10 b' def hook(ui, repo, name, throw=False, **'
153 158 sys.__stdout__.flush()
154 159 oldstdout = os.dup(stdoutno)
155 160 os.dup2(stderrno, stdoutno)
156 except AttributeError:
157 # __stdout__/__stderr__ doesn't have fileno(), it's not a real file
161 except (OSError, AttributeError):
162 # files seem to be bogus, give up on redirecting (WSGI, etc)
158 163 pass
159 164
160 try:
161 for hname, cmd in _allhooks(ui):
162 if hname.split('.')[0] != name or not cmd:
163 continue
164 165 if util.safehasattr(cmd, '__call__'):
165 166 r = _pythonhook(ui, repo, name, hname, cmd, args, throw) or r
166 167 elif cmd.startswith('python:'):
@@ -103,7 +103,7 b' Note: old client behave as a publishing '
103 103 import errno
104 104 from node import nullid, nullrev, bin, hex, short
105 105 from i18n import _
106 import util
106 import util, error
107 107 import obsolete
108 108
109 109 allphases = public, draft, secret = range(3)
@@ -584,14 +584,6 b' def _descendants(repo, subset, x, follow'
584 584 if not args:
585 585 return []
586 586 s = set(_revdescendants(repo, args, followfirst)) | set(args)
587
588 if len(subset) == len(repo):
589 # the passed in revisions may not exist, -1 for example
590 for arg in args:
591 if arg not in subset:
592 s.remove(arg)
593 return list(s)
594
595 587 return [r for r in subset if r in s]
596 588
597 589 def descendants(repo, subset, x):
@@ -1349,9 +1341,6 b' def roots(repo, subset, x):'
1349 1341 Changesets in set with no parent changeset in set.
1350 1342 """
1351 1343 s = set(getset(repo, repo.changelog, x))
1352 if len(subset) == len(repo):
1353 subset = s
1354 else:
1355 1344 subset = [r for r in subset if r in s]
1356 1345 cs = _children(repo, subset, s)
1357 1346 return [r for r in subset if r not in cs]
@@ -899,7 +899,7 b' class chunkbuffer(object):'
899 899 """Read L bytes of data from the iterator of chunks of data.
900 900 Returns less than L bytes if the iterator runs dry."""
901 901 left = l
902 buf = ''
902 buf = []
903 903 queue = self._queue
904 904 while left > 0:
905 905 # refill the queue
@@ -917,11 +917,11 b' class chunkbuffer(object):'
917 917 left -= len(chunk)
918 918 if left < 0:
919 919 queue.appendleft(chunk[left:])
920 buf += chunk[:left]
920 buf.append(chunk[:left])
921 921 else:
922 buf += chunk
922 buf.append(chunk)
923 923
924 return buf
924 return ''.join(buf)
925 925
926 926 def filechunkiter(f, size=65536, limit=None):
927 927 """Create a generator that produces the data in the file size
@@ -339,6 +339,15 b' test that phase are displayed in log at '
339 339
340 340
341 341
342 (Issue3707)
343 test invalid phase name
344
345 $ mkcommit I --config phases.new-commit='babar'
346 transaction abort!
347 rollback completed
348 abort: phases.new-commit: not a valid phase name ('babar')
349 [255]
350
342 351 Test phase command
343 352 ===================
344 353
General Comments 0
You need to be logged in to leave comments. Login now