Commit Graph

3392 Commits

Author SHA1 Message Date
Matt Mackall
35c14c89a6 revlog: change _inline from a function to a variable 2007-07-23 20:44:08 -05:00
Matt Mackall
b51cdea681 revlog: simplify addrevision
- remove unused defaults for p1, p2, and text
- reduce some if/else
- use better variable names
- remove some extra variables
- remove some obsolete corner tests
- simply first entry handling for revlogng
- simply inline vs outofline writeout
2007-07-23 20:44:08 -05:00
Matt Mackall
0ab56eac5f revlog: some codingstyle cleanups 2007-07-23 20:44:08 -05:00
Matt Mackall
2cb4c11520 revlog: add a magic null revision to our index
We expand our index by one entry so that index[nullrev] points to a
unique entry, the null revision. This naturally eliminates numerous
extra tests in the performance-sensitive index access functions, most
of which are now trivial again.

Adding new entries is now done with insert(-1, e) rather than
append(e).
2007-07-23 20:44:08 -05:00
Matt Mackall
f03d3e07aa revlog: change accesses to index entry elements to use positive offsets 2007-07-23 20:44:08 -05:00
Matt Mackall
04b4378f47 revlog: parse revlogv0 indexes into v1 internally
This lets us eliminate lots of special case code in our
performance-sensitive index accessors.
2007-07-23 20:44:08 -05:00
Matt Mackall
70e7477200 revlog: only allow lazy parsing with revlogng files
This will allow us to store indices in memory in a single entry format
2007-07-23 20:44:08 -05:00
Matt Mackall
214f50b511 revlog: simplify the v1 immediate parser
- read all the data at once (large files are handled by the lazy parser)
- cache the entire file for inline revlogs
- simplify looping
2007-07-23 20:44:08 -05:00
Matt Mackall
3b9167f022 revlog: set the threshold for lazy parsing higher
A typical machine can parse a 1MB index in well under a second
2007-07-23 20:44:08 -05:00
Matt Mackall
1889aee8b0 revlog: simplify the v0 parser 2007-07-23 20:44:07 -05:00
Matt Mackall
e7ef5dc500 revlog: add revlogio interface
This lets us separate the logic for different on-disk revlog formats from
the main revlog logic.
2007-07-23 20:44:07 -05:00
Matt Mackall
2158f34c5f revlog: regroup parsing code 2007-07-23 20:44:07 -05:00
Matt Mackall
3dfe783ec5 transactions: avoid late tear-down (issue641)
We use weak references (ugh) to avoid having to manually delete
transaction references out of each call frame when an exception occurs.
2007-07-22 14:53:57 -05:00
Thomas Arendsen Hein
b35814d4c2 merge with crew-stable 2007-07-22 09:45:18 +02:00
Bryan O'Sullivan
a09e8936ae addremove: print meaningful error message if --similar not numeric 2007-07-21 19:07:18 -07:00
Matt Mackall
cd72dc7f1b Merge with crew 2007-07-21 16:44:38 -05:00
Matt Mackall
d5b7eaa69a revlog: privatize some methods 2007-07-21 16:18:42 -05:00
Matt Mackall
0e54e000c1 revlog: delete unused function makenode 2007-07-21 16:18:24 -05:00
Matt Mackall
9eea27ad83 revlog: raise offset/type helpers to global scope 2007-07-21 16:18:21 -05:00
Matt Mackall
3a3bd8ec5b Make repo locks recursive, eliminate all passing of lock/wlock 2007-07-21 16:02:10 -05:00
Matt Mackall
3fdaa5a42e Use a weakref for recursive transactions 2007-07-21 16:02:10 -05:00
Matt Mackall
3e13c68628 Use try/finally pattern to cleanup locks and transactions 2007-07-21 16:02:10 -05:00
Matt Mackall
5a93a0feb4 repo locks: use True/False 2007-07-21 16:02:09 -05:00
Matt Mackall
ce5b3192db rename and simplify do_lock 2007-07-21 16:02:09 -05:00
Matt Mackall
7cdcc1b36f simplify dirstate fixups in repo.status() 2007-07-21 16:02:09 -05:00
Matt Mackall
450dc6247d dirstate: add doesn't need to call stat 2007-07-21 16:02:09 -05:00
Matt Mackall
60107c9e5e use context for part of localrepo status 2007-07-21 16:02:09 -05:00
Matt Mackall
410e8d67c6 context: add __contains__, __getitem__, and __iter__ 2007-07-21 16:02:09 -05:00
Matt Mackall
81e9f172fb dirstate: get rid of default args for status 2007-07-21 16:02:09 -05:00
Matt Mackall
43547721ea dirstate: make filterfiles private 2007-07-21 16:02:09 -05:00
Matt Mackall
c2967290a5 dirstate: add __contains__ and make __getitem__ more useful
dirstate.state(f) == '?' -> f not in dirstate
dirstate.state(f) -> dirstate[f]
2007-07-21 16:02:09 -05:00
Matt Mackall
bab511ec55 dirstate: make wjoin function private 2007-07-21 16:02:09 -05:00
Matt Mackall
cf691df912 dirstate: break update into separate functions 2007-07-21 16:02:09 -05:00
Matt Mackall
1a40b796d1 dirstate: use True and false for _dirty 2007-07-21 16:02:09 -05:00
Thomas Arendsen Hein
a974129de3 merge with crew-stable 2007-07-21 17:37:39 +02:00
Thomas Arendsen Hein
dbdc09ab03 Make [defaults] in .hg/hgrc work. 2007-07-21 17:36:45 +02:00
Thomas Arendsen Hein
def3b1c2ba Use format string for lockname again (was changed by cb157328a155) 2007-07-21 10:39:42 +02:00
Thomas Arendsen Hein
d9d3256252 removed trailing whitespace 2007-07-21 10:30:51 +02:00
Benoit Boissinot
8c722d66b2 fix bogus close spotted by pychecker (no close() in global scope) 2007-07-20 09:44:50 +02:00
Benoit Boissinot
84d45c7794 fix unused variables reported by pychecker 2007-07-20 09:31:32 +02:00
Alexis S. L. Carvalho
afb05aff16 dirstate.invalidate: avoid rebuilding _map
Since hasattr will call __getattr__, the call to hasattr(self, '_dirs')
will end up reparsing the dirstate file.
2007-07-19 19:43:25 -03:00
Alexis S. L. Carvalho
534a817230 add dirstate._dirtypl variable
Theoretically, it's possible to forget modified dirstate
parents by doing:

