##// END OF EJS Templates
Merge with mpm
Martin Geisler -
r9000:59bb11a9 merge default
parent child Browse files
Show More
@@ -5,6 +5,6 b' Basic install:'
5 $ hg debuginstall # sanity-check setup
5 $ hg debuginstall # sanity-check setup
6 $ hg # see help
6 $ hg # see help
7
7
8 See http://www.selenic.com/mercurial/ for detailed installation
8 See http://mercurial.selenic.com/ for detailed installation
9 instructions, platform-specific notes, and Mercurial user information.
9 instructions, platform-specific notes, and Mercurial user information.
10
10
@@ -25,13 +25,13 b''
25 <p class="p2"><br></p>
25 <p class="p2"><br></p>
26 <p class="p1"><b>Documentation</b></p>
26 <p class="p1"><b>Documentation</b></p>
27 <p class="p2"><br></p>
27 <p class="p2"><br></p>
28 <p class="p3">Visit the <a href="http://www.selenic.com/mercurial">Mercurial web site and wiki</a></p>
28 <p class="p3">Visit the <a href="http://mercurial.selenic.com/">Mercurial web site and wiki</a></p>
29 <p class="p2"><br></p>
29 <p class="p2"><br></p>
30 <p class="p3">There's also a free book, <a href="http://hgbook.red-bean.com/">Distributed revision control with Mercurial</a></p>
30 <p class="p3">There's also a free book, <a href="http://hgbook.red-bean.com/">Distributed revision control with Mercurial</a></p>
31 <p class="p2"><br></p>
31 <p class="p2"><br></p>
32 <p class="p1"><b>Reporting problems</b></p>
32 <p class="p1"><b>Reporting problems</b></p>
33 <p class="p2"><br></p>
33 <p class="p2"><br></p>
34 <p class="p3">If you run into any problems, please file a bug online:</p>
34 <p class="p3">If you run into any problems, please file a bug online:</p>
35 <p class="p3"><a href="http://www.selenic.com/mercurial/bts">http://www.selenic.com/mercurial/bts</a></p>
35 <p class="p3"><a href="http://mercurial.selenic.com/bts/">http://mercurial.selenic.com/bts/</a></p>
36 </body>
36 </body>
37 </html>
37 </html>
@@ -11,10 +11,10 b''
11 </style>
11 </style>
12 </head>
12 </head>
13 <body>
13 <body>
14 <p class="p1">This is a prepackaged release of <a href="http://www.selenic.com/mercurial">Mercurial</a> for Mac OS X.</p>
14 <p class="p1">This is a prepackaged release of <a href="http://mercurial.selenic.com/">Mercurial</a> for Mac OS X.</p>
15 <p class="p2"><br></p>
15 <p class="p2"><br></p>
16 <br>
16 <br>
17 <p>
17 <p>
18 Please be sure to read the latest <a href="http://www.selenic.com/mercurial/wiki/index.cgi/WhatsNew">release notes</a>.</p>
18 Please be sure to read the latest <a href="http://mercurial.selenic.com/wiki/WhatsNew">release notes</a>.</p>
19 </body>
19 </body>
20 </html>
20 </html>
@@ -2,10 +2,10 b' Summary: Mercurial -- a distributed SCM'
2 Name: mercurial
2 Name: mercurial
3 Version: snapshot
3 Version: snapshot
4 Release: 0
4 Release: 0
5 License: GPL
5 License: GPLv2
6 Group: Development/Tools
6 Group: Development/Tools
7 Source: http://www.selenic.com/mercurial/release/%{name}-%{version}.tar.gz
7 URL: http://mercurial.selenic.com/
8 URL: http://www.selenic.com/mercurial
8 Source0: http://mercurial.selenic.com/release/%{name}-%{version}.tar.gz
9 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
9 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
10
10
11 # From the README:
11 # From the README:
@@ -18,10 +18,10 b' BuildRoot: %{_tmppath}/%{name}-%{version'
18 # run-time dependency.
18 # run-time dependency.
19 #
19 #
20 BuildRequires: python >= 2.4, python-devel, make, gcc, asciidoc, xmlto
20 BuildRequires: python >= 2.4, python-devel, make, gcc, asciidoc, xmlto
21 Provides: hg = %{version}-%{release}
21
22
22 %define pythonver %(python -c 'import sys;print ".".join(map(str, sys.version_info[:2]))')
23 %define pythonver %(python -c 'import sys;print ".".join(map(str, sys.version_info[:2]))')
23 %define pythonlib %{_libdir}/python%{pythonver}/site-packages/%{name}
24 %define emacs_lispdir %{_datadir}/emacs/site-lisp
24 %define hgext %{_libdir}/python%{pythonver}/site-packages/hgext
25
25
26 %description
26 %description
27 Mercurial is a fast, lightweight source control management system designed
27 Mercurial is a fast, lightweight source control management system designed
@@ -45,23 +45,26 b' install contrib/git-viz/{hg-viz,git-rev-'
45
45
46 bash_completion_dir=$RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
46 bash_completion_dir=$RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
47 mkdir -p $bash_completion_dir
47 mkdir -p $bash_completion_dir
48 install contrib/bash_completion $bash_completion_dir/mercurial.sh
48 install -m 644 contrib/bash_completion $bash_completion_dir/mercurial.sh
49
49
50 zsh_completion_dir=$RPM_BUILD_ROOT%{_datadir}/zsh/site-functions
50 zsh_completion_dir=$RPM_BUILD_ROOT%{_datadir}/zsh/site-functions
51 mkdir -p $zsh_completion_dir
51 mkdir -p $zsh_completion_dir
52 install contrib/zsh_completion $zsh_completion_dir/_mercurial
52 install -m 644 contrib/zsh_completion $zsh_completion_dir/_mercurial
53
53
54 lisp_dir=$RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp
54 mkdir -p $RPM_BUILD_ROOT%{emacs_lispdir}
55 mkdir -p $lisp_dir
55 install contrib/mercurial.el $RPM_BUILD_ROOT%{emacs_lispdir}
56 install contrib/mercurial.el $lisp_dir
56
57 mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/mercurial/hgrc.d
58 install contrib/mergetools.hgrc $RPM_BUILD_ROOT%{_sysconfdir}/mercurial/hgrc.d/mergetools.rc
57
59
58 %clean
60 %clean
59 rm -rf $RPM_BUILD_ROOT
61 rm -rf $RPM_BUILD_ROOT
60
62
61 %files
63 %files
62 %defattr(-,root,root,-)
64 %defattr(-,root,root,-)
63 %doc CONTRIBUTORS COPYING doc/README doc/hg*.txt doc/hg*.html doc/ja *.cgi
65 %doc CONTRIBUTORS COPYING doc/README doc/hg*.txt doc/hg*.html doc/ja *.cgi contrib/*.fcgi
64 %{_mandir}/man?/hg*.gz
66 %doc %attr(644,root,root) %{_mandir}/man?/hg*.gz
67 %doc %attr(644,root,root) contrib/*.svg contrib/sample.hgrc
65 %{_sysconfdir}/bash_completion.d/mercurial.sh
68 %{_sysconfdir}/bash_completion.d/mercurial.sh
66 %{_datadir}/zsh/site-functions/_mercurial
69 %{_datadir}/zsh/site-functions/_mercurial
67 %{_datadir}/emacs/site-lisp/mercurial.el
70 %{_datadir}/emacs/site-lisp/mercurial.el
@@ -71,8 +74,13 b' rm -rf $RPM_BUILD_ROOT'
71 %{_bindir}/hg-viz
74 %{_bindir}/hg-viz
72 %{_bindir}/git-rev-tree
75 %{_bindir}/git-rev-tree
73 %{_bindir}/mercurial-convert-repo
76 %{_bindir}/mercurial-convert-repo
77 %dir %{_sysconfdir}/bash_completion.d/
78 %dir %{_datadir}/zsh/site-functions/
79 %dir %{_sysconfdir}/mercurial
80 %dir %{_sysconfdir}/mercurial/hgrc.d
81 %config(noreplace) %{_sysconfdir}/mercurial/hgrc.d/mergetools.rc
74 %if "%{?pythonver}" != "2.4"
82 %if "%{?pythonver}" != "2.4"
75 %{_libdir}/python%{pythonver}/site-packages/%{name}-*-py%{pythonver}.egg-info
83 %{_libdir}/python%{pythonver}/site-packages/%{name}-*-py%{pythonver}.egg-info
76 %endif
84 %endif
77 %{pythonlib}
85 %{_libdir}/python%{pythonver}/site-packages/%{name}
78 %{hgext}
86 %{_libdir}/python%{pythonver}/site-packages/hgext
@@ -1226,7 +1226,7 b' finish'
1226
1226
1227 Author: Mathieu Clabaut <mathieu.clabaut@gmail.com>
1227 Author: Mathieu Clabaut <mathieu.clabaut@gmail.com>
1228 Credits: Bob Hiestand <bob.hiestand@gmail.com>
1228 Credits: Bob Hiestand <bob.hiestand@gmail.com>
1229 Mercurial: http://www.selenic.com/mercurial
1229 Mercurial: http://mercurial.selenic.com/
1230 Mercurial (noted Hg) is a fast, lightweight Source Control Management
1230 Mercurial (noted Hg) is a fast, lightweight Source Control Management
1231 system designed for efficient handling of very large distributed projects.
1231 system designed for efficient handling of very large distributed projects.
1232
1232
@@ -49,7 +49,7 b''
49
49
50 <p>
50 <p>
51 For documentation, please visit the <a
51 For documentation, please visit the <a
52 href="http://www.selenic.com/mercurial">Mercurial web site</a>.
52 href="http://mercurial.selenic.com/">Mercurial web site</a>.
53 You can also download a free book, <a
53 You can also download a free book, <a
54 href="http://hgbook.red-bean.com/">Mercurial: The Definitive
54 href="http://hgbook.red-bean.com/">Mercurial: The Definitive
55 Guide</a>.
55 Guide</a>.
@@ -100,7 +100,7 b' editor = whatever'
100 By default, Mercurial will use the merge program defined by the
100 By default, Mercurial will use the merge program defined by the
101 <tt>HGMERGE</tt> environment variable, or uses the one defined
101 <tt>HGMERGE</tt> environment variable, or uses the one defined
102 in the <tt>mercurial.ini</tt> file. (see <a
102 in the <tt>mercurial.ini</tt> file. (see <a
103 href="http://www.selenic.com/mercurial/wiki/index.cgi/MergeProgram">MergeProgram</a>
103 href="http://mercurial.selenic.com/wiki/MergeProgram">MergeProgram</a>
104 on the Mercurial Wiki for more information)
104 on the Mercurial Wiki for more information)
105 </p>
105 </p>
106
106
@@ -108,9 +108,9 b' editor = whatever'
108
108
109 <p>
109 <p>
110 Before you report any problems, please consult the <a
110 Before you report any problems, please consult the <a
111 href="http://www.selenic.com/mercurial">Mercurial web site</a>
111 href="http://mercurial.selenic.com/">Mercurial web site</a>
112 and see if your question is already in our list of <a
112 and see if your question is already in our list of <a
113 href="http://www.selenic.com/mercurial/wiki/index.cgi/FAQ">Frequently
113 href="http://mercurial.selenic.com/wiki/FAQ">Frequently
114 Answered Questions</a> (the "FAQ").
114 Answered Questions</a> (the "FAQ").
115 </p>
115 </p>
116
116
@@ -8,9 +8,9 b' InfoAfterFile=contrib/win32/postinstall.'
8 LicenseFile=COPYING
8 LicenseFile=COPYING
9 ShowLanguageDialog=yes
9 ShowLanguageDialog=yes
10 AppPublisher=Matt Mackall and others
10 AppPublisher=Matt Mackall and others
11 AppPublisherURL=http://www.selenic.com/mercurial
11 AppPublisherURL=http://mercurial.selenic.com/
12 AppSupportURL=http://www.selenic.com/mercurial
12 AppSupportURL=http://mercurial.selenic.com/
13 AppUpdatesURL=http://www.selenic.com/mercurial
13 AppUpdatesURL=http://mercurial.selenic.com/
14 AppID={{4B95A5F1-EF59-4B08-BED8-C891C46121B3}
14 AppID={{4B95A5F1-EF59-4B08-BED8-C891C46121B3}
15 AppContact=mercurial@selenic.com
15 AppContact=mercurial@selenic.com
16 OutputBaseFilename=Mercurial-snapshot
16 OutputBaseFilename=Mercurial-snapshot
@@ -51,7 +51,7 b' Source: CONTRIBUTORS; DestDir: {app}; De'
51 Source: COPYING; DestDir: {app}; DestName: Copying.txt
51 Source: COPYING; DestDir: {app}; DestName: Copying.txt
52
52
53 [INI]
53 [INI]
54 Filename: {app}\Mercurial.url; Section: InternetShortcut; Key: URL; String: http://www.selenic.com/mercurial/
54 Filename: {app}\Mercurial.url; Section: InternetShortcut; Key: URL; String: http://mercurial.selenic.com/
55
55
56 [UninstallDelete]
56 [UninstallDelete]
57 Type: files; Name: {app}\Mercurial.url
57 Type: files; Name: {app}\Mercurial.url
@@ -6,4 +6,4 b' file that comes with this package.'
6
6
7 Also check the release notes at:
7 Also check the release notes at:
8
8
9 http://www.selenic.com/mercurial/wiki/index.cgi/WhatsNew
9 http://mercurial.selenic.com/wiki/WhatsNew
@@ -13,13 +13,25 b''
13 # autoload -U compinit
13 # autoload -U compinit
14 # compinit
14 # compinit
15 #
15 #
16 # Copyright (C) 2005-6 Steve Borho
16 # Copyright (C) 2005, 2006 Steve Borho <steve@borho.org>
17 # Copyright (C) 2006-8 Brendan Cully <brendan@kublai.com>
17 # Copyright (C) 2006, 2007, 2008 Brendan Cully <brendan@kublai.com>
18 #
19 # Permission is hereby granted, without written agreement and without
20 # licence or royalty fees, to use, copy, modify, and distribute this
21 # software and to distribute modified versions of this software for any
22 # purpose, provided that the above copyright notice and the following
23 # two paragraphs appear in all copies of this software.
18 #
24 #
19 # This is free software; you can redistribute it and/or modify it under
25 # In no event shall the authors be liable to any party for direct,
20 # the terms of the GNU General Public License as published by the Free
26 # indirect, special, incidental, or consequential damages arising out of
21 # Software Foundation; either version 2 of the License, or (at your
27 # the use of this software and its documentation, even if the authors
22 # option) any later version.
28 # have been advised of the possibility of such damage.
29 #
30 # The authors specifically disclaim any warranties, including, but not
31 # limited to, the implied warranties of merchantability and fitness for
32 # a particular purpose. The software provided hereunder is on an "as
33 # is" basis, and the authors have no obligation to provide maintenance,
34 # support, updates, enhancements, or modifications.
23
35
24 emulate -LR zsh
36 emulate -LR zsh
25 setopt extendedglob
37 setopt extendedglob
@@ -75,7 +75,7 b' Written by Matt Mackall <mpm@selenic.com'
75
75
76 RESOURCES
76 RESOURCES
77 ---------
77 ---------
78 http://selenic.com/mercurial[Main Web Site]
78 http://mercurial.selenic.com/[Main Web Site]
79
79
80 http://selenic.com/hg[Source code repository]
80 http://selenic.com/hg[Source code repository]
81
81
@@ -852,7 +852,7 b' Matt Mackall <mpm@selenic.com> \xe3\x81\xab\xe3\x82\x88\xe3\x82\x8a\xe6\x9b\xb8\xe3\x81\x8b\xe3\x82\x8c\xe3\x81\xbe\xe3\x81\x97\xe3\x81\x9f\xe3\x80\x82'
852
852
853 情報源
853 情報源
854 ---
854 ---
855 http://selenic.com/mercurial[主なウェブサイト]
855 http://mercurial.selenic.com/[主なウェブサイト]
856
856
857 http://www.serpentine.com/mercurial[Wiki サイト]
857 http://www.serpentine.com/mercurial[Wiki サイト]
858
858
@@ -6,7 +6,7 b''
6 # GNU General Public License version 2, incorporated herein by reference.
6 # GNU General Public License version 2, incorporated herein by reference.
7 #
7 #
8
8
9 '''control access to a repository using simple hooks
9 '''hooks for controlling repository access
10
10
11 This hook makes it possible to allow or deny write access to portions
11 This hook makes it possible to allow or deny write access to portions
12 of a repository when receiving incoming changesets.
12 of a repository when receiving incoming changesets.
@@ -257,14 +257,14 b' def reposetup(ui, repo):'
257 node = super(bookmark_repo, self).commit(*k, **kw)
257 node = super(bookmark_repo, self).commit(*k, **kw)
258 if node is None:
258 if node is None:
259 return None
259 return None
260 parents = repo.changelog.parents(node)
260 parents = self.changelog.parents(node)
261 if parents[1] == nullid:
261 if parents[1] == nullid:
262 parents = (parents[0],)
262 parents = (parents[0],)
263 marks = parse(repo)
263 marks = parse(self)
264 update = False
264 update = False
265 for mark, n in marks.items():
265 for mark, n in marks.items():
266 if ui.configbool('bookmarks', 'track.current'):
266 if ui.configbool('bookmarks', 'track.current'):
267 if mark == current(repo) and n in parents:
267 if mark == current(self) and n in parents:
268 marks[mark] = node
268 marks[mark] = node
269 update = True
269 update = True
270 else:
270 else:
@@ -272,28 +272,28 b' def reposetup(ui, repo):'
272 marks[mark] = node
272 marks[mark] = node
273 update = True
273 update = True
274 if update:
274 if update:
275 write(repo, marks)
275 write(self, marks)
276 return node
276 return node
277 finally:
277 finally:
278 wlock.release()
278 wlock.release()
279
279
280 def addchangegroup(self, source, srctype, url, emptyok=False):
280 def addchangegroup(self, source, srctype, url, emptyok=False):
281 parents = repo.dirstate.parents()
281 parents = self.dirstate.parents()
282
282
283 result = super(bookmark_repo, self).addchangegroup(
283 result = super(bookmark_repo, self).addchangegroup(
284 source, srctype, url, emptyok)
284 source, srctype, url, emptyok)
285 if result > 1:
285 if result > 1:
286 # We have more heads than before
286 # We have more heads than before
287 return result
287 return result
288 node = repo.changelog.tip()
288 node = self.changelog.tip()
289 marks = parse(repo)
289 marks = parse(self)
290 update = False
290 update = False
291 for mark, n in marks.items():
291 for mark, n in marks.items():
292 if n in parents:
292 if n in parents:
293 marks[mark] = node
293 marks[mark] = node
294 update = True
294 update = True
295 if update:
295 if update:
296 write(repo, marks)
296 write(self, marks)
297 return result
297 return result
298
298
299 def tags(self):
299 def tags(self):
@@ -302,7 +302,7 b' def reposetup(ui, repo):'
302 return self.tagscache
302 return self.tagscache
303
303
304 tagscache = super(bookmark_repo, self).tags()
304 tagscache = super(bookmark_repo, self).tags()
305 tagscache.update(parse(repo))
305 tagscache.update(parse(self))
306 return tagscache
306 return tagscache
307
307
308 repo.__class__ = bookmark_repo
308 repo.__class__ = bookmark_repo
@@ -5,7 +5,7 b''
5 # This software may be used and distributed according to the terms of the
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2, incorporated herein by reference.
6 # GNU General Public License version 2, incorporated herein by reference.
7
7
8 '''integrate Mercurial with a Bugzilla bug tracker
8 '''hooks for integrating with the Bugzilla bug tracker
9
9
10 This hook extension adds comments on bugs in Bugzilla when changesets
10 This hook extension adds comments on bugs in Bugzilla when changesets
11 that refer to bugs by Bugzilla ID are seen. The hook does not change
11 that refer to bugs by Bugzilla ID are seen. The hook does not change
@@ -8,7 +8,7 b''
8 # This software may be used and distributed according to the terms of the
8 # This software may be used and distributed according to the terms of the
9 # GNU General Public License version 2, incorporated herein by reference.
9 # GNU General Public License version 2, incorporated herein by reference.
10
10
11 '''display children changesets'''
11 '''command to display child changesets'''
12
12
13 from mercurial import cmdutil
13 from mercurial import cmdutil
14 from mercurial.commands import templateopts
14 from mercurial.commands import templateopts
@@ -6,7 +6,7 b''
6 # This software may be used and distributed according to the terms of the
6 # This software may be used and distributed according to the terms of the
7 # GNU General Public License version 2, incorporated herein by reference.
7 # GNU General Public License version 2, incorporated herein by reference.
8
8
9 '''display statistics about repository history'''
9 '''command to display statistics about repository history'''
10
10
11 from mercurial.i18n import _
11 from mercurial.i18n import _
12 from mercurial import patch, cmdutil, util, templater
12 from mercurial import patch, cmdutil, util, templater
@@ -60,7 +60,7 b' diff.trailingwhitespace = bold red_backg'
60
60
61 import os, sys
61 import os, sys
62
62
63 from mercurial import cmdutil, commands, extensions
63 from mercurial import cmdutil, commands, extensions, error
64 from mercurial.i18n import _
64 from mercurial.i18n import _
65
65
66 # start and stop parameters for effects
66 # start and stop parameters for effects
@@ -220,18 +220,30 b' def colordiff(orig, ui, repo, *pats, **o'
220 'changed': ['white'],
220 'changed': ['white'],
221 'trailingwhitespace': ['bold', 'red_background']}
221 'trailingwhitespace': ['bold', 'red_background']}
222
222
223 _ui = None
224
223 def uisetup(ui):
225 def uisetup(ui):
224 '''Initialize the extension.'''
226 '''Initialize the extension.'''
227 global _ui
228 _ui = ui
225 _setupcmd(ui, 'diff', commands.table, colordiff, _diff_effects)
229 _setupcmd(ui, 'diff', commands.table, colordiff, _diff_effects)
226 _setupcmd(ui, 'incoming', commands.table, None, _diff_effects)
230 _setupcmd(ui, 'incoming', commands.table, None, _diff_effects)
227 _setupcmd(ui, 'log', commands.table, None, _diff_effects)
231 _setupcmd(ui, 'log', commands.table, None, _diff_effects)
228 _setupcmd(ui, 'outgoing', commands.table, None, _diff_effects)
232 _setupcmd(ui, 'outgoing', commands.table, None, _diff_effects)
229 _setupcmd(ui, 'tip', commands.table, None, _diff_effects)
233 _setupcmd(ui, 'tip', commands.table, None, _diff_effects)
230 _setupcmd(ui, 'status', commands.table, colorstatus, _status_effects)
234 _setupcmd(ui, 'status', commands.table, colorstatus, _status_effects)
235
236 def extsetup():
231 try:
237 try:
232 mq = extensions.find('mq')
238 mq = extensions.find('mq')
233 _setupcmd(ui, 'qdiff', mq.cmdtable, colordiff, _diff_effects)
239 try:
234 _setupcmd(ui, 'qseries', mq.cmdtable, colorqseries, _patch_effects)
240 # If we are loaded after mq, we must wrap commands.table
241 _setupcmd(_ui, 'qdiff', commands.table, colordiff, _diff_effects)
242 _setupcmd(_ui, 'qseries', commands.table, colorqseries, _patch_effects)
243 except error.UnknownCommand:
244 # Otherwise we wrap mq.cmdtable
245 _setupcmd(_ui, 'qdiff', mq.cmdtable, colordiff, _diff_effects)
246 _setupcmd(_ui, 'qseries', mq.cmdtable, colorqseries, _patch_effects)
235 except KeyError:
247 except KeyError:
236 # The mq extension is not enabled
248 # The mq extension is not enabled
237 pass
249 pass
@@ -261,6 +273,15 b' def _setupcmd(ui, cmd, table, func, effe'
261 ])
273 ])
262
274
263 for status in effectsmap:
275 for status in effectsmap:
264 effects = ui.configlist('color', cmd + '.' + status)
276 configkey = cmd + '.' + status
277 effects = ui.configlist('color', configkey)
265 if effects:
278 if effects:
266 effectsmap[status] = effects
279 good = []
280 for e in effects:
281 if e in _effect_params:
282 good.append(e)
283 else:
284 ui.warn(_("ignoring unknown color/effect %r "
285 "(configured in color.%s)\n")
286 % (e, configkey))
287 effectsmap[status] = good
@@ -5,7 +5,7 b''
5 # This software may be used and distributed according to the terms of the
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2, incorporated herein by reference.
6 # GNU General Public License version 2, incorporated herein by reference.
7
7
8 '''import from foreign VCS repositories into Mercurial'''
8 '''import revisions from foreign VCS repositories into Mercurial'''
9
9
10 import convcmd
10 import convcmd
11 import cvsps
11 import cvsps
@@ -5,7 +5,7 b''
5 # This software may be used and distributed according to the terms of the
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2, incorporated herein by reference.
6 # GNU General Public License version 2, incorporated herein by reference.
7
7
8 '''allow external programs to compare revisions
8 '''command to allow external programs to compare revisions
9
9
10 The `extdiff' Mercurial extension allows you to use external programs
10 The `extdiff' Mercurial extension allows you to use external programs
11 to compare revisions, or revision with working directory. The external diff
11 to compare revisions, or revision with working directory. The external diff
@@ -3,7 +3,7 b''
3 # This software may be used and distributed according to the terms of the
3 # This software may be used and distributed according to the terms of the
4 # GNU General Public License version 2, incorporated herein by reference.
4 # GNU General Public License version 2, incorporated herein by reference.
5
5
6 '''sign and verify changesets'''
6 '''commands to sign and verify changesets'''
7
7
8 import os, tempfile, binascii
8 import os, tempfile, binascii
9 from mercurial import util, commands, match
9 from mercurial import util, commands, match
@@ -5,7 +5,7 b''
5 # This software may be used and distributed according to the terms of the
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2, incorporated herein by reference.
6 # GNU General Public License version 2, incorporated herein by reference.
7
7
8 '''show revision graphs in terminals
8 '''command to view revision graphs from a shell
9
9
10 This extension adds a --graph option to the incoming, outgoing and log
10 This extension adds a --graph option to the incoming, outgoing and log
11 commands. When this options is given, an ASCII representation of the
11 commands. When this options is given, an ASCII representation of the
@@ -1,7 +1,7 b''
1 # Copyright (C) 2007-8 Brendan Cully <brendan@kublai.com>
1 # Copyright (C) 2007-8 Brendan Cully <brendan@kublai.com>
2 # Published under the GNU GPL
2 # Published under the GNU GPL
3
3
4 """integrate Mercurial with a CIA notification service
4 """hooks for integrating with the CIA.vc notification service
5
5
6 This is meant to be run as a changegroup or incoming hook.
6 This is meant to be run as a changegroup or incoming hook.
7 To configure it, set the following options in your hgrc:
7 To configure it, set the following options in your hgrc:
@@ -331,7 +331,7 b' cmdtable = {'
331 "debug-config":
331 "debug-config":
332 (config, [], _('hg debug-config')),
332 (config, [], _('hg debug-config')),
333 "debug-merge-base":
333 "debug-merge-base":
334 (base, [], _('hg debug-merge-base node node')),
334 (base, [], _('hg debug-merge-base REV REV')),
335 "debug-rev-parse":
335 "debug-rev-parse":
336 (revparse,
336 (revparse,
337 [('', 'default', '', _('ignored'))],
337 [('', 'default', '', _('ignored'))],
@@ -342,5 +342,5 b' cmdtable = {'
342 ('t', 'topo-order', None, _('topo-order')),
342 ('t', 'topo-order', None, _('topo-order')),
343 ('p', 'parents', None, _('parents')),
343 ('p', 'parents', None, _('parents')),
344 ('n', 'max-count', 0, _('max-count'))],
344 ('n', 'max-count', 0, _('max-count'))],
345 _('hg debug-rev-list [options] revs')),
345 _('hg debug-rev-list [OPTION]... REV...')),
346 }
346 }
@@ -8,7 +8,7 b''
8 # The original module was split in an interface and an implementation
8 # The original module was split in an interface and an implementation
9 # file to defer pygments loading and speedup extension setup.
9 # file to defer pygments loading and speedup extension setup.
10
10
11 """syntax highlighting for hgweb
11 """syntax highlighting for hgweb (requires Pygments)
12
12
13 It depends on the Pygments syntax highlighting library:
13 It depends on the Pygments syntax highlighting library:
14 http://pygments.org/
14 http://pygments.org/
@@ -19,8 +19,6 b' There is a single configuration option:'
19 pygments_style = <style>
19 pygments_style = <style>
20
20
21 The default is 'colorful'.
21 The default is 'colorful'.
22
23 -- Adam Hupp <adam@hupp.org>
24 """
22 """
25
23
26 import highlight
24 import highlight
@@ -6,7 +6,7 b''
6 # This software may be used and distributed according to the terms of the
6 # This software may be used and distributed according to the terms of the
7 # GNU General Public License version 2, incorporated herein by reference.
7 # GNU General Public License version 2, incorporated herein by reference.
8
8
9 '''accelerate status report using system level services'''
9 '''accelerate status report using Linux's inotify service'''
10
10
11 # todo: socket permissions
11 # todo: socket permissions
12
12
@@ -107,5 +107,5 b' cmdtable = {'
107 ('', 'daemon-pipefds', '', _('used internally by daemon mode')),
107 ('', 'daemon-pipefds', '', _('used internally by daemon mode')),
108 ('t', 'idle-timeout', '', _('minutes to sit idle before exiting')),
108 ('t', 'idle-timeout', '', _('minutes to sit idle before exiting')),
109 ('', 'pid-file', '', _('name of file to write process ID to'))],
109 ('', 'pid-file', '', _('name of file to write process ID to'))],
110 _('hg inserve [OPT]...')),
110 _('hg inserve [OPTION]...')),
111 }
111 }
@@ -288,14 +288,6 b' class repowatcher(pollable):'
288 self.add_watch(self.repo.path, inotify.IN_DELETE)
288 self.add_watch(self.repo.path, inotify.IN_DELETE)
289 self.check_dirstate()
289 self.check_dirstate()
290
290
291 def wpath(self, evt):
292 path = evt.fullpath
293 if path == self.repo.root:
294 return ''
295 if path.startswith(self.wprefix):
296 return path[len(self.wprefix):]
297 raise 'wtf? ' + path
298
299 def dir(self, tree, path):
291 def dir(self, tree, path):
300 if path:
292 if path:
301 for name in path.split('/'):
293 for name in path.split('/'):
@@ -585,7 +577,9 b' class repowatcher(pollable):'
585 self.ui.note(_('%s reading %d events\n') %
577 self.ui.note(_('%s reading %d events\n') %
586 (self.event_time(), len(events)))
578 (self.event_time(), len(events)))
587 for evt in events:
579 for evt in events:
588 wpath = self.wpath(evt)
580 assert evt.fullpath.startswith(self.wprefix)
581 wpath = evt.fullpath[len(self.wprefix):]
582
589 if evt.mask & inotify.IN_UNMOUNT:
583 if evt.mask & inotify.IN_UNMOUNT:
590 self.process_unmount(wpath, evt)
584 self.process_unmount(wpath, evt)
591 elif evt.mask & (inotify.IN_MODIFY | inotify.IN_ATTRIB):
585 elif evt.mask & (inotify.IN_MODIFY | inotify.IN_ATTRIB):
@@ -717,6 +711,12 b' class server(pollable):'
717 if version != common.version:
711 if version != common.version:
718 self.ui.warn(_('received query from incompatible client '
712 self.ui.warn(_('received query from incompatible client '
719 'version %d\n') % version)
713 'version %d\n') % version)
714 try:
715 # try to send back our version to the client
716 # this way, the client too is informed of the mismatch
717 sock.sendall(chr(common.version))
718 except:
719 pass
720 return
720 return
721
721
722 type = cs.read(4)
722 type = cs.read(4)
@@ -15,7 +15,7 b''
15 # audience not running a version control system.
15 # audience not running a version control system.
16 #
16 #
17 # For in-depth discussion refer to
17 # For in-depth discussion refer to
18 # <http://www.selenic.com/mercurial/wiki/index.cgi/KeywordPlan>.
18 # <http://mercurial.selenic.com/wiki/KeywordPlan>.
19 #
19 #
20 # Keyword expansion is based on Mercurial's changeset template mappings.
20 # Keyword expansion is based on Mercurial's changeset template mappings.
21 #
21 #
@@ -281,9 +281,6 b' def demo(ui, repo, *args, **opts):'
281
281
282 Override current keyword template maps with "default" option.
282 Override current keyword template maps with "default" option.
283 '''
283 '''
284 def demostatus(stat):
285 ui.status(_('\n\t%s\n') % stat)
286
287 def demoitems(section, items):
284 def demoitems(section, items):
288 ui.write('[%s]\n' % section)
285 ui.write('[%s]\n' % section)
289 for k, v in items:
286 for k, v in items:
@@ -323,7 +320,7 b' def demo(ui, repo, *args, **opts):'
323 if k.endswith('keyword'):
320 if k.endswith('keyword'):
324 extension = '%s = %s' % (k, v)
321 extension = '%s = %s' % (k, v)
325 break
322 break
326 demostatus('config using %s keyword template maps' % kwstatus)
323 ui.status(_('\n\tconfig using %s keyword template maps\n') % kwstatus)
327 ui.write('[extensions]\n%s\n' % extension)
324 ui.write('[extensions]\n%s\n' % extension)
328 demoitems('keyword', ui.configitems('keyword'))
325 demoitems('keyword', ui.configitems('keyword'))
329 demoitems('keywordmaps', kwmaps.iteritems())
326 demoitems('keywordmaps', kwmaps.iteritems())
@@ -346,7 +343,7 b' def demo(ui, repo, *args, **opts):'
346 ui.note('hg -R "%s" ci -m "%s"\n' % (tmpdir, msg))
343 ui.note('hg -R "%s" ci -m "%s"\n' % (tmpdir, msg))
347 repo.commit(text=msg)
344 repo.commit(text=msg)
348 fmt = ui.verbose and ' in %s' % path or ''
345 fmt = ui.verbose and ' in %s' % path or ''
349 demostatus('%s keywords expanded%s' % (kwstatus, fmt))
346 ui.status(_('\n\t%s keywords expanded%s\n') % (kwstatus, fmt))
350 ui.write(repo.wread(fn))
347 ui.write(repo.wread(fn))
351 ui.debug(_('\nremoving temporary repository %s\n') % tmpdir)
348 ui.debug(_('\nremoving temporary repository %s\n') % tmpdir)
352 shutil.rmtree(tmpdir, ignore_errors=True)
349 shutil.rmtree(tmpdir, ignore_errors=True)
@@ -362,22 +359,40 b' def expand(ui, repo, *pats, **opts):'
362 _kwfwrite(ui, repo, True, *pats, **opts)
359 _kwfwrite(ui, repo, True, *pats, **opts)
363
360
364 def files(ui, repo, *pats, **opts):
361 def files(ui, repo, *pats, **opts):
365 '''print files currently configured for keyword expansion
362 '''show files configured for keyword expansion
363
364 List which files in the working directory are matched by the
365 [keyword] configuration patterns.
366
367 Useful to prevent inadvertent keyword expansion and to speed up
368 execution by including only files that are actual candidates
369 for expansion.
366
370
367 Crosscheck which files in working directory are potential targets
371 See "hg help keyword" on how to construct patterns both for
368 for keyword expansion. That is, files matched by [keyword] config
372 inclusion and exclusion of files.
369 patterns but not symlinks.
373
374 Use -u/--untracked to list untracked files as well.
375
376 With -a/--all and -v/--verbose the codes used to show the status
377 of files are:
378 K = keyword expansion candidate
379 k = keyword expansion candidate (untracked)
380 I = ignored
381 i = ignored (untracked)
370 '''
382 '''
371 kwt = kwtools['templater']
383 kwt = kwtools['templater']
372 status = _status(ui, repo, kwt, opts.get('untracked'), *pats, **opts)
384 status = _status(ui, repo, kwt, opts.get('untracked'), *pats, **opts)
373 modified, added, removed, deleted, unknown, ignored, clean = status
385 modified, added, removed, deleted, unknown, ignored, clean = status
374 files = sorted(modified + added + clean + unknown)
386 files = sorted(modified + added + clean)
375 wctx = repo[None]
387 wctx = repo[None]
376 kwfiles = [f for f in files if kwt.iskwfile(f, wctx.flags)]
388 kwfiles = [f for f in files if kwt.iskwfile(f, wctx.flags)]
389 kwuntracked = [f for f in unknown if kwt.iskwfile(f, wctx.flags)]
377 cwd = pats and repo.getcwd() or ''
390 cwd = pats and repo.getcwd() or ''
378 kwfstats = not opts.get('ignore') and (('K', kwfiles),) or ()
391 kwfstats = (not opts.get('ignore') and
392 (('K', kwfiles), ('k', kwuntracked),) or ())
379 if opts.get('all') or opts.get('ignore'):
393 if opts.get('all') or opts.get('ignore'):
380 kwfstats += (('I', [f for f in files if f not in kwfiles]),)
394 kwfstats += (('I', [f for f in files if f not in kwfiles]),
395 ('i', [f for f in unknown if f not in kwuntracked]),)
381 for char, filenames in kwfstats:
396 for char, filenames in kwfstats:
382 fmt = (opts.get('all') or ui.verbose) and '%s %%s\n' % char or '%s\n'
397 fmt = (opts.get('all') or ui.verbose) and '%s %%s\n' % char or '%s\n'
383 for f in filenames:
398 for f in filenames:
@@ -5,7 +5,7 b''
5 # This software may be used and distributed according to the terms of the
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2, incorporated herein by reference.
6 # GNU General Public License version 2, incorporated herein by reference.
7
7
8 '''work with a stack of patches
8 '''manage a stack of patches
9
9
10 This extension lets you work with a stack of patches in a Mercurial
10 This extension lets you work with a stack of patches in a Mercurial
11 repository. It manages two stacks of patches - all known patches, and
11 repository. It manages two stacks of patches - all known patches, and
@@ -1641,11 +1641,8 b' class queue(object):'
1641 def delete(ui, repo, *patches, **opts):
1641 def delete(ui, repo, *patches, **opts):
1642 """remove patches from queue
1642 """remove patches from queue
1643
1643
1644 The patches must not be applied, and at least one patch is
1644 The patches must not be applied, and at least one patch is required. With
1645 required.
1645 -k/--keep, the patch files are preserved in the patch directory.
1646
1647 With -k/--keep, the patch files are preserved in the patch
1648 directory.
1649
1646
1650 To stop managing a patch and move it into permanent history,
1647 To stop managing a patch and move it into permanent history,
1651 use the qfinish command."""
1648 use the qfinish command."""
@@ -2624,5 +2621,5 b' cmdtable = {'
2624 "qfinish":
2621 "qfinish":
2625 (finish,
2622 (finish,
2626 [('a', 'applied', None, _('finish all applied changesets'))],
2623 [('a', 'applied', None, _('finish all applied changesets'))],
2627 _('hg qfinish [-a] [REV...]')),
2624 _('hg qfinish [-a] [REV]...')),
2628 }
2625 }
@@ -5,7 +5,7 b''
5 # This software may be used and distributed according to the terms of the
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2, incorporated herein by reference.
6 # GNU General Public License version 2, incorporated herein by reference.
7
7
8 '''send e-mail notifications for commits/pushes
8 '''hooks for sending email notifications at commit/push time
9
9
10 Subscriptions can be managed through hgrc. Default mode is to print
10 Subscriptions can be managed through hgrc. Default mode is to print
11 messages to stdout, for testing and configuring.
11 messages to stdout, for testing and configuring.
@@ -5,7 +5,7 b''
5 # This software may be used and distributed according to the terms of the
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2, incorporated herein by reference.
6 # GNU General Public License version 2, incorporated herein by reference.
7
7
8 '''send Mercurial changesets as a series of patch e-mails
8 '''command to send changesets as (a series of) patch emails
9
9
10 The series is started off with a "[PATCH 0 of N]" introduction, which
10 The series is started off with a "[PATCH 0 of N]" introduction, which
11 describes the series as a whole.
11 describes the series as a whole.
@@ -1,6 +1,6 b''
1 # Copyright (C) 2006 - Marco Barisione <marco@barisione.org>
1 # Copyright (C) 2006 - Marco Barisione <marco@barisione.org>
2 #
2 #
3 # This is a small extension for Mercurial (http://www.selenic.com/mercurial)
3 # This is a small extension for Mercurial (http://mercurial.selenic.com/)
4 # that removes files not known to mercurial
4 # that removes files not known to mercurial
5 #
5 #
6 # This program was inspired by the "cvspurge" script contained in CVS utilities
6 # This program was inspired by the "cvspurge" script contained in CVS utilities
@@ -23,7 +23,7 b''
23 # along with this program; if not, write to the Free Software
23 # along with this program; if not, write to the Free Software
24 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25
25
26 '''delete files not tracked from the working directory'''
26 '''command to delete untracked files from the working directory'''
27
27
28 from mercurial import util, commands, cmdutil
28 from mercurial import util, commands, cmdutil
29 from mercurial.i18n import _
29 from mercurial.i18n import _
@@ -5,13 +5,13 b''
5 # This software may be used and distributed according to the terms of the
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2, incorporated herein by reference.
6 # GNU General Public License version 2, incorporated herein by reference.
7
7
8 '''move sets of revisions to a different ancestor
8 '''command to move sets of revisions to a different ancestor
9
9
10 This extension lets you rebase changesets in an existing Mercurial
10 This extension lets you rebase changesets in an existing Mercurial
11 repository.
11 repository.
12
12
13 For more information:
13 For more information:
14 http://www.selenic.com/mercurial/wiki/index.cgi/RebaseProject
14 http://mercurial.selenic.com/wiki/RebaseProject
15 '''
15 '''
16
16
17 from mercurial import util, repair, merge, cmdutil, commands, error
17 from mercurial import util, repair, merge, cmdutil, commands, error
@@ -5,7 +5,7 b''
5 # This software may be used and distributed according to the terms of the
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2, incorporated herein by reference.
6 # GNU General Public License version 2, incorporated herein by reference.
7
7
8 '''interactively select which sets of changes to commit/qrefresh'''
8 '''commands to interactively select changes for commit/qrefresh'''
9
9
10 from mercurial.i18n import gettext, _
10 from mercurial.i18n import gettext, _
11 from mercurial import cmdutil, commands, extensions, hg, mdiff, patch
11 from mercurial import cmdutil, commands, extensions, hg, mdiff, patch
@@ -5,7 +5,7 b''
5 # This software may be used and distributed according to the terms of the
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2, incorporated herein by reference.
6 # GNU General Public License version 2, incorporated herein by reference.
7
7
8 '''transplant changesets from another branch
8 '''command to transplant changesets from another branch
9
9
10 This extension allows you to transplant patches from another branch.
10 This extension allows you to transplant patches from another branch.
11
11
@@ -9,7 +9,7 b''
9 # GNU General Public License version 2, incorporated herein by reference.
9 # GNU General Public License version 2, incorporated herein by reference.
10 #
10 #
11
11
12 '''allow the use of MBCS paths with problematic encoding
12 '''allow the use of MBCS paths with problematic encodings
13
13
14 Some MBCS encodings are not good for some path operations (i.e.
14 Some MBCS encodings are not good for some path operations (i.e.
15 splitting path, case conversion, etc.) with its encoded bytes. We call
15 splitting path, case conversion, etc.) with its encoded bytes. We call
@@ -48,7 +48,7 b' def checknewline(s, newline, ui=None, re'
48 # warn if already has 'newline' in repository.
48 # warn if already has 'newline' in repository.
49 # it might cause unexpected eol conversion.
49 # it might cause unexpected eol conversion.
50 # see issue 302:
50 # see issue 302:
51 # http://www.selenic.com/mercurial/bts/issue302
51 # http://mercurial.selenic.com/bts/issue302
52 if newline in s and ui and filename and repo:
52 if newline in s and ui and filename and repo:
53 ui.warn(_('WARNING: %s already has %s line endings\n'
53 ui.warn(_('WARNING: %s already has %s line endings\n'
54 'and does not need EOL conversion by the win32text plugin.\n'
54 'and does not need EOL conversion by the win32text plugin.\n'
@@ -323,12 +323,10 b' def addremove(repo, pats=[], opts={}, dr'
323 repo.add(add)
323 repo.add(add)
324 if similarity > 0:
324 if similarity > 0:
325 for old, new, score in findrenames(repo, m, similarity):
325 for old, new, score in findrenames(repo, m, similarity):
326 oldexact, newexact = m.exact(old), m.exact(new)
326 if repo.ui.verbose or not m.exact(old) or not m.exact(new):
327 if repo.ui.verbose or not oldexact or not newexact:
328 oldrel, newrel = m.rel(old), m.rel(new)
329 repo.ui.status(_('recording removal of %s as rename to %s '
327 repo.ui.status(_('recording removal of %s as rename to %s '
330 '(%d%% similar)\n') %
328 '(%d%% similar)\n') %
331 (oldrel, newrel, score * 100))
329 (m.rel(old), m.rel(new), score * 100))
332 if not dry_run:
330 if not dry_run:
333 repo.copy(old, new)
331 repo.copy(old, new)
334
332
@@ -8,7 +8,7 b''
8 from node import hex, nullid, nullrev, short
8 from node import hex, nullid, nullrev, short
9 from lock import release
9 from lock import release
10 from i18n import _, gettext
10 from i18n import _, gettext
11 import os, re, sys, textwrap, subprocess, difflib, time
11 import os, re, sys, subprocess, difflib, time
12 import hg, util, revlog, bundlerepo, extensions, copies, context, error
12 import hg, util, revlog, bundlerepo, extensions, copies, context, error
13 import patch, help, mdiff, tempfile, url, encoding
13 import patch, help, mdiff, tempfile, url, encoding
14 import archival, changegroup, cmdutil, sshserver, hbisect
14 import archival, changegroup, cmdutil, sshserver, hbisect
@@ -440,7 +440,7 b' def branches(ui, repo, active=False):'
440 """list repository named branches
440 """list repository named branches
441
441
442 List the repository's named branches, indicating which ones are
442 List the repository's named branches, indicating which ones are
443 inactive. If active is specified, only show active branches.
443 inactive. If -a/--active is specified, only show active branches.
444
444
445 A branch is considered active if it contains repository heads.
445 A branch is considered active if it contains repository heads.
446
446
@@ -484,8 +484,8 b' def bundle(ui, repo, fname, dest=None, *'
484 parameters. To create a bundle containing all changesets, use
484 parameters. To create a bundle containing all changesets, use
485 -a/--all (or --base null).
485 -a/--all (or --base null).
486
486
487 To change the compression method applied, use the -t/--type
487 You can change compression method with the -t/--type option.
488 option. The available compression methods are: none, bzip2, and
488 The available compression methods are: none, bzip2, and
489 gzip (by default, bundles are compressed using bzip2).
489 gzip (by default, bundles are compressed using bzip2).
490
490
491 The bundle file can then be transferred using conventional means
491 The bundle file can then be transferred using conventional means
@@ -987,7 +987,7 b' def debuginstall(ui):'
987 " or misconfigured. Please check your .hgrc file)\n"))
987 " or misconfigured. Please check your .hgrc file)\n"))
988 else:
988 else:
989 ui.write(_(" Internal patcher failure, please report this error"
989 ui.write(_(" Internal patcher failure, please report this error"
990 " to http://www.selenic.com/mercurial/bts\n"))
990 " to http://mercurial.selenic.com/bts/\n"))
991 problems += patchproblems
991 problems += patchproblems
992
992
993 os.unlink(fa)
993 os.unlink(fa)
@@ -1368,7 +1368,7 b' def heads(ui, repo, *branchrevs, **opts)'
1368 branch is called the revision's branch tag.
1368 branch is called the revision's branch tag.
1369
1369
1370 Branch heads are revisions on a given named branch that do not have
1370 Branch heads are revisions on a given named branch that do not have
1371 any children on the same branch. A branch head could be a true head
1371 any descendants on the same branch. A branch head could be a true head
1372 or it could be the last changeset on a branch before a new branch
1372 or it could be the last changeset on a branch before a new branch
1373 was created. If none of the branch heads are true heads, the branch
1373 was created. If none of the branch heads are true heads, the branch
1374 is considered inactive.
1374 is considered inactive.
@@ -1514,7 +1514,7 b' def help_(ui, name=None, with_version=Fa'
1514 commands = cmds[f].replace("|",", ")
1514 commands = cmds[f].replace("|",", ")
1515 ui.write(" %s:\n %s\n"%(commands, h[f]))
1515 ui.write(" %s:\n %s\n"%(commands, h[f]))
1516 else:
1516 else:
1517 ui.write(' %-*s %s\n' % (m, f, h[f]))
1517 ui.write(' %-*s %s\n' % (m, f, util.wrap(h[f], m + 4)))
1518
1518
1519 if name != 'shortlist':
1519 if name != 'shortlist':
1520 exts, maxlength = extensions.enabled()
1520 exts, maxlength = extensions.enabled()
@@ -1617,11 +1617,8 b' def help_(ui, name=None, with_version=Fa'
1617 opts_len = max([len(line[0]) for line in opt_output if line[1]] or [0])
1617 opts_len = max([len(line[0]) for line in opt_output if line[1]] or [0])
1618 for first, second in opt_output:
1618 for first, second in opt_output:
1619 if second:
1619 if second:
1620 # wrap descriptions at 70 characters, just like the
1620 second = util.wrap(second, opts_len + 3)
1621 # main help texts
1621 ui.write(" %-*s %s\n" % (opts_len, first, second))
1622 second = textwrap.wrap(second, width=70 - opts_len - 3)
1623 pad = '\n' + ' ' * (opts_len + 3)
1624 ui.write(" %-*s %s\n" % (opts_len, first, pad.join(second)))
1625 else:
1622 else:
1626 ui.write("%s\n" % first)
1623 ui.write("%s\n" % first)
1627
1624
@@ -1729,7 +1726,8 b' def import_(ui, repo, patch1, *patches, '
1729 With -s/--similarity, hg will attempt to discover renames and
1726 With -s/--similarity, hg will attempt to discover renames and
1730 copies in the patch in the same way as 'addremove'.
1727 copies in the patch in the same way as 'addremove'.
1731
1728
1732 To read a patch from standard input, use "-" as the patch name.
1729 To read a patch from standard input, use "-" as the patch name. If
1730 a URL is specified, the patch will be downloaded from it.
1733 See 'hg help dates' for a list of formats valid for -d/--date.
1731 See 'hg help dates' for a list of formats valid for -d/--date.
1734 """
1732 """
1735 patches = (patch1,) + patches
1733 patches = (patch1,) + patches
@@ -143,7 +143,7 b' def _runcatch(ui, args):'
143 except:
143 except:
144 ui.warn(_("** unknown exception encountered, details follow\n"))
144 ui.warn(_("** unknown exception encountered, details follow\n"))
145 ui.warn(_("** report bug details to "
145 ui.warn(_("** report bug details to "
146 "http://www.selenic.com/mercurial/bts\n"))
146 "http://mercurial.selenic.com/bts/\n"))
147 ui.warn(_("** or mercurial@selenic.com\n"))
147 ui.warn(_("** or mercurial@selenic.com\n"))
148 ui.warn(_("** Mercurial Distributed SCM (version %s)\n")
148 ui.warn(_("** Mercurial Distributed SCM (version %s)\n")
149 % util.version())
149 % util.version())
@@ -125,9 +125,14 b' def disabled():'
125 import hgext
125 import hgext
126 extpath = os.path.dirname(os.path.abspath(hgext.__file__))
126 extpath = os.path.dirname(os.path.abspath(hgext.__file__))
127
127
128 try: # might not be a filesystem path
129 files = os.listdir(extpath)
130 except OSError:
131 return None, 0
132
128 exts = {}
133 exts = {}
129 maxlength = 0
134 maxlength = 0
130 for e in os.listdir(extpath):
135 for e in files:
131
136
132 if e.endswith('.py'):
137 if e.endswith('.py'):
133 name = e.rsplit('.', 1)[0]
138 name = e.rsplit('.', 1)[0]
@@ -5,9 +5,8 b''
5 # This software may be used and distributed according to the terms of the
5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2, incorporated herein by reference.
6 # GNU General Public License version 2, incorporated herein by reference.
7
7
8 import textwrap
9 from i18n import _
8 from i18n import _
10 import extensions
9 import extensions, util
11
10
12
11
13 def moduledoc(file):
12 def moduledoc(file):
@@ -46,11 +45,8 b' def listexts(header, exts, maxlength):'
46 return ''
45 return ''
47 result = '\n%s\n\n' % header
46 result = '\n%s\n\n' % header
48 for name, desc in sorted(exts.iteritems()):
47 for name, desc in sorted(exts.iteritems()):
49 # wrap desc at 70 characters, just like the main help texts
48 desc = util.wrap(desc, maxlength + 4)
50 desc = textwrap.wrap(desc, width=70 - maxlength - 4)
49 result += ' %s %s\n' % (name.ljust(maxlength), desc)
51 pad = '\n' + ' ' * (maxlength + 4)
52 result += ' %s %s\n' % (name.ljust(maxlength),
53 pad.join(desc))
54 return result
50 return result
55
51
56 def extshelp():
52 def extshelp():
@@ -454,15 +454,30 b' class localrepository(repo.repository):'
454 pass
454 pass
455
455
456 def _updatebranchcache(self, partial, start, end):
456 def _updatebranchcache(self, partial, start, end):
457 # collect new branch entries
458 newbranches = {}
457 for r in xrange(start, end):
459 for r in xrange(start, end):
458 c = self[r]
460 c = self[r]
459 b = c.branch()
461 newbranches.setdefault(c.branch(), []).append(c.node())
460 bheads = partial.setdefault(b, [])
462 # if older branchheads are reachable from new ones, they aren't
461 bheads.append(c.node())
463 # really branchheads. Note checking parents is insufficient:
462 for p in c.parents():
464 # 1 (branch a) -> 2 (branch b) -> 3 (branch a)
463 pn = p.node()
465 for branch, newnodes in newbranches.iteritems():
464 if pn in bheads:
466 bheads = partial.setdefault(branch, [])
465 bheads.remove(pn)
467 bheads.extend(newnodes)
468 if len(bheads) < 2:
469 continue
470 newbheads = []
471 # starting from tip means fewer passes over reachable
472 while newnodes:
473 latest = newnodes.pop()
474 if latest not in bheads:
475 continue
476 reachable = self.changelog.reachable(latest, bheads[0])
477 bheads = [b for b in bheads if b not in reachable]
478 newbheads.insert(0, latest)
479 bheads.extend(newbheads)
480 partial[branch] = bheads
466
481
467 def lookup(self, key):
482 def lookup(self, key):
468 if isinstance(key, int):
483 if isinstance(key, int):
@@ -277,7 +277,7 b' class ui(object):'
277 insensitive. If ui is not interactive, the default is returned.
277 insensitive. If ui is not interactive, the default is returned.
278 """
278 """
279 if not self.interactive():
279 if not self.interactive():
280 self.note(msg, ' ', default, "\n")
280 self.write(msg, ' ', default, "\n")
281 return default
281 return default
282 while True:
282 while True:
283 try:
283 try:
@@ -16,7 +16,7 b' hide platform-specific details from the '
16 from i18n import _
16 from i18n import _
17 import error, osutil
17 import error, osutil
18 import cStringIO, errno, re, shutil, sys, tempfile, traceback
18 import cStringIO, errno, re, shutil, sys, tempfile, traceback
19 import os, stat, time, calendar, random
19 import os, stat, time, calendar, random, textwrap
20 import imp
20 import imp
21
21
22 # Python compatibility
22 # Python compatibility
@@ -1242,6 +1242,10 b' def termwidth():'
1242 pass
1242 pass
1243 return 80
1243 return 80
1244
1244
1245 def wrap(line, hangindent, width=78):
1246 padding = '\n' + ' ' * hangindent
1247 return padding.join(textwrap.wrap(line, width=width - hangindent))
1248
1245 def iterlines(iterator):
1249 def iterlines(iterator):
1246 for chunk in iterator:
1250 for chunk in iterator:
1247 for line in chunk.splitlines():
1251 for line in chunk.splitlines():
@@ -20,139 +20,6 b' import winerror'
20 import osutil, encoding
20 import osutil, encoding
21 from win32com.shell import shell,shellcon
21 from win32com.shell import shell,shellcon
22
22
23 class WinError(Exception):
24 winerror_map = {
25 winerror.ERROR_ACCESS_DENIED: errno.EACCES,
26 winerror.ERROR_ACCOUNT_DISABLED: errno.EACCES,
27 winerror.ERROR_ACCOUNT_RESTRICTION: errno.EACCES,
28 winerror.ERROR_ALREADY_ASSIGNED: errno.EBUSY,
29 winerror.ERROR_ALREADY_EXISTS: errno.EEXIST,
30 winerror.ERROR_ARITHMETIC_OVERFLOW: errno.ERANGE,
31 winerror.ERROR_BAD_COMMAND: errno.EIO,
32 winerror.ERROR_BAD_DEVICE: errno.ENODEV,
33 winerror.ERROR_BAD_DRIVER_LEVEL: errno.ENXIO,
34 winerror.ERROR_BAD_EXE_FORMAT: errno.ENOEXEC,
35 winerror.ERROR_BAD_FORMAT: errno.ENOEXEC,
36 winerror.ERROR_BAD_LENGTH: errno.EINVAL,
37 winerror.ERROR_BAD_PATHNAME: errno.ENOENT,
38 winerror.ERROR_BAD_PIPE: errno.EPIPE,
39 winerror.ERROR_BAD_UNIT: errno.ENODEV,
40 winerror.ERROR_BAD_USERNAME: errno.EINVAL,
41 winerror.ERROR_BROKEN_PIPE: errno.EPIPE,
42 winerror.ERROR_BUFFER_OVERFLOW: errno.ENAMETOOLONG,
43 winerror.ERROR_BUSY: errno.EBUSY,
44 winerror.ERROR_BUSY_DRIVE: errno.EBUSY,
45 winerror.ERROR_CALL_NOT_IMPLEMENTED: errno.ENOSYS,
46 winerror.ERROR_CANNOT_MAKE: errno.EACCES,
47 winerror.ERROR_CANTOPEN: errno.EIO,
48 winerror.ERROR_CANTREAD: errno.EIO,
49 winerror.ERROR_CANTWRITE: errno.EIO,
50 winerror.ERROR_CRC: errno.EIO,
51 winerror.ERROR_CURRENT_DIRECTORY: errno.EACCES,
52 winerror.ERROR_DEVICE_IN_USE: errno.EBUSY,
53 winerror.ERROR_DEV_NOT_EXIST: errno.ENODEV,
54 winerror.ERROR_DIRECTORY: errno.EINVAL,
55 winerror.ERROR_DIR_NOT_EMPTY: errno.ENOTEMPTY,
56 winerror.ERROR_DISK_CHANGE: errno.EIO,
57 winerror.ERROR_DISK_FULL: errno.ENOSPC,
58 winerror.ERROR_DRIVE_LOCKED: errno.EBUSY,
59 winerror.ERROR_ENVVAR_NOT_FOUND: errno.EINVAL,
60 winerror.ERROR_EXE_MARKED_INVALID: errno.ENOEXEC,
61 winerror.ERROR_FILENAME_EXCED_RANGE: errno.ENAMETOOLONG,
62 winerror.ERROR_FILE_EXISTS: errno.EEXIST,
63 winerror.ERROR_FILE_INVALID: errno.ENODEV,
64 winerror.ERROR_FILE_NOT_FOUND: errno.ENOENT,
65 winerror.ERROR_GEN_FAILURE: errno.EIO,
66 winerror.ERROR_HANDLE_DISK_FULL: errno.ENOSPC,
67 winerror.ERROR_INSUFFICIENT_BUFFER: errno.ENOMEM,
68 winerror.ERROR_INVALID_ACCESS: errno.EACCES,
69 winerror.ERROR_INVALID_ADDRESS: errno.EFAULT,
70 winerror.ERROR_INVALID_BLOCK: errno.EFAULT,
71 winerror.ERROR_INVALID_DATA: errno.EINVAL,
72 winerror.ERROR_INVALID_DRIVE: errno.ENODEV,
73 winerror.ERROR_INVALID_EXE_SIGNATURE: errno.ENOEXEC,
74 winerror.ERROR_INVALID_FLAGS: errno.EINVAL,
75 winerror.ERROR_INVALID_FUNCTION: errno.ENOSYS,
76 winerror.ERROR_INVALID_HANDLE: errno.EBADF,
77 winerror.ERROR_INVALID_LOGON_HOURS: errno.EACCES,
78 winerror.ERROR_INVALID_NAME: errno.EINVAL,
79 winerror.ERROR_INVALID_OWNER: errno.EINVAL,
80 winerror.ERROR_INVALID_PARAMETER: errno.EINVAL,
81 winerror.ERROR_INVALID_PASSWORD: errno.EPERM,
82 winerror.ERROR_INVALID_PRIMARY_GROUP: errno.EINVAL,
83 winerror.ERROR_INVALID_SIGNAL_NUMBER: errno.EINVAL,
84 winerror.ERROR_INVALID_TARGET_HANDLE: errno.EIO,
85 winerror.ERROR_INVALID_WORKSTATION: errno.EACCES,
86 winerror.ERROR_IO_DEVICE: errno.EIO,
87 winerror.ERROR_IO_INCOMPLETE: errno.EINTR,
88 winerror.ERROR_LOCKED: errno.EBUSY,
89 winerror.ERROR_LOCK_VIOLATION: errno.EACCES,
90 winerror.ERROR_LOGON_FAILURE: errno.EACCES,
91 winerror.ERROR_MAPPED_ALIGNMENT: errno.EINVAL,
92 winerror.ERROR_META_EXPANSION_TOO_LONG: errno.E2BIG,
93 winerror.ERROR_MORE_DATA: errno.EPIPE,
94 winerror.ERROR_NEGATIVE_SEEK: errno.ESPIPE,
95 winerror.ERROR_NOACCESS: errno.EFAULT,
96 winerror.ERROR_NONE_MAPPED: errno.EINVAL,
97 winerror.ERROR_NOT_ENOUGH_MEMORY: errno.ENOMEM,
98 winerror.ERROR_NOT_READY: errno.EAGAIN,
99 winerror.ERROR_NOT_SAME_DEVICE: errno.EXDEV,
100 winerror.ERROR_NO_DATA: errno.EPIPE,
101 winerror.ERROR_NO_MORE_SEARCH_HANDLES: errno.EIO,
102 winerror.ERROR_NO_PROC_SLOTS: errno.EAGAIN,
103 winerror.ERROR_NO_SUCH_PRIVILEGE: errno.EACCES,
104 winerror.ERROR_OPEN_FAILED: errno.EIO,
105 winerror.ERROR_OPEN_FILES: errno.EBUSY,
106 winerror.ERROR_OPERATION_ABORTED: errno.EINTR,
107 winerror.ERROR_OUTOFMEMORY: errno.ENOMEM,
108 winerror.ERROR_PASSWORD_EXPIRED: errno.EACCES,
109 winerror.ERROR_PATH_BUSY: errno.EBUSY,
110 winerror.ERROR_PATH_NOT_FOUND: errno.ENOENT,
111 winerror.ERROR_PIPE_BUSY: errno.EBUSY,
112 winerror.ERROR_PIPE_CONNECTED: errno.EPIPE,
113 winerror.ERROR_PIPE_LISTENING: errno.EPIPE,
114 winerror.ERROR_PIPE_NOT_CONNECTED: errno.EPIPE,
115 winerror.ERROR_PRIVILEGE_NOT_HELD: errno.EACCES,
116 winerror.ERROR_READ_FAULT: errno.EIO,
117 winerror.ERROR_SEEK: errno.EIO,
118 winerror.ERROR_SEEK_ON_DEVICE: errno.ESPIPE,
119 winerror.ERROR_SHARING_BUFFER_EXCEEDED: errno.ENFILE,
120 winerror.ERROR_SHARING_VIOLATION: errno.EACCES,
121 winerror.ERROR_STACK_OVERFLOW: errno.ENOMEM,
122 winerror.ERROR_SWAPERROR: errno.ENOENT,
123 winerror.ERROR_TOO_MANY_MODULES: errno.EMFILE,
124 winerror.ERROR_TOO_MANY_OPEN_FILES: errno.EMFILE,
125 winerror.ERROR_UNRECOGNIZED_MEDIA: errno.ENXIO,
126 winerror.ERROR_UNRECOGNIZED_VOLUME: errno.ENODEV,
127 winerror.ERROR_WAIT_NO_CHILDREN: errno.ECHILD,
128 winerror.ERROR_WRITE_FAULT: errno.EIO,
129 winerror.ERROR_WRITE_PROTECT: errno.EROFS,
130 }
131
132 def __init__(self, err):
133 try:
134 # unpack a pywintypes.error tuple
135 self.win_errno, self.win_function, self.win_strerror = err
136 except ValueError:
137 # get attributes from a WindowsError
138 self.win_errno = err.winerror
139 self.win_function = None
140 self.win_strerror = err.strerror
141 self.win_strerror = self.win_strerror.rstrip('.')
142
143 class WinIOError(WinError, IOError):
144 def __init__(self, err, filename=None):
145 WinError.__init__(self, err)
146 IOError.__init__(self, self.winerror_map.get(self.win_errno, 0),
147 self.win_strerror)
148 self.filename = filename
149
150 class WinOSError(WinError, OSError):
151 def __init__(self, err):
152 WinError.__init__(self, err)
153 OSError.__init__(self, self.winerror_map.get(self.win_errno, 0),
154 self.win_strerror)
155
156 def os_link(src, dst):
23 def os_link(src, dst):
157 try:
24 try:
158 win32file.CreateHardLink(dst, src)
25 win32file.CreateHardLink(dst, src)
@@ -164,12 +31,11 b' def os_link(src, dst):'
164 except:
31 except:
165 pass
32 pass
166 # Fake hardlinking error
33 # Fake hardlinking error
167 raise WinOSError((18, 'CreateHardLink', 'The system cannot '
34 raise OSError(errno.EINVAL, 'Hardlinking not supported')
168 'move the file to a different disk drive'))
169 except pywintypes.error, details:
35 except pywintypes.error, details:
170 raise WinOSError(details)
36 raise OSError(errno.EINVAL, 'target implements hardlinks improperly')
171 except NotImplementedError: # Another fake error win Win98
37 except NotImplementedError: # Another fake error win Win98
172 raise WinOSError((18, 'CreateHardLink', 'Hardlinking not supported'))
38 raise OSError(errno.EINVAL, 'Hardlinking not supported')
173
39
174 def nlinks(pathname):
40 def nlinks(pathname):
175 """Return number of hardlinks for the given file."""
41 """Return number of hardlinks for the given file."""
@@ -17,7 +17,7 b" def posixfile(name, mode='r', buffering="
17 try:
17 try:
18 return osutil.posixfile(name, mode, buffering)
18 return osutil.posixfile(name, mode, buffering)
19 except WindowsError, err:
19 except WindowsError, err:
20 raise WinIOError(err)
20 raise IOError(err.errno, err.strerror)
21 posixfile.__doc__ = osutil.posixfile.__doc__
21 posixfile.__doc__ = osutil.posixfile.__doc__
22
22
23 class winstdout(object):
23 class winstdout(object):
@@ -255,7 +255,7 b" setup(name='mercurial',"
255 version=version,
255 version=version,
256 author='Matt Mackall',
256 author='Matt Mackall',
257 author_email='mpm@selenic.com',
257 author_email='mpm@selenic.com',
258 url='http://selenic.com/mercurial',
258 url='http://mercurial.selenic.com/',
259 description='Scalable distributed SCM',
259 description='Scalable distributed SCM',
260 license='GNU GPL',
260 license='GNU GPL',
261 scripts=scripts,
261 scripts=scripts,
@@ -7,7 +7,7 b''
7 <updated>1970-01-01T00:00:00+00:00</updated>
7 <updated>1970-01-01T00:00:00+00:00</updated>
8 <entry>
8 <entry>
9 <title>Error</title>
9 <title>Error</title>
10 <id>http://www.selenic.com/mercurial/#error</id>
10 <id>http://mercurial.selenic.com/#error</id>
11 <author>
11 <author>
12 <name>mercurial</name>
12 <name>mercurial</name>
13 </author>
13 </author>
@@ -1,6 +1,6 b''
1 {header}
1 {header}
2 <id>{urlbase}{url}atom-log/tip/{file|escape}</id>
2 <id>{urlbase}{url}atom-log/tip/{file|escape}</id>
3 <link rel="self" href="{urlbase}{url}atom-log/tip/{file|escape}"/>
3 <link rel="self" href="{urlbase}{url}atom-log/tip/{file|urlescape}"/>
4 <title>{repo|escape}: {file|escape} history</title>
4 <title>{repo|escape}: {file|escape} history</title>
5 {latestentry%feedupdated}
5 {latestentry%feedupdated}
6
6
@@ -8,7 +8,7 b''
8 <body>
8 <body>
9
9
10 <div class="page_header">
10 <div class="page_header">
11 <a href="http://www.selenic.com/mercurial/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / branches
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / branches
12 </div>
12 </div>
13
13
14 <div class="page_nav">
14 <div class="page_nav">
@@ -8,7 +8,7 b''
8 <body>
8 <body>
9
9
10 <div class="page_header">
10 <div class="page_header">
11 <a href="http://www.selenic.com/mercurial/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changelog
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changelog
12 </div>
12 </div>
13
13
14 <form action="{url}log">
14 <form action="{url}log">
@@ -8,7 +8,7 b''
8 <body>
8 <body>
9
9
10 <div class="page_header">
10 <div class="page_header">
11 <a href="http://www.selenic.com/mercurial/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changeset
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / changeset
12 </div>
12 </div>
13
13
14 <div class="page_nav">
14 <div class="page_nav">
@@ -8,7 +8,7 b''
8 <body>
8 <body>
9
9
10 <div class="page_header">
10 <div class="page_header">
11 <a href="http://www.selenic.com/mercurial/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / error
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / error
12 </div>
12 </div>
13
13
14 <div class="page_nav">
14 <div class="page_nav">
@@ -8,7 +8,7 b''
8 <body>
8 <body>
9
9
10 <div class="page_header">
10 <div class="page_header">
11 <a href="http://www.selenic.com/mercurial/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / annotate
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / annotate
12 </div>
12 </div>
13
13
14 <div class="page_nav">
14 <div class="page_nav">
@@ -8,7 +8,7 b''
8 <body>
8 <body>
9
9
10 <div class="page_header">
10 <div class="page_header">
11 <a href="http://www.selenic.com/mercurial/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / diff
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / diff
12 </div>
12 </div>
13
13
14 <div class="page_nav">
14 <div class="page_nav">
@@ -8,7 +8,7 b''
8 <body>
8 <body>
9
9
10 <div class="page_header">
10 <div class="page_header">
11 <a href="http://www.selenic.com/mercurial/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revisions
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revisions
12 </div>
12 </div>
13
13
14 <div class="page_nav">
14 <div class="page_nav">
@@ -8,7 +8,7 b''
8 <body>
8 <body>
9
9
10 <div class="page_header">
10 <div class="page_header">
11 <a href="http://www.selenic.com/mercurial/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revision
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / file revision
12 </div>
12 </div>
13
13
14 <div class="page_nav">
14 <div class="page_nav">
@@ -9,7 +9,7 b''
9 <body>
9 <body>
10
10
11 <div class="page_header">
11 <div class="page_header">
12 <a href="http://www.selenic.com/mercurial/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph
12 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / graph
13 </div>
13 </div>
14
14
15 <form action="{url}log">
15 <form action="{url}log">
@@ -4,7 +4,7 b''
4 <body>
4 <body>
5
5
6 <div class="page_header">
6 <div class="page_header">
7 <a href="http://www.selenic.com/mercurial/" title="Mercurial" style="float: right;">Mercurial</a>
7 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a>
8 Repositories list
8 Repositories list
9 </div>
9 </div>
10
10
@@ -8,7 +8,7 b''
8 <body>
8 <body>
9
9
10 <div class="page_header">
10 <div class="page_header">
11 <a href="http://www.selenic.com/mercurial/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / files
12 </div>
12 </div>
13
13
14 <div class="page_nav">
14 <div class="page_nav">
@@ -5,7 +5,7 b''
5 <body>
5 <body>
6
6
7 <div class="page_header">
7 <div class="page_header">
8 <a href="http://www.selenic.com/mercurial/" title="Mercurial" style="float: right;">Mercurial</a> Not found: {repo|escape}
8 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a> Not found: {repo|escape}
9 </div>
9 </div>
10
10
11 <div class="page_body">
11 <div class="page_body">
@@ -8,7 +8,7 b''
8 <body>
8 <body>
9
9
10 <div class="page_header">
10 <div class="page_header">
11 <a href="http://www.selenic.com/mercurial/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / search
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / search
12
12
13 <form action="{url}log">
13 <form action="{url}log">
14 {sessionvars%hiddenformentry}
14 {sessionvars%hiddenformentry}
@@ -8,7 +8,7 b''
8 <body>
8 <body>
9
9
10 <div class="page_header">
10 <div class="page_header">
11 <a href="http://www.selenic.com/mercurial/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / shortlog
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / shortlog
12 </div>
12 </div>
13
13
14 <form action="{url}log">
14 <form action="{url}log">
@@ -8,7 +8,7 b''
8 <body>
8 <body>
9
9
10 <div class="page_header">
10 <div class="page_header">
11 <a href="http://www.selenic.com/mercurial/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / summary
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / summary
12
12
13 <form action="{url}log">
13 <form action="{url}log">
14 {sessionvars%hiddenformentry}
14 {sessionvars%hiddenformentry}
@@ -8,7 +8,7 b''
8 <body>
8 <body>
9
9
10 <div class="page_header">
10 <div class="page_header">
11 <a href="http://www.selenic.com/mercurial/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / tags
11 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="{url}summary{sessionvars%urlparameter}">{repo|escape}</a> / tags
12 </div>
12 </div>
13
13
14 <div class="page_nav">
14 <div class="page_nav">
@@ -8,7 +8,7 b''
8 </div>
8 </div>
9
9
10 <div id="powered-by">
10 <div id="powered-by">
11 <p><a href="http://www.selenic.com/mercurial/" title="Mercurial"><img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a></p>
11 <p><a href="http://mercurial.selenic.com/" title="Mercurial"><img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a></p>
12 </div>
12 </div>
13
13
14 <div id="corner-top-left"></div>
14 <div id="corner-top-left"></div>
@@ -26,7 +26,7 b''
26 </div>
26 </div>
27
27
28 <div id="powered-by">
28 <div id="powered-by">
29 <p><a href="http://www.selenic.com/mercurial/" title="Mercurial"><img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a></p>
29 <p><a href="http://mercurial.selenic.com/" title="Mercurial"><img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a></p>
30 </div>
30 </div>
31
31
32 <div id="corner-top-left"></div>
32 <div id="corner-top-left"></div>
@@ -10,7 +10,7 b''
10 <div class="container">
10 <div class="container">
11 <div class="menu">
11 <div class="menu">
12 <div class="logo">
12 <div class="logo">
13 <a href="http://www.selenic.com/mercurial/">
13 <a href="http://mercurial.selenic.com/">
14 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
14 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
15 </div>
15 </div>
16 <ul>
16 <ul>
@@ -5,7 +5,7 b''
5 <div class="container">
5 <div class="container">
6 <div class="menu">
6 <div class="menu">
7 <div class="logo">
7 <div class="logo">
8 <a href="http://www.selenic.com/mercurial/">
8 <a href="http://mercurial.selenic.com/">
9 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
9 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
10 </div>
10 </div>
11 <ul>
11 <ul>
@@ -6,7 +6,7 b''
6 <div class="container">
6 <div class="container">
7 <div class="menu">
7 <div class="menu">
8 <div class="logo">
8 <div class="logo">
9 <a href="http://www.selenic.com/mercurial/">
9 <a href="http://mercurial.selenic.com/">
10 <img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
10 <img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
11 </div>
11 </div>
12 <ul>
12 <ul>
@@ -6,7 +6,7 b''
6 <div class="container">
6 <div class="container">
7 <div class="menu">
7 <div class="menu">
8 <div class="logo">
8 <div class="logo">
9 <a href="http://www.selenic.com/mercurial/">
9 <a href="http://mercurial.selenic.com/">
10 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
10 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
11 </div>
11 </div>
12 <ul>
12 <ul>
@@ -6,7 +6,7 b''
6 <div class="container">
6 <div class="container">
7 <div class="menu">
7 <div class="menu">
8 <div class="logo">
8 <div class="logo">
9 <a href="http://www.selenic.com/mercurial/">
9 <a href="http://mercurial.selenic.com/">
10 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
10 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
11 </div>
11 </div>
12 <ul>
12 <ul>
@@ -10,7 +10,7 b''
10 <div class="container">
10 <div class="container">
11 <div class="menu">
11 <div class="menu">
12 <div class="logo">
12 <div class="logo">
13 <a href="http://www.selenic.com/mercurial/">
13 <a href="http://mercurial.selenic.com/">
14 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
14 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
15 </div>
15 </div>
16 <ul>
16 <ul>
@@ -6,7 +6,7 b''
6 <div class="container">
6 <div class="container">
7 <div class="menu">
7 <div class="menu">
8 <div class="logo">
8 <div class="logo">
9 <a href="http://www.selenic.com/mercurial/">
9 <a href="http://mercurial.selenic.com/">
10 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
10 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
11 </div>
11 </div>
12 <ul>
12 <ul>
@@ -11,7 +11,7 b''
11 <div class="container">
11 <div class="container">
12 <div class="menu">
12 <div class="menu">
13 <div class="logo">
13 <div class="logo">
14 <a href="http://www.selenic.com/mercurial/">
14 <a href="http://mercurial.selenic.com/">
15 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
15 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
16 </div>
16 </div>
17 <ul>
17 <ul>
@@ -5,7 +5,7 b''
5
5
6 <div class="container">
6 <div class="container">
7 <div class="menu">
7 <div class="menu">
8 <a href="http://www.selenic.com/mercurial/">
8 <a href="http://mercurial.selenic.com/">
9 <img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
9 <img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
10 </div>
10 </div>
11 <div class="main">
11 <div class="main">
@@ -6,7 +6,7 b''
6 <div class="container">
6 <div class="container">
7 <div class="menu">
7 <div class="menu">
8 <div class="logo">
8 <div class="logo">
9 <a href="http://www.selenic.com/mercurial/">
9 <a href="http://mercurial.selenic.com/">
10 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
10 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
11 </div>
11 </div>
12 <ul>
12 <ul>
@@ -6,7 +6,7 b''
6 <div class="container">
6 <div class="container">
7 <div class="menu">
7 <div class="menu">
8 <div class="logo">
8 <div class="logo">
9 <a href="http://www.selenic.com/mercurial/">
9 <a href="http://mercurial.selenic.com/">
10 <img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a>
10 <img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a>
11 </div>
11 </div>
12 <ul>
12 <ul>
@@ -10,7 +10,7 b''
10 <div class="container">
10 <div class="container">
11 <div class="menu">
11 <div class="menu">
12 <div class="logo">
12 <div class="logo">
13 <a href="http://www.selenic.com/mercurial/">
13 <a href="http://mercurial.selenic.com/">
14 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
14 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
15 </div>
15 </div>
16 <ul>
16 <ul>
@@ -10,7 +10,7 b''
10 <div class="container">
10 <div class="container">
11 <div class="menu">
11 <div class="menu">
12 <div class="logo">
12 <div class="logo">
13 <a href="http://www.selenic.com/mercurial/">
13 <a href="http://mercurial.selenic.com/">
14 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
14 <img src="{staticurl}hglogo.png" alt="mercurial" /></a>
15 </div>
15 </div>
16 <ul>
16 <ul>
@@ -4,7 +4,7 b''
4 <item>
4 <item>
5 <title>Error</title>
5 <title>Error</title>
6 <description>{error|escape}</description>
6 <description>{error|escape}</description>
7 <guid>http://www.selenic.com/mercurial/#error</guid>
7 <guid>http://mercurial.selenic.com/#error</guid>
8 </item>
8 </item>
9 </channel>
9 </channel>
10 </rss>
10 </rss>
@@ -1,6 +1,6 b''
1 {motd}
1 {motd}
2 <div class="logo">
2 <div class="logo">
3 <a href="http://www.selenic.com/mercurial/">
3 <a href="http://mercurial.selenic.com/">
4 <img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a>
4 <img src="{staticurl}hglogo.png" width=75 height=90 border=0 alt="mercurial"></a>
5 </div>
5 </div>
6
6
@@ -3,5 +3,5 b' To run the tests, do:'
3 cd tests/
3 cd tests/
4 python run-tests.py
4 python run-tests.py
5
5
6 See http://www.selenic.com/mercurial/wiki/index.cgi/WritingTests for
6 See http://mercurial.selenic.com/wiki/WritingTests for
7 more information on writing tests.
7 more information on writing tests.
@@ -266,7 +266,9 b' def installhg(options):'
266 pure = options.pure and "--pure" or ""
266 pure = options.pure and "--pure" or ""
267
267
268 # Run installer in hg root
268 # Run installer in hg root
269 os.chdir(os.path.join(os.path.dirname(sys.argv[0]), '..'))
269 script = os.path.realpath(sys.argv[0])
270 hgroot = os.path.dirname(os.path.dirname(script))
271 os.chdir(hgroot)
270 cmd = ('%s setup.py %s clean --all'
272 cmd = ('%s setup.py %s clean --all'
271 ' install --force --prefix="%s" --install-lib="%s"'
273 ' install --force --prefix="%s" --install-lib="%s"'
272 ' --install-scripts="%s" >%s 2>&1'
274 ' --install-scripts="%s" >%s 2>&1'
@@ -103,7 +103,7 b' hg clone full.hg full-clone'
103 hg -R full-clone heads
103 hg -R full-clone heads
104 rm -r full-clone
104 rm -r full-clone
105
105
106 # test for http://www.selenic.com/mercurial/bts/issue216
106 # test for http://mercurial.selenic.com/bts/issue216
107 echo "====== Unbundle incremental bundles into fresh empty in one go"
107 echo "====== Unbundle incremental bundles into fresh empty in one go"
108 rm -r empty
108 rm -r empty
109 hg init empty
109 hg init empty
@@ -131,7 +131,7 b' cd ../orig'
131 hg incoming ../bundle.hg
131 hg incoming ../bundle.hg
132 cd ..
132 cd ..
133
133
134 # test for http://www.selenic.com/mercurial/bts/issue1144
134 # test for http://mercurial.selenic.com/bts/issue1144
135 echo "===== test that verify bundle does not traceback"
135 echo "===== test that verify bundle does not traceback"
136 # partial history bundle, fails w/ unkown parent
136 # partial history bundle, fails w/ unkown parent
137 hg -R bundle.hg verify
137 hg -R bundle.hg verify
@@ -1,7 +1,7 b''
1 #!/bin/sh
1 #!/bin/sh
2
2
3 # This is http://www.selenic.com/mercurial/bts/issue1148
3 # This is http://mercurial.selenic.com/bts/issue1148
4 # and http://www.selenic.com/mercurial/bts/issue1447
4 # and http://mercurial.selenic.com/bts/issue1447
5
5
6 "$TESTDIR/hghave" cvs || exit 80
6 "$TESTDIR/hghave" cvs || exit 80
7
7
@@ -36,8 +36,7 b' enabled extensions:'
36 global options:
36 global options:
37 -R --repository repository root directory or symbolic path name
37 -R --repository repository root directory or symbolic path name
38 --cwd change working directory
38 --cwd change working directory
39 -y --noninteractive do not prompt, assume 'yes' for any required
39 -y --noninteractive do not prompt, assume 'yes' for any required answers
40 answers
41 -q --quiet suppress output
40 -q --quiet suppress output
42 -v --verbose enable additional output
41 -v --verbose enable additional output
43 --config set/override config option
42 --config set/override config option
@@ -58,10 +58,10 b' 0:b6c483daf290'
58 %% earlygetopt with illegal abbreviations
58 %% earlygetopt with illegal abbreviations
59 abort: Option --config may not be abbreviated!
59 abort: Option --config may not be abbreviated!
60 abort: Option --cwd may not be abbreviated!
60 abort: Option --cwd may not be abbreviated!
61 abort: Option -R has to be separated from other options (i.e. not -qR) and --repository may only be abbreviated as --repo!
61 abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
62 abort: Option -R has to be separated from other options (i.e. not -qR) and --repository may only be abbreviated as --repo!
62 abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
63 abort: Option -R has to be separated from other options (i.e. not -qR) and --repository may only be abbreviated as --repo!
63 abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
64 abort: Option -R has to be separated from other options (i.e. not -qR) and --repository may only be abbreviated as --repo!
64 abort: Option -R has to be separated from other options (e.g. not -qR) and --repository may only be abbreviated as --repo!
65 %% --cwd
65 %% --cwd
66 changeset: 0:8580ff50825a
66 changeset: 0:8580ff50825a
67 tag: tip
67 tag: tip
@@ -172,7 +172,7 b' 200 Script output follows'
172 <div class="container">
172 <div class="container">
173 <div class="menu">
173 <div class="menu">
174 <div class="logo">
174 <div class="logo">
175 <a href="http://www.selenic.com/mercurial/">
175 <a href="http://mercurial.selenic.com/">
176 <img src="/static/hglogo.png" alt="mercurial" /></a>
176 <img src="/static/hglogo.png" alt="mercurial" /></a>
177 </div>
177 </div>
178 <ul>
178 <ul>
@@ -251,7 +251,7 b' 200 Script output follows'
251 <div class="container">
251 <div class="container">
252 <div class="menu">
252 <div class="menu">
253 <div class="logo">
253 <div class="logo">
254 <a href="http://www.selenic.com/mercurial/">
254 <a href="http://mercurial.selenic.com/">
255 <img src="/static/hglogo.png" alt="mercurial" /></a>
255 <img src="/static/hglogo.png" alt="mercurial" /></a>
256 </div>
256 </div>
257 <ul>
257 <ul>
@@ -378,7 +378,7 b' 200 Script output follows'
378 <div class="container">
378 <div class="container">
379 <div class="menu">
379 <div class="menu">
380 <div class="logo">
380 <div class="logo">
381 <a href="http://www.selenic.com/mercurial/">
381 <a href="http://mercurial.selenic.com/">
382 <img src="/static/hglogo.png" alt="mercurial" /></a>
382 <img src="/static/hglogo.png" alt="mercurial" /></a>
383 </div>
383 </div>
384 <ul>
384 <ul>
@@ -502,7 +502,7 b' 200 Script output follows'
502 <body>
502 <body>
503
503
504 <div class="page_header">
504 <div class="page_header">
505 <a href="http://127.0.0.1/mercurial/" title="Mercurial" style="float: right;">Mercurial</a><a href="/summary?style=gitweb">test</a> / branches
505 <a href="http://127.0.0.1/" title="Mercurial" style="float: right;">Mercurial</a><a href="/summary?style=gitweb">test</a> / branches
506 </div>
506 </div>
507
507
508 <div class="page_nav">
508 <div class="page_nav">
@@ -573,7 +573,7 b' 200 Script output follows'
573 <body>
573 <body>
574
574
575 <div class="page_header">
575 <div class="page_header">
576 <a href="http://www.selenic.com/mercurial/" title="Mercurial" style="float: right;">Mercurial</a><a href="/summary?style=gitweb">test</a> / summary
576 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="/summary?style=gitweb">test</a> / summary
577
577
578 <form action="/log">
578 <form action="/log">
579 <input type="hidden" name="style" value="gitweb" />
579 <input type="hidden" name="style" value="gitweb" />
@@ -724,7 +724,7 b' 200 Script output follows'
724 <body>
724 <body>
725
725
726 <div class="page_header">
726 <div class="page_header">
727 <a href="http://www.selenic.com/mercurial/" title="Mercurial" style="float: right;">Mercurial</a><a href="/summary?style=gitweb">test</a> / graph
727 <a href="http://mercurial.selenic.com/" title="Mercurial" style="float: right;">Mercurial</a><a href="/summary?style=gitweb">test</a> / graph
728 </div>
728 </div>
729
729
730 <form action="/log">
730 <form action="/log">
@@ -21,7 +21,7 b' 200 Script output follows'
21 <div class="container">
21 <div class="container">
22 <div class="menu">
22 <div class="menu">
23 <div class="logo">
23 <div class="logo">
24 <a href="http://www.selenic.com/mercurial/">
24 <a href="http://mercurial.selenic.com/">
25 <img src="/static/hglogo.png" alt="mercurial" /></a>
25 <img src="/static/hglogo.png" alt="mercurial" /></a>
26 </div>
26 </div>
27 <ul>
27 <ul>
@@ -19,7 +19,7 b' 200 Script output follows'
19 <div class="container">
19 <div class="container">
20 <div class="menu">
20 <div class="menu">
21 <div class="logo">
21 <div class="logo">
22 <a href="http://www.selenic.com/mercurial/">
22 <a href="http://mercurial.selenic.com/">
23 <img src="/static/hglogo.png" alt="mercurial" /></a>
23 <img src="/static/hglogo.png" alt="mercurial" /></a>
24 </div>
24 </div>
25 <ul>
25 <ul>
@@ -112,7 +112,7 b' 200 Script output follows'
112 <div class="container">
112 <div class="container">
113 <div class="menu">
113 <div class="menu">
114 <div class="logo">
114 <div class="logo">
115 <a href="http://www.selenic.com/mercurial/">
115 <a href="http://mercurial.selenic.com/">
116 <img src="/static/hglogo.png" alt="mercurial" /></a>
116 <img src="/static/hglogo.png" alt="mercurial" /></a>
117 </div>
117 </div>
118 <ul>
118 <ul>
@@ -201,7 +201,7 b' 200 Script output follows'
201 <div class="container">
201 <div class="container">
202 <div class="menu">
202 <div class="menu">
203 <div class="logo">
203 <div class="logo">
204 <a href="http://www.selenic.com/mercurial/">
204 <a href="http://mercurial.selenic.com/">
205 <img src="/static/hglogo.png" alt="mercurial" /></a>
205 <img src="/static/hglogo.png" alt="mercurial" /></a>
206 </div>
206 </div>
207 <ul>
207 <ul>
@@ -296,7 +296,7 b' 200 Script output follows'
296 <div class="container">
296 <div class="container">
297 <div class="menu">
297 <div class="menu">
298 <div class="logo">
298 <div class="logo">
299 <a href="http://www.selenic.com/mercurial/">
299 <a href="http://mercurial.selenic.com/">
300 <img src="/static/hglogo.png" alt="mercurial" /></a>
300 <img src="/static/hglogo.png" alt="mercurial" /></a>
301 </div>
301 </div>
302 <ul>
302 <ul>
@@ -18,7 +18,7 b' 200 Script output follows'
18 <div class="container">
18 <div class="container">
19 <div class="menu">
19 <div class="menu">
20 <div class="logo">
20 <div class="logo">
21 <a href="http://www.selenic.com/mercurial/">
21 <a href="http://mercurial.selenic.com/">
22 <img src="/static/hglogo.png" alt="mercurial" /></a>
22 <img src="/static/hglogo.png" alt="mercurial" /></a>
23 </div>
23 </div>
24 <ul>
24 <ul>
@@ -87,7 +87,7 b' 200 Script output follows'
87 <div class="container">
87 <div class="container">
88 <div class="menu">
88 <div class="menu">
89 <div class="logo">
89 <div class="logo">
90 <a href="http://www.selenic.com/mercurial/">
90 <a href="http://mercurial.selenic.com/">
91 <img src="/static/hglogo.png" alt="mercurial" /></a>
91 <img src="/static/hglogo.png" alt="mercurial" /></a>
92 </div>
92 </div>
93 <ul>
93 <ul>
@@ -157,7 +157,7 b' 200 Script output follows'
157 <div class="container">
157 <div class="container">
158 <div class="menu">
158 <div class="menu">
159 <div class="logo">
159 <div class="logo">
160 <a href="http://www.selenic.com/mercurial/">
160 <a href="http://mercurial.selenic.com/">
161 <img src="/static/hglogo.png" alt="mercurial" /></a>
161 <img src="/static/hglogo.png" alt="mercurial" /></a>
162 </div>
162 </div>
163 <ul>
163 <ul>
@@ -296,7 +296,7 b' 200 Script output follows'
296 <div class="container">
296 <div class="container">
297 <div class="menu">
297 <div class="menu">
298 <div class="logo">
298 <div class="logo">
299 <a href="http://www.selenic.com/mercurial/">
299 <a href="http://mercurial.selenic.com/">
300 <img src="/static/hglogo.png" alt="mercurial" /></a>
300 <img src="/static/hglogo.png" alt="mercurial" /></a>
301 </div>
301 </div>
302 <ul>
302 <ul>
@@ -106,7 +106,7 b' 200 Script output follows'
106 <div class="container">
106 <div class="container">
107 <div class="menu">
107 <div class="menu">
108 <div class="logo">
108 <div class="logo">
109 <a href="http://www.selenic.com/mercurial/">
109 <a href="http://mercurial.selenic.com/">
110 <img src="/static/hglogo.png" alt="mercurial" /></a>
110 <img src="/static/hglogo.png" alt="mercurial" /></a>
111 </div>
111 </div>
112 <ul>
112 <ul>
@@ -189,7 +189,7 b' 200 Script output follows'
189 <div class="container">
189 <div class="container">
190 <div class="menu">
190 <div class="menu">
191 <div class="logo">
191 <div class="logo">
192 <a href="http://www.selenic.com/mercurial/">
192 <a href="http://mercurial.selenic.com/">
193 <img src="/static/hglogo.png" alt="mercurial" /></a>
193 <img src="/static/hglogo.png" alt="mercurial" /></a>
194 </div>
194 </div>
195 <ul>
195 <ul>
@@ -272,7 +272,7 b' 200 Script output follows'
272 <div class="container">
272 <div class="container">
273 <div class="menu">
273 <div class="menu">
274 <div class="logo">
274 <div class="logo">
275 <a href="http://www.selenic.com/mercurial/">
275 <a href="http://mercurial.selenic.com/">
276 <img src="/static/hglogo.png" alt="mercurial" /></a>
276 <img src="/static/hglogo.png" alt="mercurial" /></a>
277 </div>
277 </div>
278 <ul>
278 <ul>
@@ -350,7 +350,7 b' 200 Script output follows'
350 <div class="container">
350 <div class="container">
351 <div class="menu">
351 <div class="menu">
352 <div class="logo">
352 <div class="logo">
353 <a href="http://www.selenic.com/mercurial/">
353 <a href="http://mercurial.selenic.com/">
354 <img src="/static/hglogo.png" alt="mercurial" /></a>
354 <img src="/static/hglogo.png" alt="mercurial" /></a>
355 </div>
355 </div>
356 <ul>
356 <ul>
@@ -424,7 +424,7 b' 404 Not Found'
424 <div class="container">
424 <div class="container">
425 <div class="menu">
425 <div class="menu">
426 <div class="logo">
426 <div class="logo">
427 <a href="http://www.selenic.com/mercurial/">
427 <a href="http://mercurial.selenic.com/">
428 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
428 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
429 </div>
429 </div>
430 <ul>
430 <ul>
@@ -559,7 +559,7 b' b@1e88685f5dde'
559
559
560
560
561 <div class="logo">
561 <div class="logo">
562 <a href="http://www.selenic.com/mercurial/">
562 <a href="http://mercurial.selenic.com/">
563 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial"></a>
563 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial"></a>
564 </div>
564 </div>
565
565
@@ -17,7 +17,7 b' 200 Script output follows'
17 <div class="container">
17 <div class="container">
18 <div class="menu">
18 <div class="menu">
19 <div class="logo">
19 <div class="logo">
20 <a href="http://www.selenic.com/mercurial/">
20 <a href="http://mercurial.selenic.com/">
21 <img src="/static/hglogo.png" alt="mercurial" /></a>
21 <img src="/static/hglogo.png" alt="mercurial" /></a>
22 </div>
22 </div>
23 <ul>
23 <ul>
@@ -106,7 +106,7 b' 200 Script output follows'
106 <div class="container">
106 <div class="container">
107 <div class="menu">
107 <div class="menu">
108 <div class="logo">
108 <div class="logo">
109 <a href="http://www.selenic.com/mercurial/">
109 <a href="http://mercurial.selenic.com/">
110 <img src="/static/hglogo.png" alt="mercurial" /></a>
110 <img src="/static/hglogo.png" alt="mercurial" /></a>
111 </div>
111 </div>
112 <ul>
112 <ul>
@@ -35,7 +35,7 b' 404 Not Found'
35 <div class="container">
35 <div class="container">
36 <div class="menu">
36 <div class="menu">
37 <div class="logo">
37 <div class="logo">
38 <a href="http://www.selenic.com/mercurial/">
38 <a href="http://mercurial.selenic.com/">
39 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
39 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
40 </div>
40 </div>
41 <ul>
41 <ul>
@@ -105,7 +105,7 b' 404 Not Found'
105 <div class="container">
105 <div class="container">
106 <div class="menu">
106 <div class="menu">
107 <div class="logo">
107 <div class="logo">
108 <a href="http://www.selenic.com/mercurial/">
108 <a href="http://mercurial.selenic.com/">
109 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
109 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
110 </div>
110 </div>
111 <ul>
111 <ul>
@@ -56,7 +56,7 b' 200 Script output follows'
56
56
57 <div class="container">
57 <div class="container">
58 <div class="menu">
58 <div class="menu">
59 <a href="http://www.selenic.com/mercurial/">
59 <a href="http://mercurial.selenic.com/">
60 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
60 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
61 </div>
61 </div>
62 <div class="main">
62 <div class="main">
@@ -192,7 +192,7 b' 200 Script output follows'
192
192
193 <div class="container">
193 <div class="container">
194 <div class="menu">
194 <div class="menu">
195 <a href="http://www.selenic.com/mercurial/">
195 <a href="http://mercurial.selenic.com/">
196 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
196 <img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a>
197 </div>
197 </div>
198 <div class="main">
198 <div class="main">
@@ -19,7 +19,7 b' 200 Script output follows'
19 <div class="container">
19 <div class="container">
20 <div class="menu">
20 <div class="menu">
21 <div class="logo">
21 <div class="logo">
22 <a href="http://www.selenic.com/mercurial/">
22 <a href="http://mercurial.selenic.com/">
23 <img src="/static/hglogo.png" alt="mercurial" /></a>
23 <img src="/static/hglogo.png" alt="mercurial" /></a>
24 </div>
24 </div>
25 <ul>
25 <ul>
@@ -137,7 +137,7 b' 200 Script output follows'
137 <div class="container">
137 <div class="container">
138 <div class="menu">
138 <div class="menu">
139 <div class="logo">
139 <div class="logo">
140 <a href="http://www.selenic.com/mercurial/">
140 <a href="http://mercurial.selenic.com/">
141 <img src="/static/hglogo.png" alt="mercurial" /></a>
141 <img src="/static/hglogo.png" alt="mercurial" /></a>
142 </div>
142 </div>
143 <ul>
143 <ul>
@@ -224,7 +224,7 b' 200 Script output follows'
224 <div class="container">
224 <div class="container">
225 <div class="menu">
225 <div class="menu">
226 <div class="logo">
226 <div class="logo">
227 <a href="http://www.selenic.com/mercurial/">
227 <a href="http://mercurial.selenic.com/">
228 <img src="/static/hglogo.png" alt="mercurial" /></a>
228 <img src="/static/hglogo.png" alt="mercurial" /></a>
229 </div>
229 </div>
230 <ul>
230 <ul>
@@ -1,5 +1,5 b''
1 #!/bin/sh
1 #!/bin/sh
2 # http://www.selenic.com/mercurial/bts/issue322
2 # http://mercurial.selenic.com/bts/issue322
3
3
4 echo % file replaced with directory
4 echo % file replaced with directory
5
5
@@ -1,5 +1,5 b''
1 #!/bin/sh
1 #!/bin/sh
2 # http://www.selenic.com/mercurial/bts/issue352
2 # http://mercurial.selenic.com/bts/issue352
3
3
4 "$TESTDIR/hghave" eol-in-paths || exit 80
4 "$TESTDIR/hghave" eol-in-paths || exit 80
5
5
@@ -1,5 +1,5 b''
1 #!/bin/sh
1 #!/bin/sh
2 # http://www.selenic.com/mercurial/bts/issue433
2 # http://mercurial.selenic.com/bts/issue433
3
3
4 hg init a
4 hg init a
5 cd a
5 cd a
@@ -1,5 +1,5 b''
1 #!/bin/sh
1 #!/bin/sh
2 # http://www.selenic.com/mercurial/bts/issue660
2 # http://mercurial.selenic.com/bts/issue660
3
3
4
4
5 hg init a
5 hg init a
@@ -50,14 +50,14 b' list of commands:'
50
50
51 kwdemo print [keywordmaps] configuration and an expansion example
51 kwdemo print [keywordmaps] configuration and an expansion example
52 kwexpand expand keywords in the working directory
52 kwexpand expand keywords in the working directory
53 kwfiles print files currently configured for keyword expansion
53 kwfiles show files configured for keyword expansion
54 kwshrink revert expanded keywords in the working directory
54 kwshrink revert expanded keywords in the working directory
55
55
56 enabled extensions:
56 enabled extensions:
57
57
58 keyword expand keywords in tracked files
58 keyword expand keywords in tracked files
59 mq work with a stack of patches
59 mq manage a stack of patches
60 notify send e-mail notifications for commits/pushes
60 notify hooks for sending email notifications at commit/push time
61
61
62 use "hg -v help keyword" to show aliases and global options
62 use "hg -v help keyword" to show aliases and global options
63 % hg kwdemo
63 % hg kwdemo
@@ -4,6 +4,10 b' 2 files updated, 0 files merged, 0 files'
4 created new head
4 created new head
5
5
6 # non-interactive merge
6 # non-interactive merge
7 local changed file1 which remote deleted
8 use (c)hanged version or (d)elete? c
9 remote changed file2 which local deleted
10 use (c)hanged version or leave (d)eleted? c
7 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
11 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
8 (branch merge, don't forget to commit)
12 (branch merge, don't forget to commit)
9 status:
13 status:
@@ -304,6 +304,8 b' true.priority=1'
304 true.executable=cat
304 true.executable=cat
305 # hg update -C 1
305 # hg update -C 1
306 # hg merge -r 2 --config ui.merge=internal:prompt
306 # hg merge -r 2 --config ui.merge=internal:prompt
307 no tool found to merge f
308 keep (l)ocal or take (o)ther? l
307 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
309 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
308 (branch merge, don't forget to commit)
310 (branch merge, don't forget to commit)
309 # cat f
311 # cat f
@@ -512,6 +514,8 b' space'
512 revision 2
514 revision 2
513 space
515 space
514 merging f
516 merging f
517 output file f appears unchanged
518 was merge successful (yn)? n
515 merging f failed!
519 merging f failed!
516 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
520 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
517 use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
521 use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
@@ -1,5 +1,5 b''
1 % help
1 % help
2 mq extension - work with a stack of patches
2 mq extension - manage a stack of patches
3
3
4 This extension lets you work with a stack of patches in a Mercurial
4 This extension lets you work with a stack of patches in a Mercurial
5 repository. It manages two stacks of patches - all known patches, and
5 repository. It manages two stacks of patches - all known patches, and
@@ -53,7 +53,7 b' list of commands:'
53
53
54 enabled extensions:
54 enabled extensions:
55
55
56 mq work with a stack of patches
56 mq manage a stack of patches
57
57
58 use "hg -v help mq" to show aliases and global options
58 use "hg -v help mq" to show aliases and global options
59 adding a
59 adding a
@@ -19,6 +19,9 b' hg branch default'
19 hg branch -f default
19 hg branch -f default
20 hg ci -m "clear branch name" -d "1000000 0"
20 hg ci -m "clear branch name" -d "1000000 0"
21
21
22 echo % there should be only one default branch head
23 hg heads .
24
22 hg co foo
25 hg co foo
23 hg branch
26 hg branch
24 echo bleah > a
27 echo bleah > a
@@ -4,6 +4,13 b' marked working directory as branch bar'
4 % branch shadowing
4 % branch shadowing
5 abort: a branch of the same name already exists (use --force to override)
5 abort: a branch of the same name already exists (use --force to override)
6 marked working directory as branch default
6 marked working directory as branch default
7 % there should be only one default branch head
8 changeset: 3:bf1bc2f45e83
9 tag: tip
10 user: test
11 date: Mon Jan 12 13:46:40 1970 +0000
12 summary: clear branch name
13
7 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
14 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
8 foo
15 foo
9 created new head
16 created new head
@@ -81,7 +88,6 b' modify a branch'
81
88
82 4:4909a3732169
89 4:4909a3732169
83 4909a3732169c0c20011c4f4b8fdff4e3d89b23f 4
90 4909a3732169c0c20011c4f4b8fdff4e3d89b23f 4
84 be8523e69bf892e25817fc97187516b3c0804ae4 default
85 bf1bc2f45e834c75404d0ddab57d53beab56e2f8 default
91 bf1bc2f45e834c75404d0ddab57d53beab56e2f8 default
86 4909a3732169c0c20011c4f4b8fdff4e3d89b23f foo
92 4909a3732169c0c20011c4f4b8fdff4e3d89b23f foo
87 67ec16bde7f1575d523313b9bca000f6a6f12dca bar
93 67ec16bde7f1575d523313b9bca000f6a6f12dca bar
@@ -91,7 +97,6 b' be8523e69bf892e25817fc97187516b3c0804ae4'
91 be8523e69bf892e25817fc97187516b3c0804ae4 default
97 be8523e69bf892e25817fc97187516b3c0804ae4 default
92 % pushing everything
98 % pushing everything
93 4909a3732169c0c20011c4f4b8fdff4e3d89b23f 4
99 4909a3732169c0c20011c4f4b8fdff4e3d89b23f 4
94 be8523e69bf892e25817fc97187516b3c0804ae4 default
95 bf1bc2f45e834c75404d0ddab57d53beab56e2f8 default
100 bf1bc2f45e834c75404d0ddab57d53beab56e2f8 default
96 4909a3732169c0c20011c4f4b8fdff4e3d89b23f foo
101 4909a3732169c0c20011c4f4b8fdff4e3d89b23f foo
97 67ec16bde7f1575d523313b9bca000f6a6f12dca bar
102 67ec16bde7f1575d523313b9bca000f6a6f12dca bar
@@ -1,4 +1,4 b''
1 notify extension - send e-mail notifications for commits/pushes
1 notify extension - hooks for sending email notifications at commit/push time
2
2
3 Subscriptions can be managed through hgrc. Default mode is to print
3 Subscriptions can be managed through hgrc. Default mode is to print
4 messages to stdout, for testing and configuring.
4 messages to stdout, for testing and configuring.
@@ -27,10 +27,8 b' interactively select changes to commit'
27
27
28 options:
28 options:
29
29
30 -A --addremove mark new/missing files as added/removed before
30 -A --addremove mark new/missing files as added/removed before committing
31 committing
31 --close-branch mark a branch as closed, hiding it from the branch list
32 --close-branch mark a branch as closed, hiding it from the branch
33 list
34 -I --include include names matching the given patterns
32 -I --include include names matching the given patterns
35 -X --exclude exclude names matching the given patterns
33 -X --exclude exclude names matching the given patterns
36 -m --message use <text> as commit message
34 -m --message use <text> as commit message
@@ -61,6 +61,9 b' hg remove removed'
61 rm deleted
61 rm deleted
62 hg copy modified copied
62 hg copy modified copied
63
63
64 echo "% test unknown color"
65 hg --config color.status.modified=periwinkle status --color=always
66
64 # Run status with 2 different flags.
67 # Run status with 2 different flags.
65 # Check if result is the same or different.
68 # Check if result is the same or different.
66 # If result is not as expected, raise error
69 # If result is not as expected, raise error
@@ -124,3 +124,11 b' adding .hgignore'
124 adding deleted
124 adding deleted
125 adding modified
125 adding modified
126 adding removed
126 adding removed
127 % test unknown color
128 ignoring unknown color/effect 'periwinkle' (configured in color.status.modified)
129 M modified
130 A added
131 A copied
132 R removed
133 ! deleted
134 ? unknown
General Comments 0
You need to be logged in to leave comments. Login now