Commit Graph

2974 Commits

Author SHA1 Message Date
Matt Mackall
dd38b9f308 dirstate: make reload lazy 2007-06-18 13:24:33 -05:00
Matt Mackall
6a2d255741 dirstate: lazify initdirs 2007-06-18 13:24:33 -05:00
Matt Mackall
bb39ad22fb dirstate: lazify copymap, _branch, and _pl 2007-06-18 13:24:33 -05:00
Matt Mackall
3da450bd87 dirstate: use getattr rather than lazyread 2007-06-18 13:24:33 -05:00
Brendan Cully
b6d2fc3ac4 Notify the user that hg branch does not create a branch until commit 2007-06-18 10:44:43 -07:00
Patrick Mezard
d37b2026d5 cmdutil: add missing "time" import. 2007-06-17 20:35:32 +02:00
Thomas Arendsen Hein
1bdf3feac6 Make --import-branch option actually work (- is translated to _) 2007-06-17 14:11:30 +02:00
Eric Hopper
4e64ad3b5a Add --import-branch option to hg import to pull in branch information without --exact 2007-06-14 09:01:51 -07:00
Brendan Cully
228060290f Make parents with a file but not a revision use working directory revision. 2007-06-14 10:58:49 -07:00
Thomas Arendsen Hein
75327fd456 merge with main 2007-06-14 11:33:32 +02:00
Brendan Cully
5686dde045 Merge with crew 2007-06-13 19:11:20 -07:00
Brendan Cully
9b610cb44c extensions: fix load of module/__init__.py on OS X 2007-06-13 19:05:20 -07:00
Alexis S. L. Carvalho
574b7631bc localrepo.status: only append stuff to the clean list if list_clean is true
This is consistent with dirstate.status.
2007-06-13 21:39:45 -03:00
Alexis S. L. Carvalho
2a15874eb2 commands.remove: don't use the unknown list 2007-06-13 19:15:58 -03:00
Alexis S. L. Carvalho
f5f49df61e commands.commit: don't use the unknown list 2007-06-13 19:15:58 -03:00
Alexis S. L. Carvalho
00cc2c2d06 localrepo.add: avoid some stats
There's still an extra lstat done by dirstate.update.
2007-06-13 19:15:58 -03:00
Alexis S. L. Carvalho
12900975cc revert: use util.lexists 2007-06-13 19:15:58 -03:00
Alexis S. L. Carvalho
8b373440d8 addremove: use util.lexists 2007-06-13 19:15:58 -03:00
Alexis S. L. Carvalho
587c06ebc5 commands.commit: symlinks are supported 2007-06-13 19:15:58 -03:00
Brendan Cully
e96607cf35 extensions: load modules in module/__init__.py form.
For example, convert=/path/to/convert now works.
2007-06-13 13:46:40 -07:00
Matt Mackall
123d0f2541 extensions: fix lookup of hgext.foo modules 2007-06-13 13:15:53 -05:00
Matt Mackall
a4399f5062 localrepo: demand-load changeset, manifest, and dirstate 2007-06-13 13:15:51 -05:00
Brendan Cully
d9c890b630 Make parents with a file but not a revision use working directory revision. 2007-06-14 10:58:49 -07:00
Brendan Cully
37671e0260 dispatch: restore a dropped shlex import
Add test-dispatch as a place for command parsing and dispatch tests.
2007-06-12 13:21:42 -07:00
Thomas Arendsen Hein
03a476e13f merge with main 2007-06-12 18:55:47 +02:00
Thomas Arendsen Hein
635f47fb1d Revive commands.dispatch as a simple way to call hg from other pythons scripts.
This was already used by hg-ssh and others and is really convenient if you
just want a native equivalent of calling the command line version.
2007-06-12 17:39:57 +02:00
Matt Mackall
42349e08dc extensions: add missing sys import 2007-06-12 10:34:54 -05:00
Matt Mackall
7092619ffc dispatch: accept an abbreviation of --repository 2007-06-11 21:09:24 -05:00
Matt Mackall
ca982cdfb5 dispatch: move findrepo to cmdutil 2007-06-11 21:09:24 -05:00
Matt Mackall
dc4befe753 localrepo: don't search from path
All current callers already pass in the repo root.