dirstate.invalidate()
dirstate.setparents(p1, p2)
dirstate._map

The final access to _map should call _read(), which will
unconditionally overwrite dirstate._pl.

This doesn't actually happen right now because invalidate
accidentally ends up rebuilding dirstate._map.
2007-07-19 19:43:25 -03:00
Alexis S. L. Carvalho
563893de20 archive: delay extraction of file revisions
This allows us to look only at the filelogs we're interested in,
providing a nice speedup if we're archiving only part of a repository.
2007-07-19 19:43:25 -03:00
Alexis S. L. Carvalho
e0b6efcdbf help: avoid traceback if an extension has only debug commands 2007-07-19 19:43:25 -03:00
Alexis S. L. Carvalho
a8e3b41c40 merge with crew-stable 2007-07-19 19:48:24 -03:00
Bryan O'Sullivan
a7c1cdf4bc Print meaningful error message if os.symlink fails 2007-07-19 15:29:33 -07:00
Bryan O'Sullivan
cd2a579d50 lock.py: cache hostname, but not pid, in case we fork 2007-07-19 15:13:48 -07:00
Bryan O'Sullivan
8d0f81f7cc Simplify update. 2007-07-18 14:00:55 -07:00
Bryan O'Sullivan
5930d0695b Simplify update. 2007-07-18 14:00:55 -07:00
Bryan O'Sullivan
f645e069a4 Better fix for issue 622 than we had in 287a2fbd37b0. 2007-07-18 13:56:08 -07:00
Bryan O'Sullivan
261434d5a1 Better fix for issue 622 than we had in 287a2fbd37b0. 2007-07-18 13:56:08 -07:00
Patrick Mezard
dd336a8d1a patch: patches should be read and written in binary mode when possible. 2007-07-17 23:35:24 +02:00
Patrick Mezard
ccc14e4990 patch: fix normalized paths separators. 2007-07-17 23:34:52 +02:00
Patrick Mezard
4a8150bcb8 posixfile_nt: '+' was understood as read mode instead of update. 2007-07-17 23:33:42 +02:00
Patrick Mezard
3979bd753f posixfile_nt: '+' was understood as read mode instead of update. 2007-07-17 23:33:42 +02:00
Bryan O'Sullivan
6c741e45c0 patch.py: re-add the ability to use an external patch program
This is now invoked by default only if ui.patch is set.  Otherwise, we
use our built-in patch.  If that fails because it can't find any valid
hunks, we'll fall back to trying the external patch command.
2007-07-17 09:39:30 -07:00
Bryan O'Sullivan
78c5b7bde0 patch.py: don't mark files as changed unless they have actually been changed 2007-07-17 09:39:30 -07:00
Bryan O'Sullivan
691d74d7d4 patch.py: fix some incorrect uses of _() for i18n 2007-07-17 09:39:30 -07:00
Bryan O'Sullivan
590b9213d3 Add Chris Mason's mpatch library.
The original repo is http://oss.oracle.com/mercurial/mason/mpatch
2007-07-17 09:39:30 -07:00
Alexis S. L. Carvalho
ae58d97874 merge with crew-stable 2007-07-17 09:28:01 -03:00
Alexis S. L. Carvalho
4770c831b2 hg parents: don't pass an OS-specific path to repo.filectx
The only reason to use the matcher code instead of calling util.canonpath
directly is to be able to use "path:canonical/path/to/file" patterns.
2007-07-17 09:08:29 -03:00
Thomas Arendsen Hein
26fba570c8 merge with main 2007-07-17 08:22:43 +02:00
Bryan O'Sullivan
c824069322 tag: handle .hgtags and .hg/localtags with missing final newline (issue 601)
This also fixes an asymmetry bug in which we called the pretag hook if we
were going to create a local tag, but didn't call the tag hook afterwards.
2007-07-16 20:15:03 -07:00
Bryan O'Sullivan
39c3672fd0 tag: handle .hgtags and .hg/localtags with missing final newline (issue 601)
This also fixes an asymmetry bug in which we called the pretag hook if we
were going to create a local tag, but didn't call the tag hook afterwards.
2007-07-16 20:15:03 -07:00
Bryan O'Sullivan
e2e04c39f7 issue 622: pull/unbundle -u updates to default branch if repo was empty 2007-07-16 18:01:20 -07:00
Bryan O'Sullivan
ef448328f7 issue 622: pull/unbundle -u updates to default branch if repo was empty 2007-07-16 18:01:20 -07:00
Matt Mackall
642976187f contexts: improve filectx eq test 2007-07-16 17:39:03 -05:00
Matt Mackall
90ef8d6105 Merge with -stable 2007-07-16 17:30:34 -05:00
Matt Mackall
1e9e9e4cdd merge: fix unnecessary rename merges on linear update (issue631)
If one side's revision is identical to the ancestor, we skip the rest
of the copy detection logic.
2007-07-15 14:43:38 -05:00
Matt Mackall
86ab3ea033 Merge with -stable 2007-07-14 13:34:40 -05:00
Matt Mackall
6a7cb8cbaa diff: correctly handle combinations of whitespace options 2007-07-14 12:44:47 -05:00
Jesse Glick
5b3c852e55 typo fix 2007-07-12 10:55:49 -04:00
Brendan Cully
d4bd9b2ed8 replace .hgtags instead of appending to it when doing a raw commit 2007-07-11 00:53:44 -07:00
Brendan Cully
cd14b55f6f handle nonexistent .hgtags in raw _tag 2007-07-11 00:34:35 -07:00
Brendan Cully
5c862af489 archive: abort on empty repository. Fixes #624. 2007-07-10 10:06:24 -07:00
Giorgos Keramidas
827573f6ad hg grep: handle re.compile errors & update tests/test-grep 2007-07-09 17:41:14 +03:00
Alexis S. L. Carvalho
e4f786c463 archive: make the %r escape work. 2007-07-11 19:56:16 -03:00
Alexis S. L. Carvalho
3b07689b6a serve: respect settings from .hg/hgrc
create_server was looking only at the root ui object, ignoring any
settings from .hg/hgrc.  To keep respecting command-line arguments,
commands.serve must also call repo.ui.setconfig.
2007-07-11 19:56:16 -03:00
Christian Ebert
7a47878736 Use isinstance instead of type == type 2007-07-06 12:02:43 +02:00
Wesley J. Landaker
49f06e37cf Use wsgi.url_scheme instead of ad-hoc CGI checks.
Instead of each place in hgweb_mod that needs to check for SSL or get
the protocol scheme (http vs. https) doing it ad-hoc, make them just
look at the wsgi.url_scheme which because of previous patches is now
always set correctly.
2007-07-12 22:55:44 -07:00
Brendan Cully
a0b3ae0fbb cosmetics 2007-07-12 22:44:16 -07:00
Wesley J. Landaker
90ae651c49 Make hg serve set the wsgi.url_scheme property correctly.
This fixes the bug where hg serve with SSL will always detect the wrong
urlbase for templates. This is also part of unifying the CGI interface
and hg serve interface to both use standard wsgi.
2007-07-12 13:58:36 -06:00
Wesley J. Landaker
feb6c32251 Handle CGI SSL detection via HTTPS environment better.
Some servers send on/off, 0/1, yes/no, and may be upper or lower case.
This fix will handle all of those permutations. It was inspired by the
detection done in in some other wsgi python web applications I looked at.
2007-07-12 13:55:20 -06:00
Alexis S. L. Carvalho
05dd580e30 merge with crew-stable 2007-07-11 20:15:03 -03:00
Wesley J. Landaker
034dcaed92 Make {urlbase} work in templates when https is used. 2007-07-10 10:54:54 -06:00
Brendan Cully
cd69031532 replace .hgtags instead of appending to it when doing a raw commit 2007-07-11 00:53:44 -07:00
Brendan Cully
c685e57a99 handle nonexistent .hgtags in raw _tag 2007-07-11 00:34:35 -07:00
Brendan Cully
7530fee196 Export extra in _tag so convert can set the branch of a tag 2007-07-11 00:04:15 -07:00
Brendan Cully
5421e55633 archive: abort on empty repository. Fixes #624. 2007-07-10 10:06:24 -07:00
Brendan Cully
4654693aa4 Add SSL support to hg serve, activated via --certificate option 2007-07-09 22:12:28 -07:00
Thomas Arendsen Hein
5a9970a155 Add --line-number option to hg annotate (issue506)
Line numbers are separated from the last annotation element with a colon,
like with many other commands, e.g. (hg) grep or compiler errors.

