Mercurial > hg > pyhgsh
comparison hgext/mq.py @ 2299:dacf718e1d48
Add timestamp field to export format. Make import and mq use it.
author | Danek Duvall <danek.duvall@sun.com> |
---|---|
date | Wed, 17 May 2006 18:54:30 +0200 |
parents | afd7c4ec000f |
children | 52b9b6751b2c |
comparison
equal
deleted
inserted
replaced
2297:936b615eb44e | 2299:dacf718e1d48 |
---|---|
100 | 100 |
101 pf = os.path.join(self.path, patch) | 101 pf = os.path.join(self.path, patch) |
102 message = [] | 102 message = [] |
103 comments = [] | 103 comments = [] |
104 user = None | 104 user = None |
105 date = None | |
105 format = None | 106 format = None |
106 subject = None | 107 subject = None |
107 diffstart = 0 | 108 diffstart = 0 |
108 | 109 |
109 for line in file(pf): | 110 for line in file(pf): |
117 continue | 118 continue |
118 elif format == "hgpatch": | 119 elif format == "hgpatch": |
119 # parse values when importing the result of an hg export | 120 # parse values when importing the result of an hg export |
120 if line.startswith("# User "): | 121 if line.startswith("# User "): |
121 user = line[7:] | 122 user = line[7:] |
123 elif line.startswith("# Timestamp "): | |
124 date = line[12:] | |
122 elif not line.startswith("# ") and line: | 125 elif not line.startswith("# ") and line: |
123 message.append(line) | 126 message.append(line) |
124 format = None | 127 format = None |
125 elif line == '# HG changeset patch': | 128 elif line == '# HG changeset patch': |
126 format = "hgpatch" | 129 format = "hgpatch" |
147 | 150 |
148 # make sure message isn't empty | 151 # make sure message isn't empty |
149 if format and format.startswith("tag") and subject: | 152 if format and format.startswith("tag") and subject: |
150 message.insert(0, "") | 153 message.insert(0, "") |
151 message.insert(0, subject) | 154 message.insert(0, subject) |
152 return (message, comments, user, diffstart > 1) | 155 return (message, comments, user, date, diffstart > 1) |
153 | 156 |
154 def mergeone(self, repo, mergeq, head, patch, rev, wlock): | 157 def mergeone(self, repo, mergeq, head, patch, rev, wlock): |
155 # first try just applying the patch | 158 # first try just applying the patch |
156 (err, n) = self.apply(repo, [ patch ], update_status=False, | 159 (err, n) = self.apply(repo, [ patch ], update_status=False, |
157 strict=True, merge=rev, wlock=wlock) | 160 strict=True, merge=rev, wlock=wlock) |
177 n = repo.commit(None, c[4], c[1], force=1, wlock=wlock) | 180 n = repo.commit(None, c[4], c[1], force=1, wlock=wlock) |
178 if n == None: | 181 if n == None: |
179 self.ui.warn("repo commit failed\n") | 182 self.ui.warn("repo commit failed\n") |
180 sys.exit(1) | 183 sys.exit(1) |
181 try: | 184 try: |
182 message, comments, user, patchfound = mergeq.readheaders(patch) | 185 message, comments, user, date, patchfound = mergeq.readheaders(patch) |
183 except: | 186 except: |
184 self.ui.warn("Unable to read %s\n" % patch) | 187 self.ui.warn("Unable to read %s\n" % patch) |
185 sys.exit(1) | 188 sys.exit(1) |
186 | 189 |
187 patchf = self.opener(patch, "w") | 190 patchf = self.opener(patch, "w") |
265 for patch in series: | 268 for patch in series: |
266 self.ui.warn("applying %s\n" % patch) | 269 self.ui.warn("applying %s\n" % patch) |
267 pf = os.path.join(patchdir, patch) | 270 pf = os.path.join(patchdir, patch) |
268 | 271 |
269 try: | 272 try: |
270 message, comments, user, patchfound = self.readheaders(patch) | 273 message, comments, user, date, patchfound = self.readheaders(patch) |
271 except: | 274 except: |
272 self.ui.warn("Unable to read %s\n" % pf) | 275 self.ui.warn("Unable to read %s\n" % pf) |
273 err = 1 | 276 err = 1 |
274 break | 277 break |
275 | 278 |
324 p1, p2 = repo.dirstate.parents() | 327 p1, p2 = repo.dirstate.parents() |
325 repo.dirstate.setparents(p1, merge) | 328 repo.dirstate.setparents(p1, merge) |
326 if len(files) > 0: | 329 if len(files) > 0: |
327 commands.addremove_lock(self.ui, repo, files, | 330 commands.addremove_lock(self.ui, repo, files, |
328 opts={}, wlock=wlock) | 331 opts={}, wlock=wlock) |
329 n = repo.commit(files, message, user, force=1, lock=lock, | 332 n = repo.commit(files, message, user, date, force=1, lock=lock, |
330 wlock=wlock) | 333 wlock=wlock) |
331 | 334 |
332 if n == None: | 335 if n == None: |
333 self.ui.warn("repo commit failed\n") | 336 self.ui.warn("repo commit failed\n") |
334 sys.exit(1) | 337 sys.exit(1) |
714 qp = self.qparents(repo) | 717 qp = self.qparents(repo) |
715 (top, patch) = self.applied[-1].split(':') | 718 (top, patch) = self.applied[-1].split(':') |
716 top = revlog.bin(top) | 719 top = revlog.bin(top) |
717 cparents = repo.changelog.parents(top) | 720 cparents = repo.changelog.parents(top) |
718 patchparent = self.qparents(repo, top) | 721 patchparent = self.qparents(repo, top) |
719 message, comments, user, patchfound = self.readheaders(patch) | 722 message, comments, user, date, patchfound = self.readheaders(patch) |
720 | 723 |
721 patchf = self.opener(patch, "w") | 724 patchf = self.opener(patch, "w") |
722 if comments: | 725 if comments: |
723 comments = "\n".join(comments) + '\n\n' | 726 comments = "\n".join(comments) + '\n\n' |
724 patchf.write(comments) | 727 patchf.write(comments) |