Show More
@@ -968,6 +968,9 b' class localrepository(object):' | |||
|
968 | 968 | _("abandoned transaction found"), |
|
969 | 969 | hint=_("run 'hg recover' to clean up transaction")) |
|
970 | 970 | |
|
971 | # make journal.dirstate contain in-memory changes at this point | |
|
972 | self.dirstate.write() | |
|
973 | ||
|
971 | 974 | idbase = "%.40f#%f" % (random.random(), time.time()) |
|
972 | 975 | txnid = 'TXN:' + util.sha1(idbase).hexdigest() |
|
973 | 976 | self.hook('pretxnopen', throw=True, txnname=desc, txnid=txnid) |
@@ -130,6 +130,34 b' backout of backout is as if nothing happ' | |||
|
130 | 130 | update: (current) |
|
131 | 131 | phases: 4 draft |
|
132 | 132 | |
|
133 | Test that 'hg rollback' restores dirstate just before opening | |
|
134 | transaction: in-memory dirstate changes should be written into | |
|
135 | '.hg/journal.dirstate' as expected. | |
|
136 | ||
|
137 | $ echo 'removed soon' > b | |
|
138 | $ hg commit -A -d '4 0' -m 'prepare for subsequent removing' | |
|
139 | adding b | |
|
140 | $ echo 'newly added' > c | |
|
141 | $ hg add c | |
|
142 | $ hg remove b | |
|
143 | $ hg commit -d '5 0' -m 'prepare for subsequent backout' | |
|
144 | $ touch -t 200001010000 c | |
|
145 | $ hg status -A | |
|
146 | C c | |
|
147 | $ hg debugstate --nodates | |
|
148 | n 644 12 set c | |
|
149 | $ hg backout -d '6 0' -m 'to be rollback-ed soon' -r . | |
|
150 | adding b | |
|
151 | removing c | |
|
152 | changeset 6:4bfec048029d backs out changeset 5:fac0b729a654 | |
|
153 | $ hg rollback -q | |
|
154 | $ hg status -A | |
|
155 | A b | |
|
156 | R c | |
|
157 | $ hg debugstate --nodates | |
|
158 | a 0 -1 unset b | |
|
159 | r 0 0 set c | |
|
160 | ||
|
133 | 161 | across branch |
|
134 | 162 | |
|
135 | 163 | $ cd .. |
General Comments 0
You need to be logged in to leave comments.
Login now