Idea and tests by FUJIWARA Katsunori.
2007-07-08 19:59:02 +02:00
FUJIWARA Katsunori
03774e057f Allow filectx.annotate to return the line number of first appearance. 2007-07-08 19:46:04 +02:00
Thomas Arendsen Hein
a5d49326c9 merge with crew-stable 2007-07-08 12:59:58 +02:00
Thomas Arendsen Hein
898f48cc24 hg log: Move filtering implicit parents to own method and use it in templater.
Extended test repo in test-command-template to contain changeset to test this.
2007-07-08 12:52:08 +02:00
Thomas Arendsen Hein
a0ef6536ad Strip whitespace from changeset description in changeset_templater.
changeset_printer already does this, too.
2007-07-08 10:43:57 +02:00
Thomas Arendsen Hein
d486a44410 Removed deprecated hg:// and old-http:// protocols (issue406) 2007-07-08 09:54:42 +02:00
Brendan Cully
d2d845d908 hgwebdir: check for repo foo before browsing subdirectories of foo/ 2007-07-07 21:55:56 -07:00
Brendan Cully
61aceec68e Merge with crew 2007-07-07 15:09:28 -07:00
Brendan Cully
5d30097ec4 hgweb: browse subdirectories before checking whether parent directory is also a repository 2007-07-07 15:09:08 -07:00
Thomas Arendsen Hein
78616ff36e Use a prefix for debuginstall tempfiles.
This way you know where the files came from if they don't get removed.
2007-07-07 20:52:31 +02:00
Brendan Cully
864d59c393 python 2.3 does not have sorted 2007-07-06 10:29:09 -07:00
Brendan Cully
ee78cfbb39 Sort changelog extra dict to avoid possible nondeterminism 2007-07-06 10:22:22 -07:00
Brendan Cully
4750025032 Last change broke new-style URLs 2007-07-06 10:11:48 -07:00
Brendan Cully
d31b7d1fa4 hgwebdir: do not walk up the given path looking for a repository. It is there or it isn't. 2007-07-06 09:15:17 -07:00
Brendan Cully
2216ff4225 hgwebdir: show only trailing part of path when browsing subdirectories 2007-07-05 19:56:16 -07:00
Brendan Cully
10f4d33bdf hgweb: let hgwebdir browse subdirectories 2007-07-05 19:44:06 -07:00
Matt Mackall
e3e7be0bf0 Merge with stable 2007-07-05 16:17:01 -05:00
Matt Mackall
aa6e63596e Merge with crew-stable 2007-07-05 16:15:57 -05:00
Matt Mackall
d00f8a1d6c merge: fix adding untracked files on directory rename (issue612)
Fix from Brendan
Added test case
2007-07-05 16:01:07 -05:00
Matt Mackall
dc9134201b extensions: untangle some recursive dependencies 2007-07-05 15:37:23 -05:00
Matt Mackall
cfe7a0a522 merge: make test for fast-forward merge stricter (issue619)
don't allow merging with an ancestor
fix != on contexts
add a test
2007-07-05 13:34:18 -05:00
Patrick Mezard
cd13d33922 Fix issue589 wording problem 2007-07-05 19:13:08 +02:00
Thomas Arendsen Hein
d01208a3d1 Fixed calling the merge script and reporting errors in debuginstall (issue617) 2007-07-04 09:20:56 +02:00
Thomas Arendsen Hein
2501b7aeac Fix revlog.children so the real children of the null revision can be calculated. 2007-07-03 12:45:33 +02:00
Alexis S. L. Carvalho
f9b8c79d22 hgweb: use lrwxrwxrwx as the permissions of a symlink 2007-07-03 03:06:40 -03:00
Alexis S. L. Carvalho
8c2c88e404 Make hg add foo; hg mv foo bar work.
- foo will be removed (the user has a copy of its contents in bar)