This normalizes things a bit. Now all repo types take a direct path to
repo root and only the command line interface (or the dispatcher)
searches from the current directory.
2007-06-11 21:09:24 -05:00
Matt Mackall
1621c30af5 dispatch: use the repo path found by early parsing
This lets us simplify things a bit.
2007-06-11 21:09:24 -05:00
Matt Mackall
b37003d1a6 dispatch: parse and apply -R early
This allows us to use extensions specified in .hg/hgrc. Unfortunately,
this requires us to parse that file twice, but performance impact on
the version command appears to be less than 1%.
2007-06-11 21:09:24 -05:00
Matt Mackall
a0218b2be7 dispatch: parse and apply cwd opt early 2007-06-11 21:09:24 -05:00
Matt Mackall
eec35bbc8f dispatch: rename variables after code motion 2007-06-11 21:09:24 -05:00
Matt Mackall
671f8a455f dispatch: hoist debugging hook to runcatch 2007-06-11 21:09:24 -05:00
Matt Mackall
7daba33088 dispatch: move dispatching code to cmdutil 2007-06-11 21:09:24 -05:00
Matt Mackall
fc13f3eb60 dispatch: move runcommand to cmdutil 2007-06-11 21:09:24 -05:00
Matt Mackall
fe0bc5497b dispatch: pull final command execution into its own function 2007-06-11 21:09:24 -05:00
Matt Mackall
9ddb5e812f dispatch: reduce nesting by moving parsing exceptions 2007-06-11 21:09:23 -05:00
Matt Mackall
904b4d70df dispatch: move signal and exception handling to its own function 2007-06-11 21:09:23 -05:00
Matt Mackall
67bd5873db Create a separate module for managing extensions 2007-06-11 21:09:23 -05:00
Matt Mackall
cb98d050d6 extensions: separate function for loading single extensions 2007-06-11 21:09:23 -05:00
Matt Mackall
5e5d2fc9f8 dispatch: reorder functions 2007-06-11 21:09:23 -05:00
Matt Mackall
d157dd7e9f localrepo: break out the repo-finding walk into its own function 2007-06-11 21:09:23 -05:00
Brendan Cully
497f138a19 Respect locale environment variables on darwin.
In python 2.4+ on darwin, locale.getpreferredencoding() returns
mac-roman regardless of what LC_CTYPE, LANG etc are set to. This can
produce hard-to-notice conversion errors if input text is not in
mac-roman. So this patch overrides it with setlocale/getlocale if the
environment has been customized, on the assumption that the user has
done so deliberately.
2007-06-11 12:14:31 -07:00
Brendan Cully
73b9a0fd82 Small cleanups for the new tag code 2007-06-11 11:06:42 -07:00
Alexis S. L. Carvalho
0e52789888 wsgicgi: change stdin to binary mode 2007-06-04 00:24:48 -03:00
Alexis S. L. Carvalho
f0513bf1bb Also check the index file size when deciding whether to reload a revlog.
This should fix some spurious failures from test-clone-pull-corruption
(issue552).
2007-06-04 00:24:48 -03:00
Alexis S. L. Carvalho
dd4d403b90 use .extend instead of .append in readtags 2007-06-04 00:24:48 -03:00
Josef "Jeff" Sipek
066eaf6a84 gitweb: Display branch and tag labels
Pages which display labels:
- summary
- shortlog
- changelog
- changeset
- search
2007-06-01 19:56:39 -04:00
Matt Mackall
ac962c3cef commit: fix bug where dirstate for removed file is confused
This fixes issue586
2007-06-10 21:16:58 -05:00
Matt Mackall
934033161c hg serve: don't lookup user-supplied names/addresses 2007-06-10 19:16:20 -05:00
Thomas Arendsen Hein
7a4d62e035 Removed trailing \n in calls to util.Abort() 2007-06-09 13:25:54 +02:00
Alexis S. L. Carvalho
50d5690f2a Avoid extra filelogs entries.
Right now, there are some situations in which localrepo.filecommit can
create filelog entries even though they're not needed.  For example:

- permissions for a file have changed;

- qrefresh can create a filelog entry identical to its parent (see the
  added test);

- convert-repo creates extra filelog entries in every merge where the
  first parent has added files (for example, changeset ebebe9577a1a of
  the kernel repo added extra filelog entries to files in the
  arch/blackfin directory, even though the merge should only touch the
  drivers/ata directory).  This makes "hg log file" in a converted repo
  less useful than it could be, since it may mention many merges that
  don't actually touch that specific file.

They all come from the same basic problem:  localrepo.commit (through
filecommit) creates new filelog entries for all files passed to it
(except for some cases during a merge).

Patch and test case provided by Benoit.

