equal
deleted
inserted
replaced
6 # thus have different hashes for changesets that are otherwise |
6 # thus have different hashes for changesets that are otherwise |
7 # identical. |
7 # identical. |
8 |
8 |
9 |
9 |
10 import os, time |
10 import os, time |
|
11 from mercurial.i18n import _ |
11 from mercurial.node import * |
12 from mercurial.node import * |
12 from mercurial import hg, revlog, util |
13 from mercurial import hg, lock, revlog, util |
13 |
14 |
14 from common import NoRepo, commit, converter_source, converter_sink |
15 from common import NoRepo, commit, converter_source, converter_sink |
15 |
16 |
16 class mercurial_sink(converter_sink): |
17 class mercurial_sink(converter_sink): |
17 def __init__(self, ui, path): |
18 def __init__(self, ui, path): |
19 self.ui = ui |
20 self.ui = ui |
20 try: |
21 try: |
21 self.repo = hg.repository(self.ui, path) |
22 self.repo = hg.repository(self.ui, path) |
22 except: |
23 except: |
23 raise NoRepo("could not open hg repo %s as sink" % path) |
24 raise NoRepo("could not open hg repo %s as sink" % path) |
|
25 self.lock = None |
|
26 self.wlock = None |
|
27 |
|
28 def before(self): |
|
29 self.lock = self.repo.lock() |
|
30 self.wlock = self.repo.wlock() |
|
31 |
|
32 def after(self): |
|
33 self.lock = None |
|
34 self.wlock = None |
24 |
35 |
25 def revmapfile(self): |
36 def revmapfile(self): |
26 return os.path.join(self.path, ".hg", "shamap") |
37 return os.path.join(self.path, ".hg", "shamap") |
27 |
38 |
28 def authorfile(self): |
39 def authorfile(self): |
70 while parents: |
81 while parents: |
71 p1 = p2 |
82 p1 = p2 |
72 p2 = parents.pop(0) |
83 p2 = parents.pop(0) |
73 a = self.repo.rawcommit(files, text, commit.author, commit.date, |
84 a = self.repo.rawcommit(files, text, commit.author, commit.date, |
74 hg.bin(p1), hg.bin(p2), extra=extra) |
85 hg.bin(p1), hg.bin(p2), extra=extra) |
|
86 self.repo.dirstate.invalidate() |
75 text = "(octopus merge fixup)\n" |
87 text = "(octopus merge fixup)\n" |
76 p2 = hg.hex(self.repo.changelog.tip()) |
88 p2 = hg.hex(self.repo.changelog.tip()) |
77 |
89 |
78 return p2 |
90 return p2 |
79 |
91 |