860 Unlike import/export, this exactly preserves all changeset |
860 Unlike import/export, this exactly preserves all changeset |
861 contents including permissions, rename data, and revision history. |
861 contents including permissions, rename data, and revision history. |
862 """ |
862 """ |
863 dest = ui.expandpath(dest) |
863 dest = ui.expandpath(dest) |
864 other = hg.repository(ui, dest) |
864 other = hg.repository(ui, dest) |
865 o = repo.findoutgoing(other) |
865 o = repo.findoutgoing(other, force=opts['force']) |
866 cg = repo.changegroup(o, 'bundle') |
866 cg = repo.changegroup(o, 'bundle') |
867 write_bundle(cg, fname) |
867 write_bundle(cg, fname) |
868 |
868 |
869 def cat(ui, repo, file1, *pats, **opts): |
869 def cat(ui, repo, file1, *pats, **opts): |
870 """output the latest or given revisions of files |
870 """output the latest or given revisions of files |
1764 For remote repository, using --bundle avoids downloading the changesets |
1764 For remote repository, using --bundle avoids downloading the changesets |
1765 twice if the incoming is followed by a pull. |
1765 twice if the incoming is followed by a pull. |
1766 """ |
1766 """ |
1767 source = ui.expandpath(source) |
1767 source = ui.expandpath(source) |
1768 other = hg.repository(ui, source) |
1768 other = hg.repository(ui, source) |
1769 incoming = repo.findincoming(other) |
1769 incoming = repo.findincoming(other, force=opts["force"]) |
1770 if not incoming: |
1770 if not incoming: |
1771 return |
1771 return |
1772 |
1772 |
1773 cleanup = None |
1773 cleanup = None |
1774 if not other.local() or opts["bundle"]: |
1774 if not other.local() or opts["bundle"]: |
1976 |
1976 |
1977 See pull for valid source format details. |
1977 See pull for valid source format details. |
1978 """ |
1978 """ |
1979 dest = ui.expandpath(dest) |
1979 dest = ui.expandpath(dest) |
1980 other = hg.repository(ui, dest) |
1980 other = hg.repository(ui, dest) |
1981 o = repo.findoutgoing(other) |
1981 o = repo.findoutgoing(other, force=opts['force']) |
1982 o = repo.changelog.nodesbetween(o)[0] |
1982 o = repo.changelog.nodesbetween(o)[0] |
1983 if opts['newest_first']: |
1983 if opts['newest_first']: |
1984 o.reverse() |
1984 o.reverse() |
1985 displayer = show_changeset(ui, repo, opts) |
1985 displayer = show_changeset(ui, repo, opts) |
1986 for n in o: |
1986 for n in o: |
2064 revs = None |
2064 revs = None |
2065 if opts['rev'] and not other.local(): |
2065 if opts['rev'] and not other.local(): |
2066 raise util.Abort(_("pull -r doesn't work for remote repositories yet")) |
2066 raise util.Abort(_("pull -r doesn't work for remote repositories yet")) |
2067 elif opts['rev']: |
2067 elif opts['rev']: |
2068 revs = [other.lookup(rev) for rev in opts['rev']] |
2068 revs = [other.lookup(rev) for rev in opts['rev']] |
2069 r = repo.pull(other, heads=revs) |
2069 r = repo.pull(other, heads=revs, force=opts['force']) |
2070 if not r: |
2070 if not r: |
2071 if opts['update']: |
2071 if opts['update']: |
2072 return update(ui, repo) |
2072 return update(ui, repo) |
2073 else: |
2073 else: |
2074 ui.status(_("(run 'hg update' to get a working copy)\n")) |
2074 ui.status(_("(run 'hg update' to get a working copy)\n")) |
2644 ('I', 'include', [], _('include names matching the given patterns')), |
2644 ('I', 'include', [], _('include names matching the given patterns')), |
2645 ('X', 'exclude', [], _('exclude names matching the given patterns'))], |
2645 ('X', 'exclude', [], _('exclude names matching the given patterns'))], |
2646 _('hg annotate [-r REV] [-a] [-u] [-d] [-n] [-c] FILE...')), |
2646 _('hg annotate [-r REV] [-a] [-u] [-d] [-n] [-c] FILE...')), |
2647 "bundle": |
2647 "bundle": |
2648 (bundle, |
2648 (bundle, |
2649 [], |
2649 [('f', 'force', None, |
|
2650 _('run even when remote repository is unrelated'))], |
2650 _('hg bundle FILE DEST')), |
2651 _('hg bundle FILE DEST')), |
2651 "cat": |
2652 "cat": |
2652 (cat, |
2653 (cat, |
2653 [('o', 'output', '', _('print output to file with formatted name')), |
2654 [('o', 'output', '', _('print output to file with formatted name')), |
2654 ('r', 'rev', '', _('print the given revision')), |
2655 ('r', 'rev', '', _('print the given revision')), |
2755 ('f', 'force', None, |
2756 ('f', 'force', None, |
2756 _('skip check for outstanding uncommitted changes'))], |
2757 _('skip check for outstanding uncommitted changes'))], |
2757 _('hg import [-p NUM] [-b BASE] [-f] PATCH...')), |
2758 _('hg import [-p NUM] [-b BASE] [-f] PATCH...')), |
2758 "incoming|in": (incoming, |
2759 "incoming|in": (incoming, |
2759 [('M', 'no-merges', None, _('do not show merges')), |
2760 [('M', 'no-merges', None, _('do not show merges')), |
|
2761 ('f', 'force', None, |
|
2762 _('run even when remote repository is unrelated')), |
2760 ('', 'style', '', _('display using template map file')), |
2763 ('', 'style', '', _('display using template map file')), |
2761 ('n', 'newest-first', None, _('show newest record first')), |
2764 ('n', 'newest-first', None, _('show newest record first')), |
2762 ('', 'bundle', '', _('file to store the bundles into')), |
2765 ('', 'bundle', '', _('file to store the bundles into')), |
2763 ('p', 'patch', None, _('show patch')), |
2766 ('p', 'patch', None, _('show patch')), |
2764 ('', 'template', '', _('display with template'))], |
2767 ('', 'template', '', _('display with template'))], |
2789 ('X', 'exclude', [], _('exclude names matching the given patterns'))], |
2792 ('X', 'exclude', [], _('exclude names matching the given patterns'))], |
2790 _('hg log [OPTION]... [FILE]')), |
2793 _('hg log [OPTION]... [FILE]')), |
2791 "manifest": (manifest, [], _('hg manifest [REV]')), |
2794 "manifest": (manifest, [], _('hg manifest [REV]')), |
2792 "outgoing|out": (outgoing, |
2795 "outgoing|out": (outgoing, |
2793 [('M', 'no-merges', None, _('do not show merges')), |
2796 [('M', 'no-merges', None, _('do not show merges')), |
|
2797 ('f', 'force', None, |
|
2798 _('run even when remote repository is unrelated')), |
2794 ('p', 'patch', None, _('show patch')), |
2799 ('p', 'patch', None, _('show patch')), |
2795 ('', 'style', '', _('display using template map file')), |
2800 ('', 'style', '', _('display using template map file')), |
2796 ('n', 'newest-first', None, _('show newest record first')), |
2801 ('n', 'newest-first', None, _('show newest record first')), |
2797 ('', 'template', '', _('display with template'))], |
2802 ('', 'template', '', _('display with template'))], |
2798 _('hg outgoing [-M] [-p] [-n] [DEST]')), |
2803 _('hg outgoing [-M] [-p] [-n] [DEST]')), |
2806 "^pull": |
2811 "^pull": |
2807 (pull, |
2812 (pull, |
2808 [('u', 'update', None, |
2813 [('u', 'update', None, |
2809 _('update the working directory to tip after pull')), |
2814 _('update the working directory to tip after pull')), |
2810 ('e', 'ssh', '', _('specify ssh command to use')), |
2815 ('e', 'ssh', '', _('specify ssh command to use')), |
|
2816 ('f', 'force', None, |
|
2817 _('run even when remote repository is unrelated')), |
2811 ('r', 'rev', [], _('a specific revision you would like to pull')), |
2818 ('r', 'rev', [], _('a specific revision you would like to pull')), |
2812 ('', 'remotecmd', '', |
2819 ('', 'remotecmd', '', |
2813 _('specify hg command to run on the remote side'))], |
2820 _('specify hg command to run on the remote side'))], |
2814 _('hg pull [-u] [-e FILE] [-r REV]... [--remotecmd FILE] [SOURCE]')), |
2821 _('hg pull [-u] [-e FILE] [-r REV]... [--remotecmd FILE] [SOURCE]')), |
2815 "^push": |
2822 "^push": |