This should fix issue351.
2007-06-09 01:04:28 -03:00
Alexis S. L. Carvalho
a8f5faee29 Make sure the changelog mentions files whose flags changed
These changes don't actually need a new filelog entry (see next patch),
but if we don't mention the files in the changelog, it becomes much
harder to find all changesets that touch a file (not even a
"hg log --removed file" will work).
2007-06-09 01:04:28 -03:00
Alexis S. L. Carvalho
af3964b248 Add ui.slash hgrc setting
This will make most commands print paths using "/", regardless of
the value of os.sep.
2007-06-08 23:49:12 -03:00
Alexis S. L. Carvalho
7ca05536b5 docopy: use repo.pathto to format paths for printing 2007-06-08 23:49:12 -03:00
Alexis S. L. Carvalho
e1bf8e80c5 Add dirstate.pathto and localrepo.pathto.
Every time util.pathto is called, we have to pass the repo root and the
repo cwd.

dirstate.pathto is a simple convenience function that knows about the
root and the cwd arguments.  It's still possible to pass the cwd as an
optimization.

localrepo.pathto is a convenience function that just calls
dirstate.pathto, just like localrepo.getcwd.

dirstate.pathto becomes a single point that converts most (all?) paths
from the internal representation to some OS-specific relative path for
display purposes.
2007-06-08 23:49:12 -03:00
Alexis S. L. Carvalho
12e1854b67 Use absolute paths in revert. 2007-06-08 23:49:12 -03:00
Alexis S. L. Carvalho
0d958ed072 Use absolute paths in docopy. 2007-06-08 23:49:12 -03:00
Alexis S. L. Carvalho
4949bc9033 Use absolute paths in addremove.
This is more consistent with other places in the code, which only use
the "relpath" returned by cmdutil.walk for display purposes.
2007-06-08 23:49:12 -03:00
Patrick Mezard
a55efff966 ui: make readsections() abort when configuration cannot be read. 2007-06-03 22:11:25 +02:00
Thomas Arendsen Hein
49220695bc Removed trailing whitespace and tabs from python files 2007-06-06 20:22:52 +02:00
Thomas Arendsen Hein
cf1ee4e625 Issue a warning if "-r ." is used with two working directory parents.
Rationale for not aborting instead:
The first parent is usually more important as it is the local branch
during a merge and commands like 'hg diff' and 'hg diff -r.' behave still
identically (except for the warning of course).

Added a test for log -r. with one and two parents.
2007-06-06 19:05:18 +02:00
Alexis S. L. Carvalho
54dcd12c54 Remove atomicfile class.
The interface provided by opener(atomic=True) is inherently unsafe:
if an exception is raised in the code using the atomic file, the
possibly incomplete file will be renamed to its final destination,
defeating the whole purpose of atomic files.

To get around this, we would either need some bad hacks involving
sys.exc_info (to make sure things work in except: blocks), or an
interface to say "file is complete; rename it".

This is the exact interface provided by atomictempfile.  Since there
are no remaining users of the atomicfile class, just remove it.
2007-06-05 19:55:27 -03:00
Alexis S. L. Carvalho
b53e571f31 Use atomictemp files to write the dirstate.
atomic files are not safe in all cases.
2007-06-05 19:55:27 -03:00
Joel Rosdahl
27bc08a3cc Fix bug in "hg serve -v" 2007-06-04 21:49:01 +02:00
Alexis S. L. Carvalho
ae21f631dc merge with crew-stable 2007-06-04 00:26:53 -03:00
Alexis S. L. Carvalho
976e7af22b patch.diff: avoid calling workingctx().manifest()
Right now, to generate the manifest of the working dir, we have to
perform a full walk of the working dir, which will be very slow,
especially if we're interested in only a small part of it.

Since we use the manifest only to find out the mode of files for git
patches, manually build an execf function to do it.

This should fix issue567.
2007-06-03 14:38:52 -03:00
Bryan O'Sullivan
747ba13e75 Merge with crew. 2007-06-02 09:04:23 -07:00
Matt Mackall
41d9aaebb8 Add support for url#id syntax
This allows you to do:

 hg clone http://server/repo#stable

which is equivalent to:

 hg clone -r stable http://server/repo

Future incoming, outgoing, and push commands will default to using
this id because it's recorded in the default path.

Other commands that accept URLs (push, pull, bundle, incoming, and
outgoing) also accept this syntax.
2007-06-01 18:40:14 -05:00
Matt Mackall
aa00d22e56 clone: checkout the "default" branch if available 2007-06-01 18:52:18 -05:00
Matt Mackall
3959b588cd Warn about large files on hg add 2007-06-01 14:07:42 -05:00
Thomas Arendsen Hein
2366afd684 merge with stable 2007-06-01 19:49:09 +02:00
Thomas Arendsen Hein
3c2ee08111 Make "hg incoming -r revision_number" work for remote repos (issue566)
Uses the remote repository's lookup method as pull does and only transfers
what is needed to calculate incoming changesets.