- bar will not be marked as a copy (there was no committed version of foo).
  We print a warning telling that to the user.

Fixes issue269.
2007-07-03 03:06:40 -03:00
Thomas Arendsen Hein
12ab0bc744 Added full URL to debug output if something doesn't look like an http hg repo.
This way it is easier to debug problems with failing subcommands, like
changegroupsubset due to permission problems, when generally accessing
the repository works fine.
2007-06-29 11:13:36 +02:00
Brendan Cully
b1034db3e9 Handle extensions with defined but empty cmdtable 2007-06-28 21:16:25 -07:00
Thomas Arendsen Hein
4784c1900b Abort if earlygetopt fails to detect an option.
Otherwise it could happen that a command is used on the wrong repository,
because abbreviations of --cwd or --repository were ignored.
2007-06-28 16:03:45 +02:00
Thomas Arendsen Hein
780c8f7779 Simplified earlygetopt and made it remove parsed options and values.
The order of aliases is no longer important, too.
2007-06-28 15:56:25 +02:00
Matt Mackall
424fd43f0f Merge with stable 2007-07-05 15:36:56 -05:00
Patrick Mezard
1b80abfc56 Merge with crew-stable 2007-07-05 20:50:24 +02:00
Thomas Arendsen Hein
33e8cbea79 merge with crew-stable 2007-07-04 09:24:19 +02:00
Thomas Arendsen Hein
cbfe4f2de9 merge with crew-stable 2007-07-03 12:46:34 +02:00
Alexis S. L. Carvalho
f6cedde7e0 merge with crew-stable 2007-07-03 03:14:18 -03:00
Brendan Cully
e8ad904a56 patch.extract: fix test-import breakage introduced in the previous changeset 2007-07-02 13:26:12 -07:00
Brendan Cully
099f763bc1 patch.extract: do not prepend subject if the description already starts with it 2007-07-02 10:59:16 -07:00
Thomas Arendsen Hein
e10fcd1450 Disallow short earlygetop option combined with other short options
While "hg commit -qRfoo" can be read as "--quiet --repository foo",
"hg commit -mRfoo" should be "--message Rfoo".
2007-06-27 20:37:33 +02:00
csaba.henk@creo.hu
b3d7f22dba Fix tgz archival on Windows.
Making tgz's on Windows has been broken by 4183b5f64f62
due to not being careful enough about binary mode opens.
2007-06-27 08:35:26 -07:00
Thomas Arendsen Hein
0b7147a667 Updated command tables in commands.py and hgext extensions.
- Marked for translation where extensions already had _()
- Corrected indentation
- fixed a few synopsises
2007-06-26 22:38:57 +02:00
Thomas Arendsen Hein
c6d47ef08c Catch illegal boolean values in hgrc nicely.
With hg 0.9.3 the section and parameter name wasn't printed,
with hg 0.9.4 there was a traceback for ValueError.
2007-06-26 20:37:15 +02:00
Thomas Arendsen Hein
1dcdb0a53a Fix earlygetop for short options with unnecessary spaces removed
Examples:
 hg log -qR foo
 hg log -Rfoo
 hg log -qRfoo
