Mercurial > hg
changeset 20012:a1d88278beff
merge with stable
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sat, 16 Nov 2013 12:44:28 -0500 |
parents | 34d720b3b33e (diff) cb466830826a (current diff) |
children | 38acecdd016c |
files | contrib/check-code.py mercurial/util.py |
diffstat | 18 files changed, 114 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgignore Sat Nov 16 12:34:05 2013 -0500 +++ b/.hgignore Sat Nov 16 12:44:28 2013 -0500 @@ -1,6 +1,7 @@ syntax: glob *.elc +*.tmp *.orig *.rej *~
--- a/Makefile Sat Nov 16 12:34:05 2013 -0500 +++ b/Makefile Sat Nov 16 12:44:28 2013 -0500 @@ -53,7 +53,8 @@ clean: -$(PYTHON) setup.py clean --all # ignore errors from this command - find . \( -name '*.py[cdo]' -o -name '*.so' \) -exec rm -f '{}' ';' + find contrib doc hgext i18n mercurial tests \ + \( -name '*.py[cdo]' -o -name '*.so' \) -exec rm -f '{}' ';' rm -f $(addprefix mercurial/,$(notdir $(wildcard mercurial/pure/[a-z]*.py))) rm -f MANIFEST MANIFEST.in mercurial/__version__.py tests/*.err rm -rf build mercurial/locale @@ -123,7 +124,10 @@ $(PYTHON) i18n/posplit i18n/hg.pot %.po: i18n/hg.pot - msgmerge --no-location --update $@ $^ + # work on a temporary copy for never having a half completed target + cp $@ $@.tmp + msgmerge --no-location --update $@.tmp $^ + mv -f $@~ $@ .PHONY: help all local build doc clean install install-bin install-doc \ install-home install-home-bin install-home-doc dist dist-notests tests \
--- a/contrib/check-code.py Sat Nov 16 12:34:05 2013 -0500 +++ b/contrib/check-code.py Sat Nov 16 12:44:28 2013 -0500 @@ -264,7 +264,7 @@ (r'[\s\(](open|file)\([^)]*\)\.read\(', "use util.readfile() instead"), (r'[\s\(](open|file)\([^)]*\)\.write\(', - "use util.readfile() instead"), + "use util.writefile() instead"), (r'^[\s\(]*(open(er)?|file)\([^)]*\)', "always assign an opened file to a variable, and close it afterwards"), (r'[\s\(](open|file)\([^)]*\)\.',
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contrib/editmerge Sat Nov 16 12:44:28 2013 -0500 @@ -0,0 +1,58 @@ +#!/bin/bash +# A simple script for opening merge conflicts in the editor. +# Use the following Mercurial settings to enable it. +# +# [ui] +# merge = editmerge +# +# [merge-tools] +# editmerge.args=$output +# editmerge.check=changed +# editmerge.premerge=keep + +FILE=$1 + +getlines() { + grep -n "<<<<<<" $FILE | cut -f1 -d: +} + +# editor preference loosely based on http://mercurial.selenic.com/wiki/editor +# hg showconfig is at the bottom though, since it's slow to run (0.15 seconds) +ED=$HGEDITOR +if [ "$ED" = "" ] ; then + ED=$VISUAL +fi +if [ "$ED" = "" ] ; then + ED=$EDITOR +fi +if [ "$ED" = "" ] ; then + ED=$(hg showconfig ui.editor) +fi +if [ "$ED" = "" ] ; then + echo "merge failed - unable to find editor" + exit 1 +fi + +if [ "$ED" = "emacs" ] || [ "$ED" = "nano" ] || [ "$ED" = "vim" ] ; then + FIRSTLINE=$(getlines | head -n 1) + PREVIOUSLINE="" + + # open the editor to the first conflict until there are no more + # or the user stops editing the file + while [ ! "$FIRSTLINE" = "" ] && [ ! "$FIRSTLINE" = "$PREVIOUSLINE" ] ; do + $ED +$FIRSTLINE $FILE + PREVIOUSLINE=$FIRSTLINE + FIRSTLINE=$(getlines | head -n 1) + done +else + $ED $FILE +fi + +# get the line numbers of the remaining conflicts +CONFLICTS=$(getlines | sed ':a;N;$!ba;s/\n/, /g') +if [ ! "$CONFLICTS" = "" ] ; then + echo "merge failed - resolve the conflicts (line $CONFLICTS) then use 'hg resolve --mark'" + exit 1 +fi + +exit 0
--- a/mercurial/scmutil.py Sat Nov 16 12:34:05 2013 -0500 +++ b/mercurial/scmutil.py Sat Nov 16 12:44:28 2013 -0500 @@ -97,9 +97,10 @@ self._newfiles = set() def __call__(self, f): + if f in self._newfiles: + return fl = encoding.lower(f) - if (fl in self._loweredfiles and f not in self._dirstate and - f not in self._newfiles): + if fl in self._loweredfiles and f not in self._dirstate: msg = _('possible case-folding collision for %s') % f if self._abort: raise util.Abort(msg)
--- a/mercurial/util.py Sat Nov 16 12:34:05 2013 -0500 +++ b/mercurial/util.py Sat Nov 16 12:44:28 2013 -0500 @@ -1033,9 +1033,10 @@ if t < 0: t = 0 # time.gmtime(lt) fails on Windows for lt < -43200 tz = 0 - if "%1" in format or "%2" in format: + if "%1" in format or "%2" in format or "%z" in format: sign = (tz > 0) and "-" or "+" minutes = abs(tz) // 60 + format = format.replace("%z", "%1%2") format = format.replace("%1", "%c%02d" % (sign, minutes // 60)) format = format.replace("%2", "%02d" % (minutes % 60)) try:
--- a/tests/hghave.py Sat Nov 16 12:34:05 2013 -0500 +++ b/tests/hghave.py Sat Nov 16 12:44:28 2013 -0500 @@ -233,6 +233,9 @@ finally: os.rmdir(d) +def has_root(): + return os.geteuid() == 0 + def has_pyflakes(): return matchoutput("sh -c \"echo 'import re' 2>&1 | pyflakes\"", r"<stdin>:1: 're' imported but unused", @@ -312,6 +315,7 @@ "p4": (has_p4, "Perforce server and client"), "pyflakes": (has_pyflakes, "Pyflakes python linter"), "pygments": (has_pygments, "Pygments source highlighting library"), + "root": (has_root, "root permissions"), "serve": (has_serve, "platform and python can manage 'hg serve -d'"), "ssl": (has_ssl, "python >= 2.6 ssl module and python OpenSSL"), "svn": (has_svn, "subversion client and admin tools"),
--- a/tests/test-blackbox.t Sat Nov 16 12:34:05 2013 -0500 +++ b/tests/test-blackbox.t Sat Nov 16 12:44:28 2013 -0500 @@ -65,7 +65,7 @@ $ hg rollback repository tip rolled back to revision 1 (undo pull) -#if unix-permissions +#if unix-permissions no-root $ chmod 000 .hg/blackbox.log $ hg --debug incoming warning: cannot write to blackbox.log: Permission denied @@ -98,7 +98,7 @@ (run 'hg update' to get a working copy) a failure reading from the log is fine -#if unix-permissions +#if unix-permissions no-root $ hg blackbox -l 3 abort: Permission denied: $TESTTMP/blackboxtest2/.hg/blackbox.log [255]
--- a/tests/test-clone.t Sat Nov 16 12:34:05 2013 -0500 +++ b/tests/test-clone.t Sat Nov 16 12:44:28 2013 -0500 @@ -543,7 +543,7 @@ $ rm -rf b # work around bug with http clone -#if unix-permissions +#if unix-permissions no-root Inaccessible source @@ -596,7 +596,7 @@ [255] -#if unix-permissions +#if unix-permissions no-root leave existing directory in place after clone failure
--- a/tests/test-command-template.t Sat Nov 16 12:34:05 2013 -0500 +++ b/tests/test-command-template.t Sat Nov 16 12:44:28 2013 -0500 @@ -447,7 +447,7 @@ Error if style not readable: -#if unix-permissions +#if unix-permissions no-root $ touch q $ chmod 0 q $ hg log --style ./q @@ -479,7 +479,7 @@ Error if include fails: $ echo 'changeset = q' >> t -#if unix-permissions +#if unix-permissions no-root $ hg log --style ./t abort: template file ./q: Permission denied [255] @@ -1445,7 +1445,7 @@ $ hg ci -m h2e -d '4 0' $ hg merge -q - $ hg ci -m merge -d '5 0' + $ hg ci -m merge -d '5 -3600' No tag set: @@ -1533,7 +1533,7 @@ > EOF $ hg -R latesttag tip - test 10:dee8f28249af + test 10:9b4a630e5f5f Test recursive showlist template (issue1989): @@ -1586,3 +1586,18 @@ h1c b a + +Test date format: + + $ hg log -R latesttag --template 'date: {date(date, "%y %m %d %S %z")}\n' + date: 70 01 01 10 +0000 + date: 70 01 01 09 +0000 + date: 70 01 01 08 +0000 + date: 70 01 01 07 +0000 + date: 70 01 01 06 +0000 + date: 70 01 01 05 +0100 + date: 70 01 01 04 +0000 + date: 70 01 01 03 +0000 + date: 70 01 01 02 +0000 + date: 70 01 01 01 +0000 + date: 70 01 01 00 +0000
--- a/tests/test-convert.t Sat Nov 16 12:34:05 2013 -0500 +++ b/tests/test-convert.t Sat Nov 16 12:44:28 2013 -0500 @@ -310,7 +310,7 @@ abort: cannot create new bundle repository [255] -#if unix-permissions +#if unix-permissions no-root conversion to dir without permissions should fail
--- a/tests/test-journal-exists.t Sat Nov 16 12:34:05 2013 -0500 +++ b/tests/test-journal-exists.t Sat Nov 16 12:44:28 2013 -0500 @@ -22,7 +22,7 @@ Check that zero-size journals are correctly aborted: -#if unix-permissions +#if unix-permissions no-root $ hg bundle -qa repo.hg $ chmod -w foo/.hg/store/00changelog.i
--- a/tests/test-lock-badness.t Sat Nov 16 12:34:05 2013 -0500 +++ b/tests/test-lock-badness.t Sat Nov 16 12:44:28 2013 -0500 @@ -1,5 +1,4 @@ - $ "$TESTDIR/hghave" unix-permissions || exit 80 - +#if unix-permissions no-root $ hg init a $ echo a > a/a $ hg -R a ci -A -m a @@ -21,4 +20,4 @@ [255] $ chmod 700 a/.hg/store - +#endif
--- a/tests/test-permissions.t Sat Nov 16 12:34:05 2013 -0500 +++ b/tests/test-permissions.t Sat Nov 16 12:44:28 2013 -0500 @@ -1,4 +1,4 @@ - $ "$TESTDIR/hghave" unix-permissions || exit 80 +#ifdef unix-permissions no-root $ hg init t $ cd t @@ -70,3 +70,5 @@ $ chmod +rx dir $ cd .. + +#endif
--- a/tests/test-phases-exchange.t Sat Nov 16 12:34:05 2013 -0500 +++ b/tests/test-phases-exchange.t Sat Nov 16 12:44:28 2013 -0500 @@ -1062,7 +1062,7 @@ | o 0 public a-A - 054250a37db4 -#if unix-permissions +#if unix-permissions no-root Pushing From an unlockable repo --------------------------------
--- a/tests/test-pull-permission.t Sat Nov 16 12:34:05 2013 -0500 +++ b/tests/test-pull-permission.t Sat Nov 16 12:44:28 2013 -0500 @@ -1,4 +1,4 @@ - $ "$TESTDIR/hghave" unix-permissions || exit 80 +#if unix-permissions no-root $ hg init a $ cd a @@ -30,3 +30,5 @@ 1 files, 1 changesets, 1 total revisions $ cd .. + +#endif
--- a/tests/test-repair-strip.t Sat Nov 16 12:34:05 2013 -0500 +++ b/tests/test-repair-strip.t Sat Nov 16 12:44:28 2013 -0500 @@ -1,4 +1,4 @@ - $ "$TESTDIR/hghave" unix-permissions || exit 80 +#if unix-permissions no-root $ echo "[extensions]" >> $HGRCPATH $ echo "mq=">> $HGRCPATH @@ -130,3 +130,5 @@ 2 files, 2 changesets, 2 total revisions $ cd .. + +#endif
--- a/tests/test-serve.t Sat Nov 16 12:34:05 2013 -0500 +++ b/tests/test-serve.t Sat Nov 16 12:44:28 2013 -0500 @@ -45,12 +45,14 @@ With -v and -p daytime (should fail because low port) +#if no-root $ KILLQUIETLY=Y $ hgserve -p daytime abort: cannot start server at 'localhost:13': Permission denied abort: child process failed to start % errors $ KILLQUIETLY=N +#endif With --prefix foo