One minor problem:
As only the needed changesets are transfered and stored in a local bundle
repository, the tip tag of this bundle is shows despite not being the tip
changeset of the remote repository.
(see "+tag: tip" in tests/test-incoming-outgoing.out in this patch)
2007-06-01 19:45:05 +02:00
Thomas Arendsen Hein
128193f3e9 addremove: comparing two empty files caused ZeroDivisionError
(found by Giorgos Keramidas)
2007-06-01 16:00:40 +02:00
Josef "Jeff" Sipek
77b18ca042 gitweb: Fixed-up search template
It seems that the search template has been forgoten over time, and needed
major revamping.
2007-05-31 20:12:40 -04:00
Thomas Arendsen Hein
3005b8655d hgweb: use generator to count parity of horizontal stripes for easier reading.
- use web.stripes in all places and consistently
- start with parity0 for lists generated in reverse (e.g. changelog)
2007-05-29 16:42:05 +02:00
Josef "Jeff" Sipek
0e1bc7bd9a hgweb: manifest: pass parity for the '[up]' link 2007-05-29 05:08:01 -04:00
Bryan O'Sullivan
4eff752451 Automated merge with http://hg.intevation.org/mercurial/crew 2007-05-27 14:43:29 -07:00
Bryan O'Sullivan
37507376a2 patchbomb: Validate email config before we start prompting for info. 2007-05-27 14:40:14 -07:00
Bryan O'Sullivan
d67a234671 Introduce find_exe. Use instead of find_in_path for programs.
The behaviour of find_in_path was broken for config options containing
path names, because it always searched the given path, even when not
necessary.  The find_exe function is more polite: if the name passed
to it contains a path component, it just returns it.
2007-05-27 14:26:54 -07:00
Bryan O'Sullivan
ebb57c99be ui: Rename has_config to has_section. 2007-05-27 13:50:59 -07:00
Patrick Mezard
6db235d2bb Fix issue 562: .hgignore requires newline at end.
End-of-lines characters where discarded without any check for existence.
2007-05-19 22:47:01 +02:00
Daniel Holth
5faf58b019 accept -r REV in more places
Commands affected:
* update
* merge
* backout
2007-05-17 13:55:24 -04:00
Eric Hopper
ba811c3509 Fix hg import --exact bug that hangs hg on failure. 2007-05-17 09:29:30 -07:00
Patrick Mezard
0bf2bda86a Merge with crew-stable. 2007-05-19 22:51:43 +02:00
Eric Hopper
04bb1c642e Make hg import --exact work when a new branch is created by an import. 2007-05-17 20:09:52 -07:00
Eric Hopper
9da473c4e8 Add ability to parse branch information to hg import 2007-05-17 20:09:47 -07:00
Eric Hopper
119a887cdc Add branch information to hg export. 2007-05-10 13:42:36 -07:00
Patrick Mezard
3e2c29954d Add ui.patch option.
ui.patch overrides the default patch/gpatch command and options.
2007-05-12 21:09:31 +02:00
Patrick Mezard
37afbaec09 Fix issue483 - mq does not work under windows with gnu-win32 patch.
Add --binary option to patch command under win32.
2007-05-12 21:09:29 +02:00
Matt Mackall
6bf7f7256d merge: fix spurious merges for copies in linear updates
We make better use of contexts to accurately identify copies that
don't need merges.

Add a simple test and update other tests.
2007-05-08 02:59:13 -05:00
Matt Mackall
8c51ae9f74 branch.cache: silently ignore I/O and OS errors 2007-05-08 02:57:05 -05:00
Matt Mackall
d4deb74aa1 context: fix workingfilectx._changectx 2007-05-07 22:30:36 -05:00
Matt Mackall
5fa7270b2d Merge with stable 2007-05-08 11:42:48 -05:00
Brendan Cully
fb4b5549c3 Add fast-forward branch merging 2007-05-06 20:27:45 -07:00
Patrick Mezard
b4ca391b19 Move win32 find_in_files from util_win32 to util. 2007-05-06 16:40:53 +02:00
Matt Mackall
5290628c48 Merge with stable 2007-05-03 17:27:21 -05:00
Matt Mackall
32c298df8a merge: reorganize some hunks in findcopies 2007-05-03 17:24:43 -05:00