##// END OF EJS Templates
chgserver: remove Python 2 file descriptor logic...
chgserver: remove Python 2 file descriptor logic Follows up 0bb28b7736bc "chgserver: remove Python 2 support code." On Python 2, we had to close newfp prior to restoring the original file description since "delete newfp" would otherwise close the file descriptor shared with the long-lived fp: in attachio(): newfp = os.fdopen(fp.fileno(), mode, bufsize) in _restoreio(): newfp.close() # temporarily close newfp.fileno() (= fp.fileno()) os.dup2(fd, fp.fileno()) # reopen fp.fileno() with original fd On the other hand, we shouldn't call newfp.close() on Python 3 since any function calls are proxied to the underlying file object by procutil.LineBufferedWrapper.

File last commit:

r34715:f4aeb952 default
r49806:cf99c4af default
Show More
map-cmdline.compact
31 lines | 1018 B | text/plain | TextLexer
[templates]
ldate = '{label("log.date",
"{date|isodate}")}'
ldesc = '{label('ui.note log.description',
'{desc|strip}')}'
ldescfirst = '{label('ui.note log.description',
'{desc|firstline|strip}')}'
changeset = '{lrev}{tags}{bookmarks}{parents} {lnode} {ldate} {luser}\n {ldescfirst}\n\n'
changeset_quiet = '{lrev}:{lnode}\n'
changeset_verbose = '{lrev}{tags}{parents} {lnode} {ldate} {lauthor}\n {ldesc}\n\n'
lrev = '{label("log.changeset changeset.{phase}",
"{rev}")}'
lnode = '{label("log.node",
"{node|short}")}'
lauthor = '{label("log.user",
"{author}")}'
luser = '{label("log.user",
"{author|user}")}'
start_tags = '['
tag = '{label("log.tag",
"{tag},")}'
last_tag = '{tag}]'
start_parents = ':'
parent = '{lrev},'
last_parent = '{lrev}'
start_bookmarks = '['
bookmark = '{label("log.bookmark",
"{bookmark},")}'
last_bookmark = '{bookmark}]'