Mercurial > hg > hg-fastimport
comparison hgfastimport/hgimport.py @ 37:513449a88de2
Handle non-ASCII input correctly (assuming UTF-8 encoding).
- fastimport library now returns filenames as byte strings,
so leave them be
- re-encode commit message as UTF-8
- monkeypatch mercurial.encoding to assume UTF-8 for everything
| author | Greg Ward <greg-hg@gerg.ca> |
|---|---|
| date | Fri, 08 May 2009 11:03:16 -0400 |
| parents | 08e2157aaa9a |
| children | 177a133519bc |
comparison
equal
deleted
inserted
replaced
| 36:0e4e40caea58 | 37:513449a88de2 |
|---|---|
| 136 # fallback to committer (committer is required, author is | 136 # fallback to committer (committer is required, author is |
| 137 # optional) | 137 # optional) |
| 138 userinfo = cmd.author or cmd.committer | 138 userinfo = cmd.author or cmd.committer |
| 139 user = "%s <%s>" % (userinfo[0], userinfo[1]) | 139 user = "%s <%s>" % (userinfo[0], userinfo[1]) |
| 140 | 140 |
| 141 # XXX is this the right way to specify filename encoding?!? | 141 # Blech: have to monkeypatch mercurial.encoding to ensure that |
| 142 files = [f.encode("utf-8") for f in commit_handler.filelist()] | 142 # everything under rawcommit() assumes the same encoding, |
| 143 # regardless of current locale. | |
| 144 from mercurial import encoding | |
| 145 encoding.encoding = "UTF-8" | |
| 146 | |
| 147 files = commit_handler.filelist() | |
| 148 assert type(cmd.message) is unicode | |
| 149 text = cmd.message.encode("utf-8") # XXX cmd.message is unicode | |
| 143 date = self.convert_date(userinfo) | 150 date = self.convert_date(userinfo) |
| 144 node = self.repo.rawcommit( | 151 node = self.repo.rawcommit( |
| 145 files=files, text=cmd.message, user=user, date=date) | 152 files=files, text=text, user=user, date=date) |
| 146 rev = self.repo.changelog.rev(node) | 153 rev = self.repo.changelog.rev(node) |
| 147 if cmd.mark is not None: | 154 if cmd.mark is not None: |
| 148 self.mark_map[":" + cmd.mark] = rev | 155 self.mark_map[":" + cmd.mark] = rev |
| 149 self.branch_map[cmd.ref] = rev | 156 self.branch_map[cmd.ref] = rev |
| 150 self.ui.write("Done commit of rev %d\n" % rev) | 157 self.ui.write("Done commit of rev %d\n" % rev) |