2007-06-26 18:35:31 +02:00
Nathan Jones
8fc48b4f99 Fix serve on Windows without win32* modules. 2007-06-26 10:48:58 -04:00
Thomas Arendsen Hein
5b3cfe2be9 Fix and test 'hg backout' without or with too many revisions. 2007-06-26 15:28:17 +02:00
Jean-Francois PIERONNE
7a71f63f2b OpenVMS patches 2007-06-08 16:24:43 +02:00
Matt Mackall
469dca271e backout: report short hash in commit message 2007-06-25 12:44:48 -05:00
Thomas Arendsen Hein
61d51838df New config option: ui.report_untrusted (defaults to True) 2007-06-25 22:41:15 +02:00
Thomas Arendsen Hein
05fbf9e284 Make earlygetopt return a list of all option values, use the last value.
This fixes:
"hg -R" showing a useful error instead of traceback
"hg -R foo --repository bar" using bar instead of foo

And provides a way for other users of earlygetopt to accept more than
one value.
2007-06-25 22:08:10 +02:00
Benoit Boissinot
4fdb840ede Make changeset_printer respect ui diffopts 2007-06-25 11:29:17 -07:00
Markus F.X.J. Oberhumer
974b7c5201 Add option "hidden" to hgwebdir.
TODO: should this option be renamed to 'hide_from_index' or
maybe to 'index_ignore' (like Apache's mod_autoindex) ?
2007-06-25 14:46:20 +02:00
Markus F.X.J. Oberhumer
84ffe403b9 Add support for RFC2822 to util.parsedate(). 2007-06-25 14:46:20 +02:00
Matt Mackall
9a11c35355 strip: move strip code to a new repair module 2007-06-25 01:26:44 -05:00
Giorgos Keramidas
5f8125a5a3 unbundle: accept multiple file arguments
update test-bundle for multiple unbundle support
2007-06-24 10:08:38 -05:00
Matt Mackall
9f3b2a8b06 cat: return an error on failure 2007-06-24 09:47:54 -05:00
paul sorenson
7f3fb6d66f Command in doc comment is now on a single line, fixed
after previous formatting broke it.
2007-06-23 22:25:11 -05:00
OHASHI Hideya
83f32e7ff9 Enable to select encoding in hgrc web section
This patch provides character encoding setting in each repository. After this
patch, You can use multi encoding repositories with one mercurial server.
2007-06-13 18:18:06 +09:00
Thomas Arendsen Hein
2f42bdc4f1 merge with main 2007-06-23 21:11:28 +02:00
Matt Mackall
aff448fc36 archive: remove spurious flag_bits setting
This makes zip -T on resulting archives work. File permissions are
still retained.
2007-06-23 14:02:41 -05:00
Thomas Arendsen Hein
2e76adae49 Remember path to 'hg' executable and pass to external tools and hooks as $HG. 2007-06-23 20:21:10 +02:00
Thomas Arendsen Hein
45612e4757 Merge with main 2007-06-23 12:05:00 +02:00
Alexis S. L. Carvalho
cc6e60f60e merge: fix small bug with a failed merge across a rename
If $HGMERGE wasn't able to fix the conflicts, we wouldn't copy
f to fd, and util.set_exec wouldn't find the file.
2007-06-22 20:44:40 -03:00
Matt Mackall
8dc00c8475 rollback: update help for issue316 2007-06-22 17:29:49 -05:00
Alexis S. L. Carvalho
e85eaa593d git patches: correct handling of filenames with spaces
Add a trailing TAB to the "--- filename" lines if there's a space
in the file name.  This allows patch(1) to work correctly.  The
same is done for diff --nodates.

This was originally suggested by Andrei Vermel, but at the time
I thought git was doing something different.
2007-06-22 19:06:04 -03:00
Alexis S. L. Carvalho
b8f177ebbe Work around urllib2 digest auth bug with Python < 2.5
This should fix issue570.
2007-06-22 14:32:54 -03:00
Alexis S. L. Carvalho
64a37442ed dirstate.status: if a file is marked as copied, consider it modified
After a "hg copy --force --after somefile cleanfile", cleanfile
shouldn't be considered clean anymore.
2007-06-21 23:42:06 -03:00
Matt Mackall
265560b37a Merge with Eric Hopper 2007-06-21 18:05:14 -05:00
Matt Mackall
a38809cf9e merge: warn user about divergent renames 2007-06-21 18:02:03 -05:00
Patrick Mezard
21ea8128a8 Merge with crew 2007-06-21 22:19:41 +02:00
Marcos Chaves
f5c072cbc9 Handle CTRL+C in serve under Windows. 2007-06-21 21:58:18 +02:00
Matt Mackall
613a7dfcea identify: take a path to a remote repo
Rather than using -R, we take a path as an argument. This lets us use
url#branch syntaxes that may be in hgrc.
2007-06-21 13:09:01 -05:00
Matt Mackall
f0400ad7b9 dispatch: parse local hgrc for paths 2007-06-21 13:09:00 -05:00
Eric Hopper
964ff0a5e3 Change branches to sort 'active' branches first, and add an option to show only active branches. 2007-06-21 10:40:09 -07:00
Thomas Arendsen Hein
1b20c30e25 hgweb_mod.archive(): Use 'key' instead of builtin 'id'. 2007-06-21 19:38:44 +02:00
Thomas Arendsen Hein
9a78cd828a Remove useless variable assignments in util.opener.
The original idea might have been to prevent circular references, but
as this assignment would have created another reference, this makes
no difference.
2007-06-21 19:24:27 +02:00
Matt Mackall
b5a98f60fd identify: work with remote repos 2007-06-21 11:54:16 -05:00
Matt Mackall
7d837ca833 identify: add support for output flags 2007-06-21 11:54:13 -05:00
Matt Mackall
a0395f3952 identify: accept a revision argument 2007-06-21 11:54:11 -05:00
Matt Mackall
0ca818e7d0 identify: use contexts 2007-06-21 11:42:39 -05:00
Matt Mackall
7be33e5057 context: add tags() method 2007-06-21 11:42:39 -05:00
Matt Mackall
1f80f939a9 identify: show nullid for empty repo 2007-06-21 11:42:39 -05:00
Thomas Arendsen Hein
3019bb7a0b Kill trailing spaces 2007-06-21 09:25:49 +02:00
Alexis S. L. Carvalho
d4cae7d8a5 dirstate.invalidate: clear dirty flag 2007-06-21 00:34:14 -03:00
Alexis S. L. Carvalho
3beeb3356f dirstate: fix typo 2007-06-21 00:34:14 -03:00
Brendan Cully
f7e826dad3 Fix dispatch error message when not in a repo 2007-06-20 20:13:31 -07:00
csaba.henk@creo.hu
e069b7ea12 timestamp of gzip archives taken from changeset context 2007-06-11 19:09:01 +02:00
TK Soh
abffe2b1c3 tag: abort when trying to remove nonexistent tags 2007-06-15 14:48:21 -05:00
Brendan Cully
95c08c2bfc Small fixes for 3acdabb0ef1d (hg heads branch) 2007-06-20 17:53:11 -07:00
Eric Hopper
0bcc9fc15c Add option to heads to show only heads for current branch. 2007-06-19 08:37:43 -07:00
Eric Hopper
bdc1293e28 Provide a version independent way to use the set datatype. 2007-06-19 08:37:41 -07:00
Patrick Mezard
9a43b6739b Fix read mode when importing patch. 2007-06-19 17:03:31 +02:00
Patrick Mezard
8f4c2f4b77 patch: fix ui.patch regression introduced by ef94caf261ce.
The idea is ui.patch is either empty or wisely filled by user.
2007-06-19 17:02:07 +02:00
Patrick Mezard
0b90ff3d83 Merge with crew-stable 2007-06-20 00:22:51 +02:00
Patrick Mezard
aae84719a5 Fix issue 589: "undelete" sequence leads to crash. 2007-06-20 00:10:21 +02:00
Patrick Mezard
ded8d8999d Fix debugrename --rev option 2007-06-20 00:09:30 +02:00
Thomas Arendsen Hein
4d29c6dc8e Updated copyright notices and add "and others" to "hg version" 2007-06-19 08:51:34 +02:00
Thomas Arendsen Hein
483231d996 Cleanup of whitespace, indentation and line continuation. 2007-06-19 08:06:37 +02:00
Matt Mackall
30a1419154 dispatch: report failed imports nicely 2007-06-18 21:30:27 -05:00
Matt Mackall
ab72eb680f demandimport: fix issue579 and add a test
fix suggested by Brendan
2007-06-18 19:43:26 -05:00
Matt Mackall
c61bc27ccc dispatch: add generic pre- and post-command hooks 2007-06-18 17:49:56 -05:00
Lee Cantey
c2221237be Merge with crew 2007-06-18 15:06:14 -07:00
Lee Cantey
416c20c0e1 Fix for demandimport.py and Windows compiled version.
From Shun-ichi Goto in BTS issue 457 http://www.selenic.com/mercurial/bts/msg2780
2007-06-18 15:03:55 -07:00
Brendan Cully
4a2d1da1c5 Work around heisenbug in Popen3.__del__ 2007-06-18 14:52:31 -07:00
Brendan Cully
a4f4ecdc68 Merge with mpm 2007-06-18 12:39:43 -07:00
Brendan Cully
b969d388db Make fast-forward merges full merges 2007-06-18 12:38:54 -07:00
Matt Mackall
c5b84a3392 hooks: separate hook code into a separate module 2007-06-18 13:24:34 -05:00
Matt Mackall
5ecb0cb232 dispatch: fix handling of incorrect number of arguments 2007-06-18 13:24:34 -05:00
Matt Mackall
b99ae11550 dirstate: pull ignore smarts out of ui 2007-06-18 13:24:34 -05:00
Matt Mackall
579d9e3b44 encoding: pull fallbackencoding out of localrepo into early parsing 2007-06-18 13:24:34 -05:00
Matt Mackall
cdeb6ec2da extensions: kill ui readhooks
Move .hgrc extension loading into localrepo
2007-06-18 13:24:34 -05:00
Matt Mackall
8395ca26f3 extensions: pull extension-aware bits out of ui 2007-06-18 13:24:34 -05:00
Matt Mackall
2033c5f43d dirstate: refactor checkinterfering 2007-06-18 13:24:34 -05:00
Matt Mackall
be01255569 dirstate: hide some more internals 2007-06-18 13:24:34 -05:00
Matt Mackall
c71a2b10a7 dirstate: hide internal vars
Add an __iter__ method so commands don't need to poke at _map.
2007-06-18 13:24:34 -05:00
Matt Mackall
e957b05434 localrepo and dirstate: rename reload to invalidate
We want to avoid actually reloading if possible.
2007-06-18 13:24:34 -05:00
Matt Mackall
5b067f098a dirstate: simplify dirty handling 2007-06-18 13:24:34 -05:00
Matt Mackall
dd962fae26 dirstate: lazify and lambdafy _slash 2007-06-18 13:24:34 -05:00
Matt Mackall
12c1ce4938 dirstate: simplify state() 2007-06-18 13:24:34 -05:00
Matt Mackall
38474db3cb dirstate: move ignore to its own file 2007-06-18 13:24:34 -05:00
Matt Mackall
c0a4aebd3c dirstate: replace clear() 2007-06-18 13:24:34 -05:00
Matt Mackall
90c0194d9b dirstate: fold parse into read 2007-06-18 13:24:33 -05:00
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
Edouard Gomez
52552f6c05 Fix inconsistency for the stream_out capability in hgweb
During some experiments of mine, the uncompressed cloning could not
be enabled for hgweb.cgi nor hgwebdir.cgi though the server claimed
to be stream_out capable.

The only solution was to enable it using the user's .hgrc file.
This solution is not acceptable when publishing the repos through
an HTTP server because the CGI runs as a www dedicated user whose's
home hgrc file may not be accessible to users publishing their repos
through their userdir.

For such cases we could end up with this typical debug output:
hg --debug clone --uncompressed http://server/hg/project
destination directory: project
sending capabilities command
capabilities: lookup changegroupsubset stream=1
unbundle=HG10GZ,HG10BZ,HG10UN
sending stream_out command
abort: operation forbidden by server

The error lies in the fact the hgweb object defines new accessors
to the repo configuration that trust things by default (untrusted=True)
but the streamclone:stream_out function uses the usual accessors to the
repo.ui object, which do not trust by default (untrusted=False)

Fix this inconsistency, adding a new parameter to the stream_out function.
hgweb then forces a "trust by default" behavior.
2007-05-12 00:41:30 +02:00