Mercurial > hg
changeset 839:9c918287d10b
Merge with BOS
author | mpm@selenic.com |
---|---|
date | Thu, 04 Aug 2005 13:31:25 -0800 |
parents | 1fe3b14c7044 (diff) 0fc4b1ab57e3 (current diff) |
children | 141744605b51 6a8a50bcc143 |
files | doc/hg.1.txt hgeditor hgmerge mercurial/bdiff.c mercurial/commands.py mercurial/hg.py mercurial/hgweb.py mercurial/util.py tests/run-tests tests/test-clone tests/test-clone-failure tests/test-merge-revert tests/test-merge-revert.out tests/test-merge-revert2 tests/test-merge-revert2.out tests/test-merge5.out tests/test-push-warn tests/test-push-warn.out |
diffstat | 13 files changed, 73 insertions(+), 76 deletions(-) [+] |
line wrap: on
line diff
--- a/doc/hg.1.txt Thu Aug 04 05:14:59 2005 -0800 +++ b/doc/hg.1.txt Thu Aug 04 13:31:25 2005 -0800 @@ -330,6 +330,7 @@ -p, --port <n> port to use (default: 8000) -n, --name <name> name to show in web pages (default: working dir) -t, --templatedir <path> web templates to use + -6, --ipv6 use IPv6 in addition to IPv4 status [options] [files]:: Show changed files in the working directory. If no names are
--- a/hgeditor Thu Aug 04 05:14:59 2005 -0800 +++ b/hgeditor Thu Aug 04 13:31:25 2005 -0800 @@ -24,11 +24,11 @@ HGTMP="" cleanup_exit() { rm -rf "$HGTMP" - exit $1 } # Remove temporary files even if we get interrupted -trap "cleanup_exit 255" TERM KILL INT QUIT ABRT +trap "cleanup_exit" 0 # normal exit +trap "exit 255" 1 2 3 6 15 # HUP INT QUIT ABRT TERM HGTMP="${TMPDIR-/tmp}/hgeditor.$RANDOM.$RANDOM.$RANDOM.$$" (umask 077 && mkdir "$HGTMP") || { @@ -51,8 +51,8 @@ grep -vE '^(HG: manifest hash .*)?$' "$1" >> "$HGTMP/msg" CHECKSUM=`md5sum "$HGTMP/msg"` -$EDITOR "$HGTMP/msg" "$HGTMP/diff" || cleanup_exit $? -echo "$CHECKSUM" | md5sum -c >/dev/null 2>&1 && cleanup_exit 13 +$EDITOR "$HGTMP/msg" "$HGTMP/diff" || exit $? +echo "$CHECKSUM" | md5sum -c >/dev/null 2>&1 && exit 13 if [ "$SIGN" == "1" ]; then { @@ -64,4 +64,4 @@ mv "$HGTMP/msg" "$1" fi -cleanup_exit $? +exit $?
--- a/hgmerge Thu Aug 04 05:14:59 2005 -0800 +++ b/hgmerge Thu Aug 04 13:31:25 2005 -0800 @@ -19,48 +19,36 @@ cp "$LOCAL" "$LOCAL.orig" # Attempt to do a non-interactive merge -if type merge > /dev/null ; then - if merge "$LOCAL" "$BASE" "$OTHER" 2> /dev/null; then - # success! - exit 0 - fi +if type merge > /dev/null 2>&1; then + merge "$LOCAL" "$BASE" "$OTHER" 2> /dev/null && exit 0 cp "$LOCAL.orig" "$LOCAL" -elif type diff3 > /dev/null ; then - if diff3 -m "$LOCAL.orig" "$BASE" "$OTHER" > "$LOCAL" ; then - # success - exit 0 - fi +elif type diff3 > /dev/null 2>&1; then + diff3 -m "$LOCAL.orig" "$BASE" "$OTHER" > "$LOCAL" && exit 0 cp "$LOCAL.orig" "$LOCAL" fi if [ -n "$DISPLAY" ]; then # try using kdiff3, which is fairly nice - if type kdiff3 > /dev/null ; then - if kdiff3 --auto "$BASE" "$LOCAL" "$OTHER" -o "$LOCAL" ; then - exit 0 - else - exit 1 - fi + if type kdiff3 > /dev/null 2>&1; then + kdiff3 --auto "$BASE" "$LOCAL" "$OTHER" -o "$LOCAL" || exit 1 + exit 0 fi # try using tkdiff, which is a bit less sophisticated - if type tkdiff > /dev/null ; then - if tkdiff "$LOCAL" "$OTHER" -a "$BASE" -o "$LOCAL" ; then - exit 0 - else - exit 1 - fi + if type tkdiff > /dev/null 2>&1; then + tkdiff "$LOCAL" "$OTHER" -a "$BASE" -o "$LOCAL" || exit 1 + exit 0 fi fi # Attempt to do a merge with $EDITOR -if type merge > /dev/null ; then +if type merge > /dev/null 2>&1; then echo "conflicts detected in $LOCAL" merge "$LOCAL" "$BASE" "$OTHER" 2>/dev/null || $EDITOR "$LOCAL" exit 0 fi -if type diff3 > /dev/null ; then +if type diff3 > /dev/null 2>&1; then echo "conflicts detected in $LOCAL" diff3 -m "$LOCAL.orig" "$BASE" "$OTHER" > "$LOCAL" || $EDITOR "$LOCAL" exit 0 @@ -69,29 +57,28 @@ HGTMP="" cleanup_exit() { rm -rf "$HGTMP" - exit $1 } # attempt to manually merge with diff and patch -if type diff > /dev/null ; then - if type patch > /dev/null ; then - # Remove temporary files even if we get interrupted - trap "cleanup_exit 1" TERM KILL INT QUIT ABRT +if type diff > /dev/null 2>&1 && type patch > /dev/null 2>&1; then + # Remove temporary files even if we get interrupted + trap "cleanup_exit" 0 # normal exit + trap "exit 1" 1 2 3 6 15 # HUP INT QUIT ABRT TERM - HGTMP="${TMPDIR-/tmp}/hgmerge.$RANDOM.$RANDOM.$RANDOM.$$" - (umask 077 && mkdir "$HGTMP") || { - echo "Could not create temporary directory! Exiting." 1>&2 - exit 1 - } + HGTMP="${TMPDIR-/tmp}/hgmerge.$RANDOM.$RANDOM.$RANDOM.$$" + (umask 077 && mkdir "$HGTMP") || { + echo "Could not create temporary directory! Exiting." 1>&2 + exit 1 + } - diff -u "$BASE" "$OTHER" > "$HGTMP/diff" - if patch "$LOCAL" < "$HGTMP/diff" ; then - cleanup_exit 0 - else - $EDITOR "$LOCAL" "$LOCAL.rej" - fi - cleanup_exit 1 + diff -u "$BASE" "$OTHER" > "$HGTMP/diff" + if patch "$LOCAL" < "$HGTMP/diff"; then + exit 0 + else + # If rejects are empty after using the editor, merge was ok + $EDITOR "$LOCAL" "$LOCAL.rej" && test -s "$LOCAL.rej" || exit 0 fi + exit 1 fi echo "hgmerge: unable to find merge, tkdiff, kdiff3, or diff+patch!"
--- a/mercurial/bdiff.c Thu Aug 04 05:14:59 2005 -0800 +++ b/mercurial/bdiff.c Thu Aug 04 13:31:25 2005 -0800 @@ -229,7 +229,8 @@ /* allocate and fill arrays */ t = equatelines(a, an, b, bn); pos = calloc(bn, sizeof(struct pos)); - l.head = l.base = malloc(sizeof(struct hunk) * ((an + bn) / 4 + 2)); + /* we can't have more matches than lines in the shorter file */ + l.head = l.base = malloc(sizeof(struct hunk) * ((an<bn ? an:bn) + 1)); if (pos && l.base && t) { /* generate the matching block list */
--- a/mercurial/commands.py Thu Aug 04 05:14:59 2005 -0800 +++ b/mercurial/commands.py Thu Aug 04 13:31:25 2005 -0800 @@ -710,7 +710,7 @@ message = "%s\n" % '\n'.join(message) ui.debug('message:\n%s\n' % message) - f = os.popen("patch -p%d < %s" % (strip, pf)) + f = os.popen("patch -p%d < '%s'" % (strip, pf)) files = [] for l in f.read().splitlines(): l.rstrip('\r\n'); @@ -1009,7 +1009,7 @@ return default httpd = hgweb.create_server(repo.root, opts["name"], opts["templates"], - opts["address"], opts["port"], + opts["address"], opts["port"], opts["ipv6"], openlog('accesslog', sys.stdout), openlog('errorlog', sys.stderr)) if ui.verbose: @@ -1258,7 +1258,8 @@ ('a', 'address', '', 'interface address'), ('n', 'name', os.getcwd(), 'repository name'), ('', 'stdio', None, 'for remote clients'), - ('t', 'templates', "", 'template map')], + ('t', 'templates', "", 'template map'), + ('6', 'ipv6', None, 'use IPv6 in addition to IPv4')], "hg serve [OPTION]..."), "^status": (status, [('I', 'include', [], 'include path in search'), @@ -1425,7 +1426,14 @@ except SignalInterrupt: u.warn("killed!\n") except KeyboardInterrupt: - u.warn("interrupted!\n") + try: + u.warn("interrupted!\n") + except IOError, inst: + if inst.errno == errno.EPIPE: + if u.debugflag: + u.warn("\nbroken pipe\n") + else: + raise except IOError, inst: if hasattr(inst, "code"): u.warn("abort: %s\n" % inst)
--- a/mercurial/hgweb.py Thu Aug 04 05:14:59 2005 -0800 +++ b/mercurial/hgweb.py Thu Aug 04 13:31:25 2005 -0800 @@ -6,7 +6,7 @@ # This software may be used and distributed according to the terms # of the GNU General Public License, incorporated herein by reference. -import os, cgi, time, re, difflib, sys, zlib +import os, cgi, time, re, difflib, socket, sys, zlib from mercurial.hg import * from mercurial.ui import * @@ -699,11 +699,14 @@ else: write(self.t("error")) -def create_server(path, name, templates, address, port, +def create_server(path, name, templates, address, port, use_ipv6 = False, accesslog = sys.stdout, errorlog = sys.stderr): import BaseHTTPServer + class IPv6HTTPServer(BaseHTTPServer.HTTPServer): + address_family = socket.AF_INET6 + class hgwebhandler(BaseHTTPServer.BaseHTTPRequestHandler): def log_error(self, format, *args): errorlog.write("%s - - [%s] %s\n" % (self.address_string(), @@ -774,10 +777,13 @@ sys.argv, sys.stdin, sys.stdout, sys.stderr = save hg = hgweb(path, name, templates) - return BaseHTTPServer.HTTPServer((address, port), hgwebhandler) + if use_ipv6: + return IPv6HTTPServer((address, port), hgwebhandler) + else: + return BaseHTTPServer.HTTPServer((address, port), hgwebhandler) -def server(path, name, templates, address, port, +def server(path, name, templates, address, port, use_ipv6 = False, accesslog = sys.stdout, errorlog = sys.stderr): - httpd = create_server(path, name, templates, address, port, + httpd = create_server(path, name, templates, address, port, use_ipv6, accesslog, errorlog) httpd.serve_forever()
--- a/tests/run-tests Thu Aug 04 05:14:59 2005 -0800 +++ b/tests/run-tests Thu Aug 04 13:31:25 2005 -0800 @@ -27,11 +27,11 @@ HGTMP="" cleanup_exit() { rm -rf "$HGTMP" - exit $1 } # Remove temporary files even if we get interrupted -trap "cleanup_exit 255" TERM KILL INT QUIT ABRT +trap "cleanup_exit" 0 # normal exit +trap "exit 255" 1 2 3 6 15 # HUP INT QUIT ABRT TERM HGTMP="${TMPDIR-/tmp}/hgtests.$RANDOM.$RANDOM.$RANDOM.$$" (umask 077 && mkdir "$HGTMP") || { @@ -61,7 +61,7 @@ chmod 755 "$INST/bin/hg" else cat tests/install.err - cleanup_exit 1 + exit 1 fi cd "$TESTDIR" @@ -97,17 +97,11 @@ if diff -u "$OUTOK" "$OUT" > /dev/null; then : no differences else - if FIXME="`grep 'FIXME' \"$TESTDIR/$1\"`"; then - echo - echo "$1 failed, but this is ignored because of:" - echo "$FIXME" - else - cp "$OUT" "$ERR" - echo - echo "$1 output changed:" - diff -u "$OUTOK" "$ERR" || true - fail=1 - fi + cp "$OUT" "$ERR" + echo + echo "$1 output changed:" + diff -u "$OUTOK" "$ERR" || true + fail=1 fi fi @@ -132,6 +126,6 @@ echo "Ran $tests tests, $failed failed." if [ $failed -gt 0 ] ; then - cleanup_exit 1 + exit 1 fi -cleanup_exit 0 +exit 0
--- a/tests/test-clone Thu Aug 04 05:14:59 2005 -0800 +++ b/tests/test-clone Thu Aug 04 13:31:25 2005 -0800 @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh mkdir a cd a
--- a/tests/test-clone-failure Thu Aug 04 05:14:59 2005 -0800 +++ b/tests/test-clone-failure Thu Aug 04 13:31:25 2005 -0800 @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh # No local source hg clone a b
--- a/tests/test-merge-revert Thu Aug 04 05:14:59 2005 -0800 +++ b/tests/test-merge-revert Thu Aug 04 13:31:25 2005 -0800 @@ -1,5 +1,4 @@ #!/bin/sh -# FIXME: This test may fail due to an uncritical bug in Mercurial. mkdir t cd t
--- a/tests/test-merge-revert.out Thu Aug 04 05:14:59 2005 -0800 +++ b/tests/test-merge-revert.out Thu Aug 04 13:31:25 2005 -0800 @@ -26,6 +26,7 @@ + hg update merging file1 + hg diff +FIXME: This is a known bug: + hg status + hg id 3aa14bbc23d9 tip