Mercurial > hg
comparison mercurial/commands.py @ 6723:1fe6f365df2e
merge: only in-branch merges can be implicit
author | Dirkjan Ochtman <dirkjan@ochtman.nl> |
---|---|
date | Mon, 23 Jun 2008 15:02:52 +0200 |
parents | bb1575f74f27 |
children | c9fbd6ec3489 |
comparison
equal
deleted
inserted
replaced
6722:197d54d82f8d | 6723:1fe6f365df2e |
---|---|
1889 requested revision. Files that changed between either parent are | 1889 requested revision. Files that changed between either parent are |
1890 marked as changed for the next commit and a commit must be | 1890 marked as changed for the next commit and a commit must be |
1891 performed before any further updates are allowed. | 1891 performed before any further updates are allowed. |
1892 | 1892 |
1893 If no revision is specified, the working directory's parent is a | 1893 If no revision is specified, the working directory's parent is a |
1894 head revision, and the repository contains exactly one other head, | 1894 head revision, and the current branch contains exactly one other head, |
1895 the other head is merged with by default. Otherwise, an explicit | 1895 the other head is merged with by default. Otherwise, an explicit |
1896 revision to merge with must be provided. | 1896 revision to merge with must be provided. |
1897 """ | 1897 """ |
1898 | 1898 |
1899 if rev and node: | 1899 if rev and node: |
1900 raise util.Abort(_("please specify just one revision")) | 1900 raise util.Abort(_("please specify just one revision")) |
1901 if not node: | 1901 if not node: |
1902 node = rev | 1902 node = rev |
1903 | 1903 |
1904 if not node: | 1904 if not node: |
1905 heads = repo.heads() | 1905 branch = repo.workingctx().branch() |
1906 if len(heads) > 2: | 1906 bheads = repo.branchheads() |
1907 raise util.Abort(_('repo has %d heads - ' | 1907 if len(bheads) > 2: |
1908 'please merge with an explicit rev') % | 1908 raise util.Abort(_("branch '%s' has %d heads - " |
1909 len(heads)) | 1909 "please merge with an explicit rev") % |
1910 (branch, len(bheads))) | |
1911 | |
1910 parent = repo.dirstate.parents()[0] | 1912 parent = repo.dirstate.parents()[0] |
1911 if len(heads) == 1: | 1913 if len(bheads) == 1: |
1914 if len(repo.heads()) > 1: | |
1915 raise util.Abort(_("branch '%s' has one head - " | |
1916 "please merge with an explicit rev") % | |
1917 branch) | |
1912 msg = _('there is nothing to merge') | 1918 msg = _('there is nothing to merge') |
1913 if parent != repo.lookup(repo.workingctx().branch()): | 1919 if parent != repo.lookup(repo.workingctx().branch()): |
1914 msg = _('%s - use "hg update" instead') % msg | 1920 msg = _('%s - use "hg update" instead') % msg |
1915 raise util.Abort(msg) | 1921 raise util.Abort(msg) |
1916 | 1922 |
1917 if parent not in heads: | 1923 if parent not in bheads: |
1918 raise util.Abort(_('working dir not at a head rev - ' | 1924 raise util.Abort(_('working dir not at a head rev - ' |
1919 'use "hg update" or merge with an explicit rev')) | 1925 'use "hg update" or merge with an explicit rev')) |
1920 node = parent == heads[0] and heads[-1] or heads[0] | 1926 node = parent == bheads[0] and bheads[-1] or bheads[0] |
1921 return hg.merge(repo, node, force=force) | 1927 return hg.merge(repo, node, force=force) |
1922 | 1928 |
1923 def outgoing(ui, repo, dest=None, **opts): | 1929 def outgoing(ui, repo, dest=None, **opts): |
1924 """show changesets not found in destination | 1930 """show changesets not found in destination |
1925 | 1931 |