Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/localrepo.py @ 2266:3f7692b0ff13
hooks: add preupdate and update hooks.
preupdate run before working dir updated. can prevent update.
update run after working dir updated.
author | Vadim Gelfer <vadim.gelfer@gmail.com> |
---|---|
date | Thu, 11 May 2006 10:14:48 -0700 |
parents | fdb699b5e132 |
children | 8cb77698f5fd |
comparison
equal
deleted
inserted
replaced
2265:3e4a1a0739c2 | 2266:3f7692b0ff13 |
---|---|
1590 raise util.Abort(_("there is nothing to merge, " | 1590 raise util.Abort(_("there is nothing to merge, " |
1591 "just use 'hg update'")) | 1591 "just use 'hg update'")) |
1592 if allow and not forcemerge: | 1592 if allow and not forcemerge: |
1593 if modified or added or removed: | 1593 if modified or added or removed: |
1594 raise util.Abort(_("outstanding uncommitted changes")) | 1594 raise util.Abort(_("outstanding uncommitted changes")) |
1595 | |
1595 if not forcemerge and not force: | 1596 if not forcemerge and not force: |
1596 for f in unknown: | 1597 for f in unknown: |
1597 if f in m2: | 1598 if f in m2: |
1598 t1 = self.wread(f) | 1599 t1 = self.wread(f) |
1599 t2 = self.file(f).read(m2[f]) | 1600 t2 = self.file(f).read(m2[f]) |
1763 self.ui.status(_("(use 'hg merge' to merge across branches" | 1764 self.ui.status(_("(use 'hg merge' to merge across branches" |
1764 " or 'hg update -C' to lose changes)\n")) | 1765 " or 'hg update -C' to lose changes)\n")) |
1765 return 1 | 1766 return 1 |
1766 branch_merge = True | 1767 branch_merge = True |
1767 | 1768 |
1769 xp1 = hex(p1) | |
1770 xp2 = hex(p2) | |
1771 if p2 == nullid: xxp2 = '' | |
1772 else: xxp2 = xp2 | |
1773 | |
1774 self.hook('preupdate', throw=True, parent1=xp1, parent2=xxp2) | |
1775 | |
1768 # get the files we don't need to change | 1776 # get the files we don't need to change |
1769 files = get.keys() | 1777 files = get.keys() |
1770 files.sort() | 1778 files.sort() |
1771 for f in files: | 1779 for f in files: |
1772 if f[0] == "/": | 1780 if f[0] == "/": |
1783 | 1791 |
1784 # merge the tricky bits | 1792 # merge the tricky bits |
1785 failedmerge = [] | 1793 failedmerge = [] |
1786 files = merge.keys() | 1794 files = merge.keys() |
1787 files.sort() | 1795 files.sort() |
1788 xp1 = hex(p1) | |
1789 xp2 = hex(p2) | |
1790 for f in files: | 1796 for f in files: |
1791 self.ui.status(_("merging %s\n") % f) | 1797 self.ui.status(_("merging %s\n") % f) |
1792 my, other, flag = merge[f] | 1798 my, other, flag = merge[f] |
1793 ret = self.merge3(f, my, other, xp1, xp2) | 1799 ret = self.merge3(f, my, other, xp1, xp2) |
1794 if ret: | 1800 if ret: |
1848 self.ui.status(_("(branch merge, don't forget to commit)\n")) | 1854 self.ui.status(_("(branch merge, don't forget to commit)\n")) |
1849 elif failedmerge: | 1855 elif failedmerge: |
1850 self.ui.status(_("There are unresolved merges with" | 1856 self.ui.status(_("There are unresolved merges with" |
1851 " locally modified files.\n")) | 1857 " locally modified files.\n")) |
1852 | 1858 |
1859 self.hook('update', parent1=xp1, parent2=xxp2, error=int(err)) | |
1853 return err | 1860 return err |
1854 | 1861 |
1855 def merge3(self, fn, my, other, p1, p2): | 1862 def merge3(self, fn, my, other, p1, p2): |
1856 """perform a 3-way merge in the working directory""" | 1863 """perform a 3-way merge in the working directory""" |
1857 | 1864 |