comparison hgext/convert/p4.py @ 16514:363e808de349 stable

i18n: use locale insensitive format for datetimes as intermediate representation (issue3398) on some non "en" locale environments, "hg convert" is aborted, because "util.parsedate()" fails. it fails in "memctx.__init__()" called by "putcommit()" of "convert". in "hg convert", datetimes gotten from source repository are usually formatted by "util.datestr()" with default format "%a %b %d %H:%M:%S %Y %1%2". but on some environments, "%a" and "%b" may cause locale sensitive string, and such string may cause parse error in "util.parsedate()". this path uses "%Y-%m-%d %H:%M:%S %1%2" as intermediate representation format for datetimes, because it consists only of locale insensitive elements. datetimes in above format are only used for passing them from conversion logic to memctx object, so it doesn't have to be formatted by locale sensitive one. this patch just avoids locale sensitivity problem of "datestr()" and "parsedate()" combintion.
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Thu, 26 Apr 2012 02:41:20 +0900
parents b69fd38a034e
children c27a37678508
comparison
equal deleted inserted replaced
16513:aa252059a98f 16514:363e808de349
117 parents = [lastid] 117 parents = [lastid]
118 else: 118 else:
119 parents = [] 119 parents = []
120 120
121 date = (int(d["time"]), 0) # timezone not set 121 date = (int(d["time"]), 0) # timezone not set
122 c = commit(author=self.recode(d["user"]), date=util.datestr(date), 122 c = commit(author=self.recode(d["user"]),
123 date=util.datestr(date, '%Y-%m-%d %H:%M:%S %1%2'),
123 parents=parents, desc=desc, branch='', 124 parents=parents, desc=desc, branch='',
124 extra={"p4": change}) 125 extra={"p4": change})
125 126
126 files = [] 127 files = []
127 i = 0 128 i = 0