Commit Graph

263 Commits

Author SHA1 Message Date
Matt Mackall
fcb44e87db commit: move explicit file checking into repo.commit 2009-06-01 21:51:00 -05:00
Matt Mackall
7c83f8b030 commit: editor reads file lists from provided context 2009-06-01 14:51:47 -05:00
Matt Mackall
37eaadf540 match: ignore return of match.bad
All users returned false, return can now be dropped
2009-05-31 17:54:18 -05:00
Matt Mackall
a30eb02911 cmdutils: Take over glob expansion duties from util 2009-05-24 16:38:29 -05:00
Matt Mackall
b287cf72fe match: refactor patkind
add patkind(pat) to match
change external users
change util.patkind to _patsplit
2009-05-24 02:56:14 -05:00
Patrick Mezard
e8790c2140 serve: add and use portable spawnvp replacement
There is no standard python command to really detach a process under Windows.
Instead we use the low level API wrapped by subprocess module with all
necessary options to avoid any kind of context inheritance. Unfortunately, this
version still opens a new window for the child process.

The following have been tried:
- os.spawnv(os.P_NOWAIT): works but the child process is killed when parent
  console terminates.
- os.spawnv(os.P_DETACH): works on python25, hang on python26 when writing to
  the hgweb output socket.
- subprocess.CreateProcess() hack without shell mode: similar to
  os.spawnv(os.P_DETACH).

Fix 1/3 for issue421
2009-04-10 21:20:25 +02:00
Robert Bachmann
ef03cfb55c Bugfix and test for hg log XML output 2009-12-30 02:41:19 +01:00
Robert Bachmann
93bde9a865 Added support for templatevar "footer" to cmdutil.py 2009-12-28 17:55:52 +01:00
Nicolas Dumazet
4c31093b61 cmdutil: replace sys.maxint with None as default value in loglimit
Semantically, it is better to use None over any other value when there is
"no value". Using maxint in this context is quite hackish, and is not forward
compatible.
2009-12-14 00:32:29 +09:00
Patrick Mezard
f32df1c921 Make {file_copies} usable as a --template key
Before this, to display file copies in templates, you had to write something
like {file_copies%filecopy}. For some reason, the {file_copy} subtemplate was
used by default but not defined by default in changeset_templater, while styles
were already using it. Here we define {file_copy} in changeset_templater, and
change the templater to handle formatting strings like {file_copies%filecopy}
with already expanded keys (in this case {file_copies}), for backward
compatibility.
2009-12-13 18:06:24 +01:00
Patrick Mezard
46b592cdfa templatekw: change {file_copies} behaviour, add {file_copies_switch}
{file_copies} template now displays file copies with or without the --copies
switch being set. A new {file_copies_switch} template implements the former
behaviour.
2009-12-13 18:06:24 +01:00
Patrick Mezard
f11c571560 cmdutil: extract file copies closure into templatekw 2009-12-13 18:06:24 +01:00
Patrick Mezard
a8e64bad12 cmdutil: extract latest tags closures in templatekw 2009-12-13 18:06:24 +01:00
Patrick Mezard
0ea61cf043 cmdutil: extract file changes closures into templatekw 2009-12-13 18:06:24 +01:00
Patrick Mezard
da27222189 cmdutil: extract repo dependent closures in templatekw 2009-12-13 18:06:23 +01:00
Patrick Mezard
434744ad77 cmdutil: extract ctx dependent closures into templatekw 2009-12-13 18:06:23 +01:00
Patrick Mezard
9de17a2612 cmdutil: replace showlist() closure with a function 2009-12-13 18:06:23 +01:00
Dirkjan Ochtman
9aac0ec2b7 merge with the stable branch 2009-12-10 12:31:57 +01:00
Benoit Boissinot
2c87a7558e log --follow: use a set instead of a list
benchmarked with hg log -qf on the linux kernel:

before:
Time: real 39.010 secs (user 38.840+0.000 sys 0.060+0.000)
after:
Time: real 8.560 secs (user 8.440+0.000 sys 0.080+0.000)
2009-12-10 00:14:22 +01:00
Nicolas Dumazet
414130944c cmdutil: service: add appendpid parameter to append pids to pid file 2009-12-01 11:28:31 +09:00
Benoit Boissinot
da51217b4d backout experimental change from 67851ac42937 2009-12-01 01:43:46 +01:00
Matt Mackall
184d53a4f9 Merge with crew 2009-11-30 15:31:14 -06:00
Patrick Mezard
dee4f69d0f cmdutil: fix missing default 'extra' template 2009-11-30 22:23:09 +01:00
Nicolas Dumazet
668d6309cd run-tests: add --inotify option to test runner
Activate inotify extension when running tests.
2009-11-17 18:50:39 +09:00
Benoit Boissinot
f181483f31 findrenames: improve coding-style 2009-11-24 20:40:04 +01:00
Benoit Boissinot
22b5fe48a3 findrenames: speedup exact match
benchmarked on crew repo with:
rm -rf * ; hg up -C ; for i in `find . -name "*.py"` ; do mv $i $i.new;done

followed by:
hg addremove -s 100

before: Time: real 28.890 secs (user 26.920+0.000 sys 1.450+0.000)
after : Time: real 6.790 secs (user 5.310+0.000 sys 1.350+0.000)
2009-11-24 18:21:47 +01:00
Benoit Boissinot
c6fb6e4c64 findrenames: refactor the score computation 2009-11-24 17:39:42 +01:00
Benoit Boissinot
ee278104a8 findrenames: first loop over the removed files, it's faster
Getting the file from the working dir is less expensive than getting it from
the repo history, hence the speedup.

benchmarked on crew repo with:
rm -rf * ; hg up -C ; for i in `find . -name "*.py"` ; do mv $i $i.new;done

followed by:
hg addremove -s 100

before: Time: real 68.760 secs (user 65.760+0.000 sys 2.490+0.000)
after : Time: real 28.890 secs (user 26.920+0.000 sys 1.450+0.000)
2009-11-24 17:26:42 +01:00
Martin Geisler
6355b4950b cmdutil: mark string for translation 2009-05-20 12:20:27 +02:00
Matt Mackall
16d4ef56bc commit: explain how to abort commit in editor 2009-05-18 17:36:24 -05:00
Benoit Boissinot
bee6cb3d55 addremove/findrenames: find renames according to the match object (issue1527)
Instead of only finding similarities in the added/removed files found
by the addremove step, follow the match object:

hg addremove -s80 foo -> add and removes files in foo
                         + find similarities between files in foo
hg addremove -s80 -> add and removes files in the whole repo
                     + find similarities between files in the whole repo

hg import --similarity will still work correctly (only find similarities
between files found in the patch).
2009-05-17 22:51:17 +02:00
Benoit Boissinot
6f0577d081 addremove: mapping isn't really needed, simplify 2009-05-17 22:40:04 +02:00
Matt Mackall
5534a9c3e3 editor: move HG: filtering from ui to commiteditor 2009-05-14 13:21:17 -05:00
Matt Mackall
ebe3b0ebc3 commit: move commit editor to cmdutil, pass as function 2009-05-14 13:20:40 -05:00
Peter Arrenbrecht
a75765cf7f drop unused imports 2009-05-14 15:35:46 +02:00
Martin Geisler
4d0bbe44ba cmdutil: replace pseudo-set by real set 2009-05-12 01:08:28 +02:00
Dirkjan Ochtman
5c6c43b746 templater: provide the standard template filters by default 2009-05-12 12:04:05 +02:00
Simon Heimberg
09ac1e6c92 separate import lines from mercurial and general python modules 2009-04-28 17:40:46 +02:00
Martin Geisler
750183bdad updated license to be explicit about GPL version 2 2009-04-26 01:08:54 +02:00
Matt Mackall
f6c8930392 replace various uses of list.reverse() 2009-04-26 16:50:44 -05:00
Matt Mackall
2f9b02c62d replace util.sort with sorted built-in
This is marginally faster for small and moderately-sized lists
2009-04-26 16:50:44 -05:00
Matt Mackall
88b13fecec ui: replace parentui mechanism with repo.baseui 2009-04-26 16:50:43 -05:00
Matt Mackall
6708d0e299 add cmdutil.remoteui
remoteui sorts out the issues of getting ssh config options from the
local repo into the remote one while not copying other options like hooks.
2009-04-26 16:50:43 -05:00
Martin Geisler
e2222d3c43 replace set-like dictionaries with real sets
Many of the dictionaries created by dict.fromkeys were emulating sets.
These can now be replaced with real sets.
2009-04-22 00:57:28 +02:00
Martin Geisler
85e0e5f5fa cmdutil: return boolean result directly in want function 2009-04-22 17:15:59 +02:00
Martin Geisler
80dd126e92 remove unnecessary outer parenthesis in if-statements 2009-04-22 01:39:47 +02:00
Dirkjan Ochtman
10e214223e cmdutil: prevent code repetition by abstraction in changeset_templater 2009-04-06 10:51:27 +02:00
Dirkjan Ochtman
7856ee8225 cmdutil: refactor handling of templating in show_changeset() 2009-04-04 17:55:52 +02:00
Matt Mackall
642f4d7151 move encoding bits from util to encoding
In addition to cleaning up util, this gets rid of some circular dependencies.
2009-04-03 14:51:48 -05:00
Martin Geisler
05b3dfb2cf cmdutil: fix untranslatable string in copy 2009-03-27 17:35:00 +01:00
Alexander Solovyov
475ce753d3 templater: ability to display diffstat for log-like commands 2009-03-23 10:41:42 +01:00
Alexander Solovyov
7ea3611901 templater: use contexts consistently throughout changeset_templater 2009-03-23 13:15:57 +01:00
timeless
26d95caa99 help: miscellaneous language fixes 2009-02-28 12:38:45 +01:00
Matt Mackall
ca1b896eac log: ignore --removed if no files specified (issue1166)
Otherwise we filter out merge changesets with no changed files
2009-02-16 17:37:23 -06:00
Jim Correia
78e5b53d7d add --git option to commands supporting --patch (log, incoming, history, tip)
No short -g form, since it would conflict with -g from the graphlog extension.
2009-02-14 22:40:39 +01:00
Alexander Solovyov
18946af340 cmdutil.logmessage: options should be optional 2009-01-19 12:38:54 +02:00
Matt Mackall
e61d364b61 error: move UnknownCommand and AmbiguousCommand 2009-01-12 11:39:38 -06:00
Brendan Cully
99c25ba716 Improved error message for log --follow
Mads Kiilerich notes that the existing message was unclear
when a nonexistent file was supplied.
2008-11-24 17:16:39 -08:00
Dirkjan Ochtman
9ef9b3e5db cmdutil: use change contexts for cset-printer and cset-templater 2008-11-14 13:59:25 +01:00
Matt Mackall
b2807810c6 linkrev: take a revision number rather than a hash 2008-11-12 15:19:14 -06:00
Ronny Pfannschmidt
599e773be7 export: fixed silent output file overwriting
hg export -o outfile 1 2 3 4 had the same effect as hg -o outfile 4

This was caused by opening with 'w' instead of 'a'. This only occurs when
the filename pattern resulted in ambiguous patch filenames.
2008-11-06 11:17:38 +01:00
Dirkjan Ochtman
2f6d26d640 patch: turn patch.diff() into a generator
This should even be a little faster than passing in an fp argument.
2008-11-03 16:48:23 +01:00
Benoit Boissinot
ea7fe6dacc remove unused variables 2008-10-28 19:25:26 +01:00
Matt Mackall
bebeb261d5 findcmd: have dispatch look up strict flag 2008-10-22 17:34:08 -05:00
Matt Mackall
d06459495e rename: handle renaming to a target marked removed 2008-10-18 04:26:09 -05:00
Benoit Boissinot
20fc9c8d79 allow committing a removed directory
fix issue1089
2008-09-03 02:27:25 +02:00
Martin Geisler
28fb695e9a i18n: mark strings for translation in Mercurial 2008-08-31 16:12:02 +02:00
Matt Mackall
a65ef7bc5d util: add sort helper 2008-06-27 18:28:45 -05:00
Matt Mackall
d4ab55a92b status: clean up all users for unknown files 2008-06-27 13:43:29 -05:00
Matt Mackall
bc715be859 add __len__ and __iter__ methods to repo and revlog 2008-06-26 14:35:50 -05:00
Matt Mackall
fbb5127472 use repo[changeid] to get a changectx 2008-06-26 14:35:46 -05:00
Matt Mackall
9d556277c8 context: avoid using None for working parent 2008-06-25 17:35:20 -05:00
Patrick Mezard
a19a271534 Merge with crew-stable 2008-06-07 11:43:16 +02:00
Maxim Dounin
1ce305a01e addremove: correctly handle intermediate symlinks
This fixes problems mentioned in issue660 comments (unrelated to original
issue) where directory was renamed, and symlink was added instead.
In such situation addremove wasn't able to correctly detect that old files
no longer here, but tried to add symlink (and failed due collision with
old files).
2008-05-07 14:32:00 +04:00
Matt Mackall
fb88571d19 match: remove files arg from repo.status and friends 2008-05-12 11:37:08 -05:00
Matt Mackall
6f8150b03d match: stop passing files through commitfunc 2008-05-12 11:37:08 -05:00
Matt Mackall
643bf14a33 match: use helpers for cmdutil 2008-05-12 11:37:08 -05:00
Matt Mackall
7a52386b9e walk: return a single value 2008-05-12 11:37:08 -05:00
Matt Mackall
aa95163304 walk: remove cmdutil.walk 2008-05-12 11:37:08 -05:00
Matt Mackall
5768074e71 walk: remove rel and exact returns 2008-05-12 11:37:08 -05:00
Matt Mackall
e02d6f5a75 walk: remove remaining users of cmdutils.matchpats 2008-05-12 11:37:07 -05:00
Matt Mackall
7e3e676e09 cmdutil: switch commit to match 2008-05-12 11:37:07 -05:00
Matt Mackall
9adaad6c57 walkchangerev: use new match objects 2008-05-12 11:37:07 -05:00
Matt Mackall
fb724552a5 walk: pass match object to cmdutil.walk
- introduce cmdutil.match
- change args to cmdutil.walk
- create match objects for walk calls
2008-05-12 11:37:07 -05:00
Matt Mackall
1897262320 walk: begin refactoring badmatch handling 2008-05-12 11:37:07 -05:00
Matt Mackall
15d8da57c1 walk: remove files arg from repo.walk and dirstate.walk 2008-05-12 11:37:07 -05:00
Matt Mackall
20f7afebf8 walk: introduce match objects 2008-05-12 11:37:07 -05:00
Matt Mackall
fd009cd512 walk: kill util.cmdmatcher and _matcher 2008-05-12 11:37:07 -05:00
Alexis S. L. Carvalho
56a207a5a7 rename --after: do not unlink source file (issue910)
"rename --after a.txt A.txt" on case mangling systems (e.g. Windows)
erroneously deleted A.txt (even if modified).
2008-04-19 10:42:30 +02:00
Dirkjan Ochtman
06d8e99e57 remove trailing spaces 2008-04-16 12:09:16 +02:00
Patrick Mezard
e6d132922b cmdutil: handle and warn about missing copy revisions 2008-04-14 22:31:33 +02:00
Alexis S. L. Carvalho
6f8858904c Fix issue995 (copy --after and symlinks pointing to a directory)
I haven't looked at other places that call os.path.isdir to make
sure they're OK.
2008-03-14 10:32:19 -03:00
Joel Rosdahl
5dae3059a0 Expand import * to allow Pyflakes to find problems 2008-03-06 22:23:26 +01:00
Thomas Arendsen Hein
5727413b6a Move finding/checking the log limit to cmdutil 2008-02-29 01:51:23 +01:00
Alexis S. L. Carvalho
26b304926b cmdutil.walkchangerevs: use '-1:0' instead ot 'tip:0'
This avoids a possibly expensive tag lookup.
2008-02-19 19:20:10 -03:00
Thomas Arendsen Hein
a1c1677af4 Fix bad behaviour when specifying an invalid date (issue700)
commit (aborts _after_ typing in a commit message)
backout (aborted after the initial revert)
tag (edited .hgtags and couldn't commit)
import (patch applied, then commit fails)
qnew (aborts on bad dates, but writes any valid date into the # Date header)
qrefresh (like qnew)
sign (like tag)
fetch (merge, merge, merge, merge, abort)
2008-02-17 21:34:28 +01:00
Alexis S. L. Carvalho
d3f4694609 cmdutil.commit: use relative paths in the error messages
This is more consistent with other error messages and requires
less makeup in test-commit and test-symlink-basic.
2008-02-15 10:38:37 -02:00
Matt Mackall
41e5c79455 templates: move filters to their own module
This eliminates just about all Mercurial dependencies in templater.py
2008-01-31 14:44:19 -06:00
Christian Ebert
5c18a69d2e Prefer i in d over d.has_key(i) 2008-01-20 14:39:25 +01:00
Shun-ichi GOTO
188e44cf4b Add endswithsep() and use it instead of using os.sep and os.altsep directly.
This change is intended to allow hooking endswithsep() by win32mbcs
extension for MBCS support.
2008-01-09 21:30:35 +09:00