Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/localrepo.py @ 1581:db10b7114de0
abort when merging two heads and repository has local changes
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Wed, 14 Dec 2005 22:19:03 -0600 |
parents | 59b3639df0a9 |
children | 5c5aaaa9ab6f |
comparison
equal
deleted
inserted
replaced
1580:4737b36e324e | 1581:db10b7114de0 |
---|---|
1356 self.hook("commit", node=hex(self.changelog.node(i))) | 1356 self.hook("commit", node=hex(self.changelog.node(i))) |
1357 | 1357 |
1358 return | 1358 return |
1359 | 1359 |
1360 def update(self, node, allow=False, force=False, choose=None, | 1360 def update(self, node, allow=False, force=False, choose=None, |
1361 moddirstate=True): | 1361 moddirstate=True, forcemerge=False): |
1362 pl = self.dirstate.parents() | 1362 pl = self.dirstate.parents() |
1363 if not force and pl[1] != nullid: | 1363 if not force and pl[1] != nullid: |
1364 self.ui.warn(_("aborting: outstanding uncommitted merges\n")) | 1364 self.ui.warn(_("aborting: outstanding uncommitted merges\n")) |
1365 return 1 | 1365 return 1 |
1366 | 1366 |
1375 mf2 = self.manifest.readflags(m2n) | 1375 mf2 = self.manifest.readflags(m2n) |
1376 ma = self.manifest.read(man) | 1376 ma = self.manifest.read(man) |
1377 mfa = self.manifest.readflags(man) | 1377 mfa = self.manifest.readflags(man) |
1378 | 1378 |
1379 (c, a, d, u) = self.changes() | 1379 (c, a, d, u) = self.changes() |
1380 | |
1381 if allow and not forcemerge: | |
1382 if c or a or d: | |
1383 raise util.Abort(_("outstanding uncommited changes")) | |
1384 if not forcemerge and not force: | |
1385 for f in u: | |
1386 if f in m2: | |
1387 t1 = self.wread(f) | |
1388 t2 = self.file(f).read(m2[f]) | |
1389 if cmp(t1, t2) != 0: | |
1390 raise util.Abort(_("'%s' already exists in the working" | |
1391 " dir and differs from remote") % f) | |
1380 | 1392 |
1381 # is this a jump, or a merge? i.e. is there a linear path | 1393 # is this a jump, or a merge? i.e. is there a linear path |
1382 # from p1 to p2? | 1394 # from p1 to p2? |
1383 linear_path = (pa == p1 or pa == p2) | 1395 linear_path = (pa == p1 or pa == p2) |
1384 | 1396 |