Commit Graph

496 Commits

Author SHA1 Message Date
Vadim Gelfer
338d2303a1 allow None for path of hg.repository 2006-08-02 12:46:00 -07:00
Vadim Gelfer
b7a96d1742 clean up hg.py: move repo constructor code into each repo module 2006-07-31 07:11:12 -07:00
Vadim Gelfer
fc31092ae7 pull: allow to pull from bundle file without need for bundle: syntax 2006-07-30 21:46:38 -07:00
Vadim Gelfer
9139c6368e hg.py: add islocal() and defaultdest() functions, refactor
islocal tells if a repo or url is local.

defaultdest returns default path for clone if explicit path not given.

clone can now take repo or url as source
2006-07-28 10:46:25 -07:00
Benoit Boissinot
8ef31fb9ac codingstyle: use spaces instead of tabs 2006-07-18 00:32:18 +02:00
Vadim Gelfer
f7b6882acb clone: disable stream support on server side by default.
enable in hgrc like this:
[server]
stream=True
2006-07-15 16:06:35 -07:00
Vadim Gelfer
4bc0558c57 clone: do not make streaming default. add --stream option instead. 2006-07-14 14:51:36 -07:00
Vadim Gelfer
9ea4436262 add support for streaming clone.
existing clone code uses pull to get changes from remote repo.  is very
slow, uses lots of memory and cpu.

new clone code has server write file data straight to client, client
writes file data straight to disk.  memory and cpu used are very low,
clone is much faster over lan.

new client can still clone with pull, can still clone from older servers.
new server can still serve older clients.
2006-07-14 11:17:22 -07:00
Vadim Gelfer
e0b0ae3431 clean up trailing white space. 2006-07-12 08:28:00 -07:00
Vadim Gelfer
5f404bd1f9 clone: move code into hg module. make doc better.
api in commands module is still same, but version in hg is best for
calling within python now.
2006-07-11 16:18:53 -07:00
Vadim Gelfer
8a2a795f3f parse url schemes more strictly.
previous code mistook repo named "hg" for scheme named "hg".
2006-07-11 15:52:36 -07:00
Benoit Boissinot
7dd019b60b use __contains__, index or split instead of str.find
str.find return -1 when the substring is not found, -1 evaluate
to True and is a valid index, which can lead to bugs.
Using alternatives when possible makes the code clearer and less
prone to bugs. (and __contains__ is faster in microbenchmarks)
2006-07-09 01:30:30 +02:00
Alexis S. L. Carvalho
fd806fb861 hg.py: move exception handling code to try to avoid hiding errors 2006-07-02 22:39:39 -03:00
Sean Meiners
34ff4a6539 Added ability to clone from a local repository to a (new) remote one.
Rearranged the clone command a good bit to make sure it validates that
the source does exist and that the destination doesn't before doing anything.
Before I moved the source repo check it would create the destination
repository before it verified the source existed.

Moved the responsibility for creating the destination repo root directory
entirly into the localrepo class so that local to local cloning doesn't break.
This also simplifies the code a bit since it's no longer being done in both
clone and init.

Changed the names of the 'repo' and 'other' variables to 'dest_repo' and
'src_repo' to maintain my sanity.

Passes 82/83 tests. The only failure is the version number test, which I
suspect is supposed to fail since it comes from a generated file.
2006-06-30 19:24:02 -07:00
Vadim Gelfer
acba08e292 hg.repository: many routines expect path to be a string even if empty. 2006-06-21 17:09:29 -07:00
Vadim Gelfer
529a731a4f make repo scheme table driven. 2006-06-21 09:14:36 -07:00
Benoit Boissinot
6eff6b4069 replace old-http:// syntax by static-http:// and deprecate the redundant hg:// 2006-06-14 21:53:42 +02:00
Benoit Boissinot
1538c06f8e new type of repo: bundle://path/to/repo+/path/to/bundlename
You can use it to pull only some changeset from an uncompressed
bundle.
2006-03-13 03:56:36 +01:00
mpm@selenic.com
e6e4ecb803 localrepo: minor opener usage restructuring 2005-08-27 16:34:54 -07:00
mpm@selenic.com
f1273ca2af Separate out old-http support
- create new statichttprepo class
- pull remote bits out of localrepo
- pull remote bits out of util.opener
- switch hg.repository to use statichttprepo
2005-08-27 16:28:53 -07:00
mpm@selenic.com
016db4f3e8 Adjust some imports 2005-08-27 14:59:25 -07:00
mpm@selenic.com
13cd5a12bb commands: use revlog directly for debug commands
This eliminates the import in hg.py
2005-08-27 14:56:58 -07:00
mpm@selenic.com
06162e7dd0 Move opener to utils
- move the opener code down to util
- add docstring
- change commands.py users to simply use file instead
2005-08-27 14:31:41 -07:00
mpm@selenic.com
e175fdde9b Break apart hg.py
- move the various parts of hg.py into their own files
- create node.py to store node manipulation functions
2005-08-27 14:21:25 -07:00
mpm@selenic.com
14f5c433e1 Fixes for push corner case
TAH found a bug where push would push things the remote already had,
raising an assertion. This turned out to be because the changeset
protocol was not recording a common subset node in one case.

Also discovered was that the protocol was queueing multiple copies of
a node for pull. Fixed by changing fetch to a hash.

Add some more debugging output.
2005-08-26 16:49:23 -07:00
Thomas Arendsen Hein
3c84fc273d Allow using a ssh repository without a path.
This uses the home directory on the remote side or the directory
specified in the command in .ssh/authorized_keys
2005-08-26 22:40:56 +02:00
benoit.boissinot@ens-lyon.fr
95b97f01ed pep-0008 cleanup
- Don't use spaces around the '=' sign when used to indicate a
      keyword argument or a default parameter value.
2005-08-26 13:06:58 +02:00
mpm@selenic.com
985163dd22 Show number of new heads when doing a pull 2005-08-24 18:42:42 -07:00
mpm@selenic.com
95f1940887 Create helper functions for I/O to files in the working directory
This simplifies some code and gives us a single place to add I/O
filters.
2005-08-24 00:32:10 -07:00
mpm@selenic.com
def38223d0 Deal with repos with missing timezones 2005-08-23 16:19:14 -07:00
mpm@selenic.com
bfbf3abdb0 Fix callers to file.revision to use file.read
This was causing unchanged files to show up as modified.
2005-08-23 12:46:43 -07:00
mpm@selenic.com
b12dc2fafb Clean up some merge logic
- rename mode to branch_merge
- use explicit update mode
- use negative mtime for updates that set mtime
- expand some cryptic variable names
- elaborate merge dirstate comments
- remove redundant manifest lookup for non-merge case
- remove impossible merge case
- fix up test cases
2005-08-23 02:19:38 -07:00
mpm@selenic.com
094f0105d6 Fix up some bugs introduced by recent merge changes
- use new changed list to track what files actually got new revlog entries
  at commit/rawcommit time
- when updating a file during a merge, don't mark it as completely unchanged
- handle file not being in parent 1 in status
2005-08-22 01:22:29 -07:00
mpm@selenic.com
5ce035aafc merge: remove remaining mark bits 2005-08-21 22:03:36 -07:00
mpm@selenic.com
cf3b118558 Fix long-standing excessive file merges
Since switching to the multihead approach, we've been creating
excessive file-level merges where files are marked as merged with
their ancestors.

This explicitly checks at commit time whether the two parent versions
are linearly related, and if so, reduces the file check-in to a
non-merge. Then the file is compared against the remaining parent,
and, if equal, skips check-in of that file (as it's not changed).

Since we're not checking in all files that were different between
versions, we no longer need to mark so many files for merge. This
removes most of the 'm' state marking as well.

Finally, it is possible to do a tree-level merge with no file-level
changes. This will happen if one user changes file A and another
changes file B. Thus, if we have have two parents, we allow commit to
proceed even if there are no file-level changes.
2005-08-21 21:59:55 -07:00
mpm@selenic.com
a4548bef7f Remove call to non-existent date_parser 2005-08-20 01:35:45 -07:00
Samuel Tardieu
e3495dfc0a [PATCH] Take DST into account
Right now, mercurial doesn't take daylight saving time into account
because it uses time.timezone inconditionally, instead of resorting to
time.altzone if daylight saving time is on.
2005-08-19 23:26:32 -08:00
mpm@selenic.com
93c3566358 Add --ssh and --remotecmd to push
This uses the new setconfig options passing mechanism
2005-08-19 21:36:57 -08:00
mpm@selenic.com
8fd52eb092 Fix path handling for deleting files on merge 2005-08-17 00:36:36 -08:00
tksoh@users.sf.net
564f653a74 Fixed --repository option when handling relative path
When specifying relative path to --repository option, 'log' and
'diff' were unable to find the files specified. Here's the fix.
2005-08-17 00:33:53 -08:00
mpm@selenic.com
4eed373ac4 Add a local() method to repository classes 2005-08-16 19:17:01 -08:00
mpm@selenic.com
5bcea47997 Add basic https support for pull 2005-08-16 17:12:25 -08:00
mpm@selenic.com
8ff3edc761 whitespace cleanup 2005-08-16 15:30:26 -08:00
Thomas Arendsen Hein
6abcd01c6a Fix .hgignore parsing if last line has no EOL, ignore trailing white space.
(and don't use tabs in python code)
2005-08-15 08:08:11 +01:00
mason@suse.com
5784da7ba8 Allow the changegroup generator to completely load the buffer.
This makes is possible to delete or truncate away revisions and still
use the changegroup later.
2005-08-14 20:09:21 -08:00
mason@suse.com
7c05a98feb Change repo.comit to return None on error or the new revision number on
success

This allows the caller to correctly record the new revision number
2005-08-14 20:09:01 -08:00
mason@suse.com
9e36a1edf3 Add force option to repo.commit, allowing commits where no files change 2005-08-14 20:08:35 -08:00
mason@suse.com
914365e493 Add searching for named branches
named branching is when you identify a head by a tag on an earlier revision.
This patch adds repo.branchlookup for searching through the tree to
find branch tags for heads.

hg update -b tag is added to checkout based on branch tags
hg heads -b is added to print the tag associated with each head
2005-08-14 12:23:45 -08:00
Bryan O'Sullivan
1486c1162f Merge with TAH. 2005-08-13 15:23:06 -08:00
Bryan O'Sullivan
0b40afa588 Fix bug involving "hg debugwalk -Ipattern" from repository root. 2005-08-13 15:09:37 -08:00
mpm@selenic.com
505146283c Merge with TAH 2005-08-12 23:54:09 -08:00
Bryan O'Sullivan
dcc0f582eb Fix walk path handling on Windows 2005-08-12 15:06:52 -08:00
Bryan O'Sullivan
52caea4f69 Fix walk code for files that do not exist anywhere, and unhandled types.
Prior to this, a file that did not exist was reported as showing up in
the filesystem, as were files of unsupported types (such as fifos).

Now, an error message is printed and nothing is returned in such cases.

This change also moves the commands.pathto function to the util module,
as the walk code needs it to print non-confusing error messages.
2005-08-12 11:16:58 -08:00
mason@suse.com
b44281b503 dirstate walking optimizations
The repo walking code introduces a number of calls to dirstate.map.copy(),
significantly slowing down the walk on large trees.  When a list of
files is passed to the walking code, we should only look at map entries
relevant to the file list passed in.

dirstate.filterfiles() is added to return a subset of the dirstate map.
The subset includes in files passed in, and if one of the files requested
is actually a directory, it includes any files inside that directory tree.

This brings the time for hg diff Makefile down from 1.7s to .3s on
a linux kernel repo.

Also, the diff command was unconditionally calling makewalk, leading
to an extra pass through repo.changes.  This patch avoids the call
to makewalk when commands.diff isn't given a list of patterns, cutting
the time for hg diff (with no args) in half.

Index: mine/mercurial/hg.py
===================================================================
2005-08-12 07:10:21 -08:00
Thomas Arendsen Hein
0fcb836019 Cleanup after previous changes:
- there are only two states for the exec bit, so no need to override it.
- file_ variable is only once now, so it self.file(f) can be used directly.
2005-08-10 08:41:23 +01:00
Thomas Arendsen Hein
6ab968eb5c Use length of file instead of length of change for the dirstate entry. 2005-08-10 07:51:37 +01:00
Thomas Arendsen Hein
20e6210ce8 Fix 3-way-merge of original parent, workdir and new parent.
The dirstate has to match what is in the repository (what would be
checked out with 'hg update -C'), because the resulting file may be
identical to the new parent, or it may be completely different.
Previously the dirstate wasn't updated, so if you changed the file to
look like the original parent, it might be considered unmodified
relative to the new parent.
2005-08-10 06:47:46 +01:00
Bryan O'Sullivan
3a382ee2e1 Merge with mpm. 2005-08-09 17:24:38 -08:00
Edouard Gomez
d27cf121e6 Trap OSError when deleting env vars
On the other OS, it seems that case insensitivity for
environment vars can bite users when using some unknown
combination of python 2.4.1 and win2kSP4+minsys (and
probably other vversions of these softwares).

The best way to avoid problems in those weird cases is to
ignore OSError exception during env var deletion.
2005-08-09 09:36:34 -08:00
Thomas Arendsen Hein
afee016a1d dirstate.changes() now distinguishes 'hg remove'd or just deleted files.
Interface is not yet changed.
Non-regular files are considered to be removed or deleted.
Removed the unneeded match(fn) call for adding to the unknown list.
2005-08-09 11:32:30 +01:00
Bryan O'Sullivan
75e6a5bd0e Teach walk code about absolute paths.
The first consequence of this is that absolute and relative paths now
all work in the same way.  The second is that paths that lie outside
the repository now cause an error to be reported, instead of something
arbitrary and expensive being done.

Internally, all of the serious work is in the util package.  The new
canonpath function takes an arbitrary path and either returns a
canonical path or raises an error.  Because it needs to know where the
repository root is, it must be fed a repository or dirstate object, which
has given commands.matchpats and friends a new parameter to pass along.

The util.matcher function uses this to canonicalise globs and relative
path names.

Meanwhile, I've moved the Abort exception from commands to util, and
killed off the redundant util.CommandError exception.
2005-08-07 12:43:11 -08:00
Thomas Arendsen Hein
9d8a9110b0 Fixed encoding of directories ending in .d or .i:
One .d and .i was mixed up, and string replace method doesn't work in-place.
2005-08-07 17:41:13 +01:00
mpm@selenic.com
9161f5c8e4 Merge with BOS 2005-08-02 08:57:32 -08:00
mpm@selenic.com
c0f58ac983 Make ssh URL parsing more robust 2005-08-01 23:23:51 -08:00
mpm@selenic.com
7c0d9a3cf7 Warn on pushing unsynced repo or adding new heads
By popular demand
2005-08-01 23:17:22 -08:00
Bryan O'Sullivan
a159000a3d Attempt to yield names in sorted order when walking.
This is an improvement in behaviour, but the walk and changes code still
has some flaws that make sorted name presentation difficult:

- changes returns tuples of names, instead of a sorted list of (name,
  status) pairs.

- walk yields deleted names after all others.
2005-07-31 18:03:46 -08:00
Bryan O'Sullivan
25438a68e9 Ensure that dirstate.walk only yields names once.
Its predecessor code used to do this, and now it does, too.
2005-07-31 17:54:00 -08:00
Bryan O'Sullivan
2f2a31ce76 Clean up walk and changes code to use normalised names properly.
New function: commands.pathto returns the relative path from one path
to another.  For example, given foo/bar and baz/quux, it will return
../../baz/quux.  This new function is used by the walk and status code
to print relative paths correctly.

New command: debugwalk exercises the walk code without doing anything
more.

hg.dirstate.walk now yields normalised names.  For example, if you're
in the baz directory and you ask it to walk ../foo/bar/.., it will yield
names starting with foo/.

As a result of this change, all of the other walk and changes methods
in this module also return normalised names.

The util.matcher function now normalises globs and path names, so that
it will match normalised names properly.

Finally, util.matcher uses the non-glob prefix of a glob to tell walk
which directories to scan.  Perviously, a glob like foo/* would scan
everything, but only return matches for foo/*.  Now, foo/* only scans
under foo (using the globprefix function), which is much faster.
2005-07-31 17:42:46 -08:00
mpm@selenic.com
b90578da57 Merge with BOS 2005-07-30 09:00:14 -08:00
mpm@selenic.com
c29a4a3c68 add note about -C to update message 2005-07-30 08:30:12 -08:00
Bryan O'Sullivan
e6c1da7c61 Adapt commit to use file matching code.
The code is slightly complicated by the need to commit all outstanding
changes in the repository if no file names are given (other commands
operate on the current directory and its subdirectories in this case).

localrepository.changes has acquired an optional match parameter, to let
it filter out include/exclude options.
2005-07-29 15:02:27 -08:00
mpm@selenic.com
04d7166797 Fix the directory and revlog collision problem
This adds escaping for directory names so that directory foo.i doesn't
collide with the revision data for file foo.
2005-07-27 18:50:32 -08:00
mpm@selenic.com
e4d910ab82 Fix undo after aborted commit bug
Commit would overwrite undo.dirstate unconditionally, so an undo after
an aborted commit would restore the dirstate from the aborted commit
and not the prior transaction.

This copies dirstate to journal.dirstate and moves it after a
successful transaction.
2005-07-27 18:16:20 -08:00
mpm@selenic.com
6b8940724b Fix copy in subdirectories
Spotted by Chad Netzer
2005-07-27 10:05:12 -08:00
mpm@selenic.com
185e6a4945 Add changegroup hook for push/pull 2005-07-27 09:07:28 -08:00
mpm@selenic.com
3823d6eace Make pull count jargon less confusing
revisions are now synonymous with changesets, and not file changes
2005-07-25 12:02:29 -05:00
mpm@selenic.com
9520e62074 Fix local file changes being ignored after non-branch merge
Bug introduced in 45dd84ebbed8
Spotted by TAH
2005-07-23 10:00:56 -05:00
mpm@selenic.com
f8e53b93db Hack to fix missing '/' problem in URLs 2005-07-22 20:07:14 -05:00
mpm@selenic.com
8e0881ad8a Don't mark files with 'm'erge unless we're actually merging branches
For 3-way merges, we were marking files as 'm', which should only be
used for branch merges. This was causing files to show up in 'hg
status' that aren't actually modified.
2005-07-22 19:23:00 -05:00
mpm@selenic.com
1f521ec7c5 Check protocol versions
This also allows the old unidentified protocol
2005-07-21 18:20:13 -05:00
mpm@selenic.com
e16b6ba2ce Simplify content type checking 2005-07-21 18:19:20 -05:00
Muli Ben-Yehuda
0bf14d0d7e When pulling from a non hg repository URL (e.g. http://www.kernel.org/hg)
you geta pretty obscure error (zlib: uknown compression type). The
attached patch modifies hgweb.py and hg.py to supply and check a
'Content-type: application/hg-0.1' HTTP header for the branches,
between and changegroup commands, so that we know it's a proper hg
repo before snarfing the input. Comments appreciated!
2005-07-21 18:18:43 -05:00
mpm@selenic.com
f70080b8c0 Fix some line wrapping
manifest hash: 43af5dafa55e01f89727096f4d6784317f3eb0d6
2005-07-20 20:11:23 -05:00
Bryan O'Sullivan
6e8461ae49 Merge with Matt's tip. 2005-07-20 03:52:06 -08:00
Bryan O'Sullivan
89e035ebd1 An empty .hgignore file must cause us to ignore nothing, not everything! 2005-07-20 03:37:01 -08:00
Bryan O'Sullivan
e5a5499cf6 Only walk over files that match our criteria. 2005-07-20 02:57:20 -08:00
mpm@selenic.com
59b4a46202 Fix verify error reporting bug
Spotted by Chris Mason

manifest hash: d5a6e5cb65d2de65a68d1f85c8692e79622844d3
2005-07-19 15:09:04 -05:00
Bryan O'Sullivan
fc2a7aae7c Add a source designator to the walk methods.
If the source is 'f' (the filesystem), the file definitely exists in
the filesystem.  If 'm' (a rev or dirstate manifest), the file may not
still exist with the given name.
2005-07-19 07:15:59 -08:00
Bryan O'Sullivan
b9dc9cad21 Merge with Matt's tip. 2005-07-19 07:00:03 -08:00
Bryan O'Sullivan
4e963737e8 Get add and locate to use new repo and dirstate walk code.
They use a walk function that abstracts out the irritating details, so
that there's a higher likelihood of commands behaving uniformly.
2005-07-18 06:54:21 -08:00
Bryan O'Sullivan
f3838c3254 Work on walk code. 2005-07-16 15:13:40 -08:00
Thomas Arendsen Hein
8734e61b04 Added missing newline after two error messages.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Added missing newline after two error messages.

manifest hash: c730cdf92c66ee5b44a4cd9b67f72deb844e4010
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFC2B0mW7P1GVgWeRoRAjXJAJ48fbg6jXN65pBPGW/YmWn9OtKakACgjnr9
DPySaeLr3/bU7KhFdZPI7/4=
=Lvsx
-----END PGP SIGNATURE-----
2005-07-15 21:31:35 +01:00
Thomas Arendsen Hein
061a741620 merge program setting from hgrc wasn't used.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

merge program setting from hgrc wasn't used.

manifest hash: 49da647e02534f51324a7a955a34c64c05bd8fa0
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFC1pKjW7P1GVgWeRoRAt6AAJ9ZB6NerDpWA/k2ZZeN6VUsSDkB8wCePhMd
Xr+Tb86zo+xFhHq7YkDvLak=
=+BY9
-----END PGP SIGNATURE-----
2005-07-14 17:28:19 +01:00
mpm@selenic.com
09e51635fb HG environment variables take precedence over hgrc
manifest hash: c128b53429f861c0b75c2a81c6ad4907e4779810
2005-07-13 01:48:03 -08:00
mpm@selenic.com
437dd476b1 Minor merge fixups
return a proper errorlevel on abort
let force jump across branches
catch exception on unlink

manifest hash: 6787814cd75e9f9623c56dc36f865afd54f56bfa
2005-07-13 01:46:50 -08:00
Matt Mackall
6219c06395 Reapply startswith() changes that got lost with stale edit
manifest hash: 16d7feedd561591a21727a4c13a1223019d802a7
2005-07-12 00:51:49 -08:00
Matt Mackall
68b8829c92 Sort files for removal 2005-07-11 15:07:04 -08:00
Matt Mackall
bfd9f3d6ab Handle undeletion of files when checking out old revisions
Spotted by Marc Singer
2005-07-11 15:06:32 -08:00
Matt Mackall
7235bde6be Actually move .hg into ignore 2005-07-11 10:28:20 -08:00
chad.netzer@gmail.com
899bc83dfc Make consistent use of str.startswith() in conditionals.
# HG changeset patch
# User chad.netzer@gmail.com
# Node ID 45db196de89a15fd045cd789f701b0180fd276f1
# Parent  852adf9ffa4dd2cb1a504bd207f0cad178ac4024
Make consistent use of str.startswith() in conditionals.
2005-07-10 16:14:56 -08:00
Matt Mackall
5fb8ca60d2 Move .hg into ignore() 2005-07-10 16:13:39 -08:00
mwilli2@localhost.localdomain
f2f576fe2c .hgignore speedups patch incorporating Matt's feedback.
# HG changeset patch
# User mwilli2@localhost.localdomain
# Node ID c78a9d4398c63b6bc689e456e1cab3850a846c8a
# Parent  5155a0b6300820be38eb7e04d26525be39307df2
.hgignore speedups patch incorporating Matt's feedback.
2005-07-10 16:03:20 -08:00
mark.williamson@cl.cam.ac.uk
7d47f35832 A number of minor fixes to problems that pychecker found.
# HG changeset patch
# User mark.williamson@cl.cam.ac.uk
# Node ID 55d38977b7f2e73b8c1090179928ac96c8922b90
# Parent  0bda45294416406d4c6fbaf1cb643dd0bf6b3a16
A number of minor fixes to problems that pychecker found.
2005-07-10 16:01:11 -08:00
Matt Mackall
2156cc914b Move commit hook after commit completes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Move commit hook after commit completes

manifest hash: bc65b570af67ee4748efaba2ff8a6cddf91b8a14
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFC0ZwSywK+sNU5EO8RAuAjAJsHGTXsOCnxq+xbq/Q0H+ayGnzaiQCfdWn6
or+IWK3sjYILYncTxMFZJdE=
=mQb7
-----END PGP SIGNATURE-----
2005-07-10 14:07:14 -08:00
Matt Mackall
bc958d41d5 Whitespace cleanup
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Whitespace cleanup

manifest hash: 7abcbe23247dd5b7dea6fa44fb80d9f909cf6829
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFC0ZvmywK+sNU5EO8RAhhDAJ0YXOx5B2F/3NjFB+5YcUtkHqVyuQCgnNyp
tWbRrjDz/SbKz/tFAsxJDqo=
=xB66
-----END PGP SIGNATURE-----
2005-07-10 14:06:30 -08:00
Matt Mackall
c4c7a27643 Generate a friendlier except for failed lookups
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Generate a friendlier except for failed lookups

manifest hash: 1a4384b791bba2107604e56168166dfcbfb54086
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFC0Ws6ywK+sNU5EO8RArBGAJ9EA0mCNGqO+w6LaO358sVe19o7lQCdGffF
MmQ/ZIvxoJOjYTo+PLBWMqI=
=4VIg
-----END PGP SIGNATURE-----
2005-07-10 10:38:50 -08:00
Matt Mackall
2b45be3873 dirstate.forget() takes a list
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

dirstate.forget() takes a list

manifest hash: e444474a5ac76d3562ee8c0211e1a88ec53155ef
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFC0WO+ywK+sNU5EO8RAlmYAJ9pcSgpvvuqLzfUkeApXZyOb3j6pQCgi9Te
e8ZI236WNWfyrwEASxFIeLM=
=yDVZ
-----END PGP SIGNATURE-----
2005-07-10 10:06:54 -08:00
Matt Mackall
9f4ad36efb Warn about bogus ignore expressions
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Warn about bogus ignore expressions

manifest hash: 7beb33a1f0879a1d2457953187a523417bc7a101
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFC0IPqywK+sNU5EO8RAsOdAJ0bFxZoUjSk/BxWZ9C50SlxlDBlBQCeKbu0
QVzZZKIFlDRVWOsi8zfamHA=
=zAVL
-----END PGP SIGNATURE-----
2005-07-09 18:11:54 -08:00
Matt Mackall
ad29857686 Non-grouping regex for ignore
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Non-grouping regex for ignore

Suggested by Mark Williamson

manifest hash: dfd4686e7ac9f96e79da600edf299ed64213e05d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCzjX3ywK+sNU5EO8RAnc1AJ4/sKzyZJiRs6UzE3uksE2U9rOkVQCeJsZf
PhHsNtEt/WyL+v44mBfk8Mk=
=e+Qy
-----END PGP SIGNATURE-----
2005-07-08 00:14:47 -08:00
Matt Mackall
e4ed038d5b Fix bug in reverting deleted files
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Fix bug in reverting deleted files

Force updates and reverts wouldn't restore deleted files in the
working dir. This should fix that.

manifest hash: e14809399bbc63da42e8c8f694cc8acf31e537f7
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCzjOJywK+sNU5EO8RAqVLAKCC1BF6JhNiO6n4LJGvy9RBTgOelwCdF9Tr
sADRnovYt9xSnUGmd1Om9JQ=
=SdcP
-----END PGP SIGNATURE-----
2005-07-08 00:04:25 -08:00
Matt Mackall
b9a708f99a Experimental ignore regex speed-up
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Experimental ignore regex speed-up

manifest hash: c6922086fb78201b60ba8cbde5b51512225ebcc8
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCzWkvywK+sNU5EO8RAohzAJ9BwkFJQzs0QRH71r1Y1Wm0QCSmEwCgrESQ
Ej3Kt/y0JdhOJzQLsAiufqk=
=SPjY
-----END PGP SIGNATURE-----
2005-07-07 09:41:03 -08:00
Matt Mackall
cbe4c5f492 Attempt to read all remaining remote output at close
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Attempt to read all remaining remote output at close

manifest hash: e1eda33686726559849388b048a838933862fe89
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCzM60ywK+sNU5EO8RAudsAJwPW/MPUBXFV13UbYmZyiwdzSr8QwCfYJqc
l1ZDWPZPTN5UGUlfs0CCu7Y=
=2Tat
-----END PGP SIGNATURE-----
2005-07-06 22:41:56 -08:00
Matt Mackall
d35c78a55f Show remote client output with "remote:" 2005-07-06 22:30:00 -08:00
mason@suse.com
5cc69df211 Performance enhancements for manifest.add()
# HG changeset patch
# User mason@suse.com

Performance enhancements for manifest.add()

Improve manifest.add performance by using bisect to insert/remove
changed items into the manifest list.  This also generates the
manifest delta directly based on the changes being made.
2005-07-06 22:28:35 -08:00
Matt Mackall
073fa93171 Add addchangegroup to the ssh protocol 2005-07-06 22:23:57 -08:00
Matt Mackall
8cf75f2dfd Add a scheme for handling remote locking
This adds an object that remembers to unlock the remote repo on
destruction and lock/unlock functions for the ssh protocol. The remote
repository should also unlock itself when the connection goes down.
2005-07-06 22:23:27 -08:00
Matt Mackall
46871ef83d Fix up the broken bits in findoutgoing 2005-07-06 22:21:23 -08:00
Matt Mackall
f8a8da4071 Move the empty changeset detection out of findincoming to pull
This lets us reuse findincoming for findoutgoing
2005-07-06 22:20:56 -08:00
Matt Mackall
e873216620 Protocol switch from using generators to stream-like objects.
This allows the the pull side to precisely control how much data is
read so that another encapsulation layer is not needed.

An http client gets a response with a finite size. Because ssh clients
need to keep the stream open, we must not read more data than is sent
in a response. But due to the streaming nature of the changegroup
scheme, only the piece that's parsing the data knows how far it's
allowed to read.

This means the generator scheme isn't fine-grained enough. Instead we
need file-like objects with a read(x) method. This switches everything
for push/pull over to using file-like objects rather than generators.
2005-07-06 22:20:12 -08:00
Matt Mackall
e16fdada85 Add a repo method to report repo device
This is used to establish whether repos are on the same device for
hard linking. Remote repos all return -1.
2005-07-06 22:14:10 -08:00
Bryan O'Sullivan
39b21b4b72 Add locate command.
# HG changeset patch
# User Bryan O'Sullivan <bos@serpentine.com>
# Node ID ebf5eba347a17a5c09000b3342caf350cd060a1b
# Parent  4309b0a5a6010dd2e5811b77d2bc29a51acf290f
Add locate command.

Used for finding files with names that match specific patterns,
such as "*.c".

This patch also introduces localrepository.getcwd, which returns the
current directory relative to the repository root.
2005-07-05 18:19:01 -08:00
Matt Mackall
5dd4f6c486 Add an sshrepository class and hg serve --stdio 2005-07-05 17:55:22 -08:00
Matt Mackall
3cc4e98ed3 Change remote repository to httprepository 2005-07-05 17:50:43 -08:00
Matt Mackall
4db088e7cd Add generic repo commands for pull and push 2005-07-05 17:50:02 -08:00
Matt Mackall
4c5093f684 Add a function to calculate the outgoing changegroup 2005-07-05 17:49:01 -08:00
maf46@burn.cl.cam.ac.uk
7b2a775c50 Fix zombie files in merge
# HG changeset patch
# User maf46@burn.cl.cam.ac.uk
# Node ID 57667c9b93a5a743e4629d15a0e6bd76699130c3
# Parent  4309b0a5a6010dd2e5811b77d2bc29a51acf290f

Fix zombie files in merge

Keir Fraser observed the following:

> I made a small test case that illustrates the bug in merging changesets
> with 'hg remove's in them:
>
> 1. Create a repository A containing files foo & bar.
> 2. Create clone called B.
> 3. A removes file bar, and commits this removal.
> 4. B edits file foo, and commits this edit.
>
> Now, if B:
>   # hg pull ../A; hg update -m; hg commit
> Then bar remains deleted.
>
> If A:
>   # hg pull ../B; hg update -m; hg commit
> Then bar is resurrected!
>
> It looks as though, when you merge across a branch, any deletions in
> your own branch are forgotten.
> ...
> Fixing this is a must, as zombie files are a real pain. :-)

Keir later patched our local copy of hg as shown below, which fixes
the problem.  I've also enclosed a test which captures the test Keir
outlined...

Files deleted on a branch should not automatically reappear in a merge

Patch notes:
 1. The first chunk does not change behaviour, but cleans up the code
    to more closely match check of 'force' in the second chunk. I
    think it makes the code clearer.
 2. The second chunk fixes two bugs --
    i.  If we choose to keep a remotely-changed locally-deleted file,
        then we need to 'get' that file. If we choose to delete it
        then no action need be taken (it is already deleted in the
        working manifest). Without this fix, choosing to delete would
        get a Python traceback.
    ii. The test for whether the file was remotely-created is
        insufficient. It is only true if f is not in the common
        ancestor. Otherwise the file was deleted locally, and should
        remain deleted. (this is the most important fix!)


Index: hg/tests/test-merge6
===================================================================
2005-07-04 12:38:34 -08:00
shaleh@speakeasy.net
6e0d7d452c * clean up error handling when user requests to use a non file object
# HG changeset patch
# User shaleh@speakeasy.net
# Node ID 1ae21732349f5b6dba2941609a044d9c365a6fb2
# Parent  d3df6f5c87d045ba97457269261c35c30b04524b
* clean up error handling when user requests to use a non file object
  - use os.path.exists() to verify the item exists
  - use os.path.isfile() to check whether the item is a file or not

diff -r d3df6f5c87d0 -r 1ae21732349f mercurial/hg.py
2005-07-04 11:20:20 -08:00
Matt Mackall
b1602d40de [PATCH] hg tag: local tag support in file .hg/localtags
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

[PATCH] hg tag: local tag support in file .hg/localtags

From: Radoslaw Szkodzinski <astralstorm@gorzow.mm.pl>

Support local tags in .hg/localtags

Also minor cleanups in related functions

manifest hash: 553b2e896fed3c9055ed18482ce15cfaa4fc41ce
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCyYdJywK+sNU5EO8RAhohAKC2I3U44EXi+k4ofo5AWHBOg+94bgCfcbzs
VQ2yWkPPHZycjtswOBmepa8=
=v5AX
-----END PGP SIGNATURE-----
2005-07-04 11:00:25 -08:00
Matt Mackall
c77de876fa Add username/merge/editor to .hgrc
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Add username/merge/editor to .hgrc

These take priority over the equivalent environment vars
Deprecate HGMERGE, HGUSER, and HGEDITOR in docs
Add ui section to docs
Remove undocumented HG_OPTS
Raise username code out of changelog class
Make tests ignore ~/.hgrc

manifest hash: d127ef02bc5266036b4c77a55319519e91bd475b
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCyM5NywK+sNU5EO8RAuU7AJ9zKk1TFrJXHM04jOOJJeBSp8jlTgCeP+tr
qwGFd+WaNqTepZ0wun5g9Uc=
=QEBu
-----END PGP SIGNATURE-----
2005-07-03 21:51:09 -08:00
mpm@selenic.com
c7c6ca830d [PATCH] hg revert
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

[PATCH] hg revert

From: Bryan O'Sullivan <bos@serpentine.com>

Add revert command.

manifest hash: 0094e6bf421f34bd0492a33f95400b1b095a6bdc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCx2BaywK+sNU5EO8RAigMAKCrvgTtIDuirCsMVlbiTMqaJy3UNgCdEcTL
hMN1X8FZi6sH+NjUdr9sYBg=
=i58L
-----END PGP SIGNATURE-----
2005-07-02 19:49:46 -08:00
mpm@selenic.com
4394004b4a Remove all remaining print statements
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Remove all remaining print statements

Convert most prints to ui.warn or ui.write
Pass a write function into transactions

manifest hash: d1b0af7a344fc087a5acfe3ae87b782c20d043e0
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCx1Q3ywK+sNU5EO8RAqSTAJwM5t/m+JOlf2ZXOjuItCSdFiubcwCdFm3G
HoicikSYpTgfCj2pIRfyLjo=
=Loqo
-----END PGP SIGNATURE-----
2005-07-02 18:57:59 -08:00
mpm@selenic.com
ecca3da73a Actually warn on pulling from an unrelated repository
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Actually warn on pulling from an unrelated repository

add some comments to findincoming
track the base nodes of the fetch set
report if the base set only contains nullid
add a test case

manifest hash: 3fc038a6041b0967a20503f5ec8876efc038841a
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCx0yLywK+sNU5EO8RAlK6AJ9J/GKPpYSMzTqmguXPWOISJ+zY5gCghd+j
ClLpn0dKZnB46dh0F8zhuuk=
=emNb
-----END PGP SIGNATURE-----
2005-07-02 18:25:15 -08:00
mpm@selenic.com
be3df7015c Remove empty directories on update
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Remove empty directories on update

manifest hash: 113969ec14c75eb9e1013b23cf096f722932b84d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCxyVoywK+sNU5EO8RAklKAKCzSUhuFClkHN85qlnDp5iVscZbtgCeJVwx
dqaqG20GjPMWBg0d1ggI/ro=
=o2Uv
-----END PGP SIGNATURE-----
2005-07-02 15:38:16 -08:00
mpm@selenic.com
cfb252ef59 Handle unknown files better on update
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Handle unknown files better on update

If we spot an unknown file that's identical to one that's in the
update, we get the updated one so that it shows up in the dirstate
properly.

manifest hash: 988aca64f255df67c27d1c6f8694ea098e4ec159
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCxyFyywK+sNU5EO8RAjmiAKCTgINXMPB1CxHt0OgHYPucfjCS7QCcDpJJ
VgKqZS54hTAWN3jL2yllUhI=
=iPQD
-----END PGP SIGNATURE-----
2005-07-02 15:21:22 -08:00
mpm@selenic.com
40aeb3c129 More whitespace cleanups
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

More whitespace cleanups

manifest hash: 6721a7b11295e0127386b080fd7a7b516ebced74
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCxwm/ywK+sNU5EO8RAnl+AKCg/7ZCW7zIoG0nefksZzgLzgNmFACgnAFz
ZkW0LyZcU/hkFgXoGwo7ktk=
=AW+0
-----END PGP SIGNATURE-----
2005-07-02 13:40:15 -08:00
mpm@selenic.com
6c1bdb9b2f repo.changes: fix duplicate changes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

repo.changes: fix duplicate changes

We need to discard the changed and added lists from dirstate.changes
before adding to them when comparing manifests. Otherwise something
that changed from rev->parent->working dir will appear twice.

Bug spotted by Goffredo Baroncelli <kreijack@libero.it>

manifest hash: 64c335e2fe6df6d1ce29d0903f16821c7566768f
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCxcT3ywK+sNU5EO8RAivLAJ4gqbWfMnt+BdyGac/ZGduy2KbNegCgncPV
D4ay6Qw9sIodEPjRebvk3GE=
=AZd2
-----END PGP SIGNATURE-----
2005-07-01 14:34:31 -08:00
mpm@selenic.com
af937ff86a Fix dodiff/changes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Fix dodiff/changes

dodiff was failing to pass both nodes to changes
changes was comparing things backwards, resulting in added/deleted confusion
  in dodiff
changes was deleting things from cached manifests, use copy()
changes now sorts output lists

manifest hash: 6ad972b0895b9d855e246efef49c2ebd943946b3
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCxZhZywK+sNU5EO8RApZWAJ9mYv1zc7IjXPIMwbVsfroQs8jfBACgn7R7
rTqLTTyIkM1OpL/ebnMtCOY=
=VcIr
-----END PGP SIGNATURE-----
2005-07-01 11:24:09 -08:00
mpm@selenic.com
ace13bb9eb recover: the journal is named 'journal'
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

recover: the journal is named 'journal'

spotted by K Thananchayan <thananck@yahoo.com>

manifest hash: a2ecfedb3d58011cdf5ef7741ff61aba15aa5885
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCxXVbywK+sNU5EO8RAmiBAKCgULQVAZ42xuPRyzb3Rrk794LtaACgoLdF
TNtgK/MqF6+EjWNJ5mm2geE=
=m5U3
-----END PGP SIGNATURE-----
2005-07-01 08:54:52 -08:00
mpm@selenic.com
24ce1f4da4 Move dirstate.uniq to util.unique
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Move dirstate.uniq to util.unique

manifest hash: 8ac613c30a4471f14ae52f14ed0839d66eeaebb7
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCxQAqywK+sNU5EO8RAsTiAJ9E9/cALe+W8ojtfVdiXXre5dB/9gCeOgxr
mRnVw/WDplkATW5450Pgsug=
=xSfl
-----END PGP SIGNATURE-----
2005-07-01 00:34:50 -08:00
mpm@selenic.com
916122bc8c Fix braindamage in repo.changes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Fix braindamage in repo.changes

manifest hash: d34a5d36fde0ecb444ea3a5b156bea0bff51554d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCxPRxywK+sNU5EO8RAh/vAJ0buHjZ7w4Y2I6l9FnHl0prmTURrgCbBqOU
cJ6wUXXPaRmQJS4ECFPCZcE=
=WMC4
-----END PGP SIGNATURE-----
2005-06-30 23:44:49 -08:00
mpm@selenic.com
d78c234443 Propagate file list through dodiff
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Propagate file list through dodiff

This speeds up operations like 'hg diff Makefile'. Previously it would
walk the entire directory tree looking for changes. Now it will only
stat Makefile. Further, if Makefile appears untouched, it will skip
reading the manifest.

manifest hash: ab22a70a5511ed2d7a647f2cd15d129a88dccabf
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCxNRyywK+sNU5EO8RAgb6AKC2TzWmRjNsWq0Q9Pa+ppCZ6Y+pdwCfdHUA
UHu024/2Wt6C6WZ5vcWfPbo=
=E35L
-----END PGP SIGNATURE-----
2005-06-30 21:28:18 -08:00
mpm@selenic.com
bb74daf6a1 Refactor diffrevs/diffdir into changes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Refactor diffrevs/diffdir into changes

Add dirstate.changes to replace most of diffdir
Add localrepository.changes to replace diffrevs/diffdir

This code can now efficiently check for changes in single files, and
often without consulting the manifest. This should eventually make 'hg
diff Makefile' in a large project much faster.

This also fixes a bug where 'hg diff -r tip' failed to account for
files that had been added but not committed yet.

manifest hash: 20fde5d4b4cee49a76bcfe50f2dacf58b1f2258b
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCxMxpywK+sNU5EO8RAhzOAJ9VLQJoC+hiRYQtTSPbDhXBEJfQZwCgpDx9
GAwQ9jZHNsgXckBfXNCkJV8=
=hMuc
-----END PGP SIGNATURE-----
2005-06-30 20:54:01 -08:00
mpm@selenic.com
fc6637cb83 Attempt to fix negative revision count from pull
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Attempt to fix negative revision count from pull

manifest hash: 4e8881037d545f4bf76d2c1b06f685b2467cd3a8
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCw4yUywK+sNU5EO8RApUkAKCCYTpBG3Wpu15aVeG0iBWE612S5wCgnSBi
PEfXF4NI2O9AqWijOMBq6aM=
=AyGw
-----END PGP SIGNATURE-----
2005-06-29 22:09:24 -08:00
mpm@selenic.com
986879ff2d Fix empty pull bug that appeared this morning
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Fix empty pull bug that appeared this morning

manifest hash: 53e4709a701f03d9905933c80758ba13caf3998c
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCwxdJywK+sNU5EO8RAuoPAJ4tb9fd1Emm21/HLAEpyntaW2uoHQCfcc8z
J8LB4mVG3gTsvRtiLZBVV/g=
=+2C3
-----END PGP SIGNATURE-----
2005-06-29 13:48:57 -08:00
mpm@selenic.com
0cdd5f0aa9 Change getchangegroup to findincoming
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Change getchangegroup to findincoming

manifest hash: 46dbdc025ead342f7c70a0051d1c596cfcbb6699
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCwuwAywK+sNU5EO8RAoV/AJ9GaoLTKMo2aoycSIZyBt/8r073vQCeK/tO
W1PwSot4HmnmcpR6RVIy9+0=
=PiBt
-----END PGP SIGNATURE-----
2005-06-29 10:44:16 -08:00
mpm@selenic.com
0fb5db6915 Whitespace cleanups
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Whitespace cleanups

manifest hash: ac954bc3a4f034c12638a259ecd65841f5b63c5c
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCwuubywK+sNU5EO8RAluIAJ98XQpNdZUpSmYKgDmrMRlbL76ZzQCfes0t
rknNUN/PhtyA4bzL646dOz4=
=UyCE
-----END PGP SIGNATURE-----
2005-06-29 10:42:35 -08:00
mpm@selenic.com
1e42f2bba3 change unrelated repository error to a warning
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

change unrelated repository error to a warning

manifest hash: 7c1481639c7e7ba91fd391a9fa6eb17e838f894e
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCwZ+xywK+sNU5EO8RAnnjAJ494NZfAdMVP48VegHQ+WeZ05DPogCbBEWC
d3N47FYG87x1CJOh9VzwVCQ=
=lrGp
-----END PGP SIGNATURE-----
2005-06-28 11:06:25 -08:00
mpm@selenic.com
9397a75d94 Disallow merging of unrelated projects
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Disallow merging of unrelated projects

manifest hash: 40badbca64e1ccfd83fee8cd7bf5099f57b6f8bf
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCwZn6ywK+sNU5EO8RAmdeAJ9TAaGSe0nGMdL+Du3AGwm9x28IUgCgpfGG
UunOBkobMVLGdHegnOvQkmQ=
=VwVi
-----END PGP SIGNATURE-----
2005-06-28 10:42:02 -08:00
mpm@selenic.com
9a1b46a47d Use $USERNAME as a fallback for commit
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Use $USERNAME as a fallback for commit

Suggested by Giuseppe Bilotta <bilotta78@hotpop.com>

manifest hash: 3f86a63aebaf6c30eaa3a2081e1e5f9caa20caa1
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCwSPvywK+sNU5EO8RAqpYAKCmwfTfeNGCTqy2wuBs/bmtxMKt1ACeIpRo
/vencPT6Z/WNXW+6p9NlZRY=
=jFZ/
-----END PGP SIGNATURE-----
2005-06-28 02:18:23 -08:00
mpm@selenic.com
fa23bbfb7e Better messages for rollback and undo
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Better messages for rollback and undo

manifest hash: 22eeb8848b0e07e1f23a896b03c37f7d6f4bd82d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCwSBtywK+sNU5EO8RAhNEAJ9MGJxgZjIKegh1TA7++wGbAzkovACgqL3I
k1ii4X5PEWEDcoyOp0VqJn4=
=wzlT
-----END PGP SIGNATURE-----
2005-06-28 02:03:25 -08:00
mpm@selenic.com
255a41b58b Add exception class for repository errors
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Add exception class for repository errors

This gives friendlier errors for repo exceptions

manifest hash: f3bef1ddb0c3911b9866ebdafa1fe72df48c8ecd
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCwRCfywK+sNU5EO8RAg7fAJ9PMka8pJCy7mMTqFFJ5aQFemHpxwCfezPR
cZRAXmbWTTI+/WnVFDjpfM0=
=8crk
-----END PGP SIGNATURE-----
2005-06-28 00:55:59 -08:00
mpm@selenic.com
1bbff51e92 Add initial hook support
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Add initial hook support

This adds the basic hook code as well as pre and post-commit hooks.
Argument passing is by environment variable key/value pairs so that
extra data can be passed over time. File lists will generally not be
passed to hooks as these can be extremely long (>1M).

manifest hash: 45cf9bab432782c391bc9c1c048c84cc75d52740
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCwOukywK+sNU5EO8RAsVsAJ9QipR2aKRSSvoRNo+3If6JddUDkwCgkZrM
KEmZpUOxhNHqezFVrHDRTjE=
=aedm
-----END PGP SIGNATURE-----
2005-06-27 22:18:12 -08:00
Thomas Arendsen Hein
a9e1f4b47e Handle errors in .hgtags or hgrc [tags] section more gracefully.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Handle errors in .hgtags or hgrc [tags] section more gracefully.

manifest hash: 85c62e1bf3ad78b243ee60f43c3c577700a8c96d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFCvp6jW7P1GVgWeRoRAo23AKCZRU22IweynNtf9k3q4pEyqEaozACeMIRV
6tNOkr3h6jTiMZ2bJgPeabg=
=+U5s
-----END PGP SIGNATURE-----
2005-06-26 13:25:07 +01:00
mpm@selenic.com
3173ade5df Minor annotate performance tweaks
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Minor annotate performance tweaks

manifest hash: 2edd508182c7b3dfb2e0b9b90baebdd364cb29f0
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCvfQeywK+sNU5EO8RAsYSAJ0R8SuWnyQxVgauoaEuezOe3Taq/wCbBnEs
+VG0LNrXnQM9khQyc0+pCeg=
=U5gX
-----END PGP SIGNATURE-----
2005-06-25 16:17:34 -08:00
mpm@selenic.com
00dfb16988 Add 'local' tags
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Add 'local' tags

Local tags are repository-private tags that override the usual tags.
They're not version controlled.

manifest hash: cce27c853d36f03adba4bd543a37c8faf1a0c749
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCu3SSywK+sNU5EO8RAlVAAJ9sTyIW2EkzBPSPp+3uU6a+6DUC6QCcD0vE
jiwqhtfCuvG5LLs54LkzamY=
=D9IP
-----END PGP SIGNATURE-----
2005-06-23 18:48:50 -08:00
mpm@selenic.com
8510fbd2d1 rawcommit: do lookup of parents at the appropriate layer
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

rawcommit: do lookup of parents at the appropriate layer

manifest hash: fc4b2d4416d00da5db2f4659e42ecba2a96dba1e
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCu2UoywK+sNU5EO8RApdDAJ9Vph6qVyzL++YeXyFC8HKf9ZhkGgCeNc0Y
j2AMu6aWmuLuy2XwztS8gms=
=f8mQ
-----END PGP SIGNATURE-----
2005-06-23 17:43:04 -08:00
mpm@selenic.com
4b67f9b493 rawcommit dirstate tweak
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

rawcommit dirstate tweak

Before this patch, rawcommit can mess up the dirstate unless it is
committing against the current parent.

This patch changes rawcommit, such that when adding a child to some
node other than the current parent, rawcommit does not attempt update
the current dirstate.

This seems easily debatable; it creates an asymmetric behavior for
rawcommit. It means that when doing a rawcommit against the current
parent, there's effectively an implied "hg update" to the newly
created node. When doing a rawcommit against any other node, no such
"hg update" occurs.

The other obvious alternates would be:
1) rawcommit never update the dirstate
2) rawcommit always does an "hg update"...

This patch also includes a test for various uses of rawcommit...

Michael Fetterman


manifest hash: 428517d82a02501f14b0d8fac064411980780e91
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCuymPywK+sNU5EO8RAvdvAKCxW1QZtyOviNfuwO592IaKApwvEACfdrYD
83m/o8oJvRKu3yGvNGHtwfk=
=KbmU
-----END PGP SIGNATURE-----
2005-06-23 13:28:47 -08:00
mpm@selenic.com
0ef8f163ee Permission handling for the other OS
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Permission handling for the other OS

From: K Thananchayan <thananck@yahoo.com>

Preserve exec permission under Windows on existing source files. Not an ideal
solution as there is no way to specify exec permission for a new file.
Nevertheless, this helps working on crossplatform projects.

manifest hash: c50da52ad4645f40bd6204c4fd458e880bc3f801
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCuvJeywK+sNU5EO8RAscXAJ40eAHZjTip5to6BGPdoXxxL5gNQQCgl5GT
8S1Ckank5I/0ScGtapZKqTA=
=QrQp
-----END PGP SIGNATURE-----
2005-06-23 09:33:18 -08:00
mpm@selenic.com
20411bdc00 Optimize annotate a bit
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Optimize annotate a bit

Keep the original text around so we don't need to rejoin it
Use slice insert-in-place rather than += to construct new lists
Construct the decorated list with list multiply rather than comprehension

manifest hash: 8c0effb9777750d524d71ad3a2eade3c6ddd579e
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCuca0ywK+sNU5EO8RAtvQAJwOViomGCtlZx/R76i8/CZGvGPqUwCfdybd
nRUv1854GjzCbfygzXfeIes=
=6Q+E
-----END PGP SIGNATURE-----
2005-06-22 12:14:44 -08:00
mpm@selenic.com
c6e599029c Replace difflib with bdiff for annotate
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Replace difflib with bdiff for annotate

This is a quick hack to get bdiff working for annotate, can still be
optimized quite a bit.

manifest hash: 380ae3092c73b7e1946952edec3588248bc13c5e
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCubxGywK+sNU5EO8RAv7RAJ9lTdxRAVqzGs4XnPoZAmx/fbeUZwCfWar2
RqLGipS5JmMOy1pL1ehNxqY=
=KLgM
-----END PGP SIGNATURE-----
2005-06-22 11:30:14 -08:00
mpm@selenic.com
663c3fc4ae Pull from TAH
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Pull from TAH

manifest hash: 600d04efbd836d555d11a3bd9d821d1d8c0a9790
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCuPFxywK+sNU5EO8RAjfzAKC18Zc2EOkXhy1zcpgGnyPHnFMdmgCfW5Ut
I5HSWqZMt8H0WJx1Or7ajNc=
=27D5
-----END PGP SIGNATURE-----
2005-06-21 21:04:49 -08:00
mpm@selenic.com
b2a320abcc Fix typo in merging new files
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Fix typo in merging new files

manifest hash: 4a6fee1e54c5c465a74f4d756a1ac549b15fdb2f
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCuOvVywK+sNU5EO8RArovAJ4ua9EhnO8wWfKRZ36E6F4Wrv5JPACghCXn
sHr/TSkxdy48OUVkhTbhhhQ=
=poww
-----END PGP SIGNATURE-----
2005-06-21 20:40:53 -08:00
mpm@selenic.com
5e62f2ce10 [PATCH] rename under the other OS
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

[PATCH] rename under the other OS

From: K Thananchayan <thananck@yahoo.com>

Rename fails under windows if dest file exists. This
patch add a rename method to util module that removes
the dest file and retries if initial attempt fails.

manifest hash: 2744d9fd1717e15133b411a269df909fa8ec0faf
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCuNzDywK+sNU5EO8RAsPBAJ9NQN3bTuJvTem5x+utGnoMkhYc0QCbBFSJ
PoMP69H1UnVE6drFlnlFE0s=
=pePw
-----END PGP SIGNATURE-----
2005-06-21 19:36:35 -08:00
mpm@selenic.com
d9341c39ce [PATCH] Repo locator fix for the other `OS'
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

[PATCH] Repo locator fix for the other `OS'

From: K Thananchayan <thananck@yahoo.com>

The following patch modifies repo locator to behave
properly under windows.

manifest hash: 481252f9667ab5408dc1985a72a1916f903f4f2b
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCuNv5ywK+sNU5EO8RAvD9AJ9mYSzmn99sc2vNtw68sPaKKWe2UQCgoiLd
1q1t+JMs57+I0LUdwrwsEDw=
=dlmm
-----END PGP SIGNATURE-----
2005-06-21 19:33:13 -08:00
mpm@selenic.com
1a1ca5cd0e [PATCH] file seperator handling for the other 'OS'
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

[PATCH]  file seperator handling for the other 'OS'

From: K Thananchayan <thananck@yahoo.com>

The following patch maintains repo root relative source file names in
canonical form (with '/' as file seperator).

Mercurial calls os.path.join, os.path.normpath, os.path.walk that use
platform's file seperator. This patch does not change seperator in
these circumstances (except when the result refer to source files).

manifest hash: 2fbb4cb0d3d0bc4f4de5c7c8803fb738072ec6c5
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCuNuBywK+sNU5EO8RAhAZAKCV8cz11+rdof9n1tHb0uDScF34GgCeITNi
4aVikToPXqXyReN9kFP5pnY=
=xcV5
-----END PGP SIGNATURE-----
2005-06-21 19:31:13 -08:00
mpm@selenic.com
0ae2f84e6d Minor tweak to binary mode patch
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Minor tweak to binary mode patch

manifest hash: 4fce0b7b405b124e035526d4a458e888d9bd82ef
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCuNr1ywK+sNU5EO8RAs83AJ9i+yafrjWWjWm1lTwCr0fO8cAU+gCghmxg
+S1W1KuMzgxJAtuhq6h6uBk=
=9JhP
-----END PGP SIGNATURE-----
2005-06-21 19:28:53 -08:00
mpm@selenic.com
a88586e98c [PATCH] file type fixes for the other 'OS'
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

[PATCH] file type fixes for the other 'OS'

From: K Thananchayan <thananck@yahoo.com>

Filetype fixes:
All working files and files in the repository are processed as binary.
.hgignore is read as text when constructing ignorelist as this file
is intended to be edited.

manifest hash: c034cdcc54011fd3de9e32f1aa8b2b6f84e1b2b8
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCuNoRywK+sNU5EO8RAjarAJ9ScUoFL1A7mpO7qorCy6okhi0nggCcDgpp
dfDl4dALGQA0PqXqtI+T5gU=
=IVxr
-----END PGP SIGNATURE-----
2005-06-21 19:25:05 -08:00
mpm@selenic.com
ee0f69d039 [PATCH] Removal of a file added by merging branches
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

[PATCH] Removal of a file added by merging branches

From: Michael A Fetterman <Michael.Fetterman@cl.cam.ac.uk>

Fixing a bug where removal of a file which is added when doing a merge
would cause python exception to be thrown.

manifest hash: 0bdd80e8abcee6aaa4804bb588f9939596fb3dd0
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCuNjLywK+sNU5EO8RAo44AJ4mvjsJcYOj/EmVDFrdkK3D3WHFSwCffxfV
cRl8mXc252/oRcYaMZbgrlg=
=S5x6
-----END PGP SIGNATURE-----
2005-06-21 19:19:39 -08:00
mpm@selenic.com
bc5ccf31e3 [PATCH] Don't prompt user for keep-vs-delete when the merge is about to be aborted
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

[PATCH] Don't prompt user for keep-vs-delete when the merge is about to be aborted
From: Michael A Fetterman <Michael.Fetterman@cl.cam.ac.uk>

If an "hg update" is attempted across branches, it is aborted with an
error message, basically saying that "update -m" is required.  Don't
prompt the user for "keep vs delete" kinds of questions before deciding
to abort.

manifest hash: 250d3a0e866af2feac9344d499b26c254c33abc4
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCuNeDywK+sNU5EO8RAu2BAJwNWXXN2L+4TnOUGaOe9iBj6CgOYgCfRKIE
RF5czx2UQ2pSIP119xzq9mQ=
=Akj6
-----END PGP SIGNATURE-----
2005-06-21 19:14:11 -08:00
mpm@selenic.com
46f265df70 remove double assignment
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

remove double assignment

spotted by Goffredo Baroncelli

manifest hash: a0406a618ce5b2b9b10073b29960d594094aa3ed
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCuNXhywK+sNU5EO8RAh9yAJ0aVTnxsumDAdF3JORp1pDebxeE8wCgisdG
vf/JwxHbQEqGrefU1nbs928=
=NDGW
-----END PGP SIGNATURE-----
2005-06-21 19:07:13 -08:00
mpm@selenic.com
d5711e92d7 [PATCH]: Typo in localrepository.update
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

[PATCH]: Typo in localrepository.update

From: Goffredo Baroncelli <kreijack@libero.it>

I think that there is an error in the method update() of the class
localrepository. The variable 'm2n' was used instead of 'man'; so the
parent2 flags is computed instead of the ancestor flags.

manifest hash: dc11810367615245c4b39660d135ab3c0e71b85d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCuNWpywK+sNU5EO8RAv9ZAKCxwbd242xZQ1CCrW2WDdQ4gclKtACghXYl
7j1YTRpINItwdXzak3cBS60=
=+Tf8
-----END PGP SIGNATURE-----
2005-06-21 19:06:17 -08:00
mpm@selenic.com
1cfde4e8cc [PATCH] Merging files that are deleted in both branches
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

[PATCH] Merging files that are deleted in both branches
From: Michael A Fetterman <Michael.Fetterman@cl.cam.ac.uk>

OK, attached is an improved version of this patch...

When I went back through it, I discovered that the prior version was wrong
when doing real merges (as opposed to jumping between revisions that have
a simple linear relationship).  So that's been addressed here, too.

> Here's an hg changeset patch that deals with simultaneous deletion of a
file
> in both the working directory and in a merged branch.
>
> Test case included in the patch.

manifest hash: c8078733c252403314d8046efa6ecefc49c83050
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCuNF8ywK+sNU5EO8RArtdAJ9syw/JXRZzP1sxnEYXzZywkJLAPACeKpqL
5osA3AggrCbbSLTNcYVXJ8U=
=T5Ik
-----END PGP SIGNATURE-----
2005-06-21 18:48:28 -08:00
mpm@selenic.com
659dbef2f6 [PATCH] Merging identical changes from another branch
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

[PATCH] Merging identical changes from another branch

From: Michael A Fetterman <Michael.Fetterman@cl.cam.ac.uk>

The issue comes up when a local uncommitted *new* file (i.e. not in the
current manifest) is being merged with an identical file from a branch.
Since the file is not in the current manifest (it's either in the
current "to-be-added" list, or in the "unknown" state), there's no
(local) node from which to create a mergepoint.

manifest hash: 4e64ce654a6473524789a97bbaf8bff61b4343af
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCuM/1ywK+sNU5EO8RAn7xAKCJoH/CgzVK4h4xPJDrd2lY9XOINACgmt01
92uuMswZXcoCchQAaxew7C0=
=qRsk
-----END PGP SIGNATURE-----
2005-06-21 18:41:57 -08:00
mpm@selenic.com
f0a7e9bd41 Check if repository exists
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Check if repository exists

From: Goffredo Baroncelli <kreijack@libero.it>
Subject: Re: Trivial: in remoterepository.__init__ check if the repository
        exist

I hope that this is correct :-)

Another typo, another patch, tank to Peter Stamfest and Radoslaw Szkodzinski.

The patch is trivial: adds a check in the body of the init method of the
+remoterepository
class. Before if the path didn't exist, hg would not raise any error.

Test manually performed after the patch has been merged:

test:                                                     result
create a new repository from another local repository     OK ( no problem )
create an empty repository                                OK ( no problem )
pull from a not existent repositary                       OK ( raise an error )

(error message tweaked by mpm)

manifest hash: ac7f625a8d87c693b61718b9fc5604d28b882bbd
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCuM0gywK+sNU5EO8RAsnGAJ42HE3m01tlGqrIR3GVfuhvCjEJkgCfffvp
bEhfvjaiAdBV50HMULq8N00=
=QDHW
-----END PGP SIGNATURE-----
2005-06-21 18:29:52 -08:00
mpm@selenic.com
11f489a590 [PATCH] (3/4) Removing an added file
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

[PATCH] (3/4) Removing an added file

From: Michael A Fetterman <Michael.Fetterman@cl.cam.ac.uk>

Here's an hg changeset that deals with "hg add"ing and then "hg remove"ing
a file without ever committing it.  Previously, this caused a python
exception
at commit time.

Test case included in the patch.

manifest hash: 4d012f3f8b1aa664fed9e8bc2849931b28728acd
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCuMPtywK+sNU5EO8RAuxMAKCmeMLqOUBmUfCfbQgYOAysOvKkwgCfcJai
2My0M7KqhwnJSbZXbGIOcow=
=N7N0
-----END PGP SIGNATURE-----
2005-06-21 17:50:37 -08:00
Thomas Arendsen Hein
1f53e34055 Allow hgrc's proxy host and $http_proxy env var to start with http://
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Allow hgrc's proxy host and $http_proxy env var to start with http://

manifest hash: 5bf4bb43606f3e5544d55be886502ab5a61f9ff3
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFCtcR6W7P1GVgWeRoRArk0AKCgHpelPjAKjbzh3iifZayAhovm+gCeL0hl
XU7LBUrK2Z2qQHN0w9I8XUk=
=QaAW
-----END PGP SIGNATURE-----
2005-06-19 20:16:10 +01:00
Thomas Arendsen Hein
1f172db45e Allow override of HTTP_PROXY, http_proxy and no_proxy; make no_proxy work.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Allow override of HTTP_PROXY, http_proxy and no_proxy; make no_proxy work.

manifest hash: cfddccef1e8acaa8b06e652e5bbc274d31f0df1d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFCtIp/W7P1GVgWeRoRAgNRAJ4//Ptbq9Cba7S2L5ltvP92gcijZQCeKuU/
S/togHQXp34v2ypVH+8wyP4=
=jpn2
-----END PGP SIGNATURE-----
2005-06-18 21:56:31 +01:00
Thomas Arendsen Hein
d126bd1067 Fixed problems with extra spaces around tags in .hgtags
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Fixed problems with extra spaces around tags in .hgtags

manifest hash: 2a40f403d5d7d9c4d39e52fa6edefa74d5797167
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFCspTvW7P1GVgWeRoRAg9PAJ9OWdUii+qO+U5ioaAbkFeIROA/7gCdGgau
ZP8jmI1h95ZK3KS/QlQMeQ4=
=lRFd
-----END PGP SIGNATURE-----
2005-06-17 10:16:31 +01:00
mpm@selenic.com
0b40b51431 hg merge: fix time asymmetry bug with deleting files on update to past
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

hg merge: fix time asymmetry bug with deleting files on update to past

manifest hash: 41feb7bf9b56e071a538a0918224898acb2bd31c
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCsm6XywK+sNU5EO8RAncbAKCwn/W4cr6civp4Zt79JFH6um0/lQCdFCh8
F7ZOQ+S/PL3HL4iE6avOBDc=
=kHPm
-----END PGP SIGNATURE-----
2005-06-16 22:32:55 -08:00
mpm@selenic.com
7bdae1e0eb Move httprangereader into its own file
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Move httprangereader into its own file

manifest hash: 7a856e4024ce5d3d305e23e418a77d3058c74ddf
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCsPj4ywK+sNU5EO8RAizKAJ9kbYVAC+iL4cKml14BcwX9okdnJQCgjLAP
cWM5/y9FdC3THOC6DkUNic0=
=PkL6
-----END PGP SIGNATURE-----
2005-06-15 19:58:48 -08:00
mpm@selenic.com
c36436262c Add hg copy
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Add hg copy

extend dirstate to remember copies
add copy command
add copy repo operation
write copy metadata with commit

manifest hash: 9f42c7b4a2400d35807b5f18c05a31814fa3e375
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCsMBTywK+sNU5EO8RAjXpAJ9fvNtTP1A/4veqFWQHcWGro7buyACgoVXz
/ngGOFowxS/zGkvUvGavYGQ=
=drb1
-----END PGP SIGNATURE-----
2005-06-15 15:57:07 -08:00
mpm@selenic.com
da73063c69 filelog: add metadata support
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

filelog: add metadata support

To add metadata, we add an escape sequence "\1\n" to indicate that
some key:value metadata pairs follow.

manifest hash: 9a019d50f8d389b2c16cb46f4eab62c136b70fd7
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCsJfFywK+sNU5EO8RAl1AAJ9BJPgDWnot5MUdPnzPiNxlyhG0rACfVo10
6q9fGaPUpf8mxefz7G8D0Z0=
=1BL6
-----END PGP SIGNATURE-----
2005-06-15 13:04:05 -08:00
mpm@selenic.com
f82d510aa2 [PATCH] manifest.readflags performance buglet
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

[PATCH] manifest.readflags performance buglet

From: Chris Mason <mason@suse.com>

Performance buglet in manifest.readflags: only re-read the manifest
when the mapcache is not present or does not correspond to this node

manifest hash: 188ad778308a2e5c885d452d7b7e61c082e8ceb2
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCsG4wywK+sNU5EO8RAv+IAJ9sU87MythE/HYf3wH/V7ctzNdR1gCfclr9
ydsk6wtk/n6uKb4U7BvGvLM=
=5cOx
-----END PGP SIGNATURE-----
2005-06-15 10:06:40 -08:00
mpm@selenic.com
92f8f94e43 merge3: fix argument order
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

merge3: fix argument order

We were passing the wrong argument order to hgmerge. Add a merge
conflict test case.

manifest hash: 2d88786a3f31dcaa9d44f564c21f0d2a4f14f09c
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD4DBQFCr+ZoywK+sNU5EO8RAouJAKCOx5oxhVXkLqsfCPBXx0+wP5IeogCYoZzF
ooZT2fyN3tL3uVM2YP8KcA==
=O4fE
-----END PGP SIGNATURE-----
2005-06-15 00:27:20 -08:00
mpm@selenic.com
9db9caef14 Fix yet another resolve corner case
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Fix yet another resolve corner case

manifest hash: a194321b5cd718a3c31f327c5145a4ebd8dd4ef4
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCr+IvywK+sNU5EO8RAt49AJwLBBq7AZfo1WqcwZvzSVENvJGLmgCePumQ
0/9RwjL/PorsvFJi+CiFYyY=
=S6HA
-----END PGP SIGNATURE-----
2005-06-15 00:09:19 -08:00
mpm@selenic.com
051bbe3f44 rework all code using tags
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

rework all code using tags

Add three utility functions:

tags(): get (and possibly load) the tags mapping
tagslist(): sort tag,node by revision (aka topologically)
nodetags(): return a list of tags associated with a node (also cached)

Update all the code using tags to use these.

Simplify identify code
 make unknown always visible if printed
 don't ignore tip pseudo-tag

manifest hash: e6deb4d545ad465be7735f9ec43227bcb5e238c7
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCr+HjywK+sNU5EO8RAh4/AJ90cI0WxmvQAj6Lq2ZiG8LmqZan/QCfR8B5
ltu8tOIEHDa8LhfS9wtBu0k=
=pv3t
-----END PGP SIGNATURE-----
2005-06-15 00:08:03 -08:00
mpm@selenic.com
2bdabb4c9d Add support for .hg/hgrc file
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Add support for .hg/hgrc file

manifest hash: a6d2fc7ed8d56e2f0d65aad78a4d8359898ca246
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCr5QZywK+sNU5EO8RApnlAJ9nD65i2aEQcljV+Y39zgImpcdtgwCgpT9G
O2D8FDFpRNyYki/QPt5e/AQ=
=bQCZ
-----END PGP SIGNATURE-----
2005-06-14 18:36:09 -08:00
mpm@selenic.com
d2dd697347 hg pull: more query fixes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

hg pull: more query fixes

Pull was getting confused by single-element branches because it had
seen the top end already.

Also, the previous change to do seenbranch on the base of the branch
was bogus.

Minor cleanup and a bit more diagnostics in the branch-narrowing code.

manifest hash: 71d4dced9f74bef43d3a54d086dccd0a96d68e26
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCrjLgywK+sNU5EO8RAsxSAJ92U31Pz7K14Ctje4SEec2857Ut7QCgoVwY
ho65mloslCSidLsEnxYfBDI=
=Wts9
-----END PGP SIGNATURE-----
2005-06-13 17:29:04 -08:00
mpm@selenic.com
c03e65957e hg merge: some getchangegroup fixups
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

hg merge: some getchangegroup fixups

- - filter more duplicates
- - request batching
- - lookup ordering
- - request counting

After these fixes, grabbing 1800 changesets on top of the 28k
changeset kernel history takes 23 round trips rather than a couple
hundred.

manifest hash: 78e893b68000267a8c7ea49fd38758f2fc96269f
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCrea0ywK+sNU5EO8RAv3cAKCQveivdApJIlslTCMLMp2VogRXfACeNRnx
Ihsf5yLz60fFpqlzAmZBACk=
=Euku
-----END PGP SIGNATURE-----
2005-06-13 12:04:04 -08:00
mpm@selenic.com
bb97db269e Transparent proxy support
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Transparent proxy support

Originally from "Michael S. Tsirkin" <mst@mellanox.co.il>

manifest hash: 74cf7456ef35ff8d4c007544f0d1a57c69d3c929
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCrSIUywK+sNU5EO8RAje1AJ41ALW8soF78Mo3UTraV1QQvJoFSQCgrqvc
I9ohlI4hzdjOD+wSwRGlERQ=
=Ugfi
-----END PGP SIGNATURE-----
2005-06-12 22:05:08 -08:00
mpm@selenic.com
1b72add8c7 hg commit: user and date options
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

hg commit: user and date options

- From Ted Ts'o

manifest hash: f6ce29eed387664c6f0631b666158eb930876cb3
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCrHx4ywK+sNU5EO8RAp/uAKCEGhvm1tpBJ9Bub8BlalWaIpMeqgCfUejo
IoevMbk4cjxQ5P3Zo2pSFs8=
=Ibp3
-----END PGP SIGNATURE-----
2005-06-12 10:18:32 -08:00
mpm@selenic.com
b077acf769 More tweaking to rawcommit for repo conversion
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

More tweaking to rawcommit for repo conversion

manifest hash: 912e7d61fc15845fd24baada9f553c2d38b26f06
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCrGdBywK+sNU5EO8RApbrAKCPVvxnSgkzAWpwc6uRDCCYAsqO7QCeMonn
tZS4URbMI2aDQYw15wDEZHg=
=C2Vn
-----END PGP SIGNATURE-----
2005-06-12 08:48:01 -08:00
mpm@selenic.com
9e30d45970 Minor caching improvement for manifest
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Minor caching improvement for manifest

manifest hash: 91d827f4041f1151875a52199618cdd1a219ac79
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCrGGBywK+sNU5EO8RAotVAJ93JTk6XoHnZrbGzcZQ1N+P7kNKiACfYj+F
RlcmcLHc3rEMkcM127BszDg=
=5zAN
-----END PGP SIGNATURE-----
2005-06-12 08:23:29 -08:00
mpm@selenic.com
d5231c190f Optimize diff and status in subdirectories
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Optimize diff and status in subdirectories

This walks the tree from the subdirectory down.

Based on a patch by Arun Sharma

manifest hash: 3a8545369b4eb6911b9d0fcdd8e4dc77784fa3d8
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCrF6/ywK+sNU5EO8RAosUAKC0KWcMfsLErEInDk1X1vpM54HFEgCfUwcN
gXhaAviQZJ8h0ssl3BMmMfI=
=KnRD
-----END PGP SIGNATURE-----
2005-06-12 08:11:43 -08:00
mpm@selenic.com
e5f91203c2 fix KeyErrors from reading empty dirstate
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

fix KeyErrors from reading empty dirstate

manifest hash: 04a797f1b53e34153c8ea18950a5dd0eefb4694d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD4DBQFCqyj+ywK+sNU5EO8RAoepAJYp2TjjaMq3l+ZrRfogyvUGCebgAJ9nKPdr
nP/Y3F1GvOle58NTIQ6UBA==
=0k3O
-----END PGP SIGNATURE-----
2005-06-11 10:10:06 -08:00
mpm@selenic.com
5a13901487 Add tip to tags
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Add tip to tags

This makes a tag for the current tip that always overrides what's in
the tags files.

manifest hash: b1a17d0238aa84ee30773be79e4a32dca321a0c3
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCqfzVywK+sNU5EO8RAgdEAJ41VvLHIIzNZbIC/nHmoJOpZL0+4gCfRxpC
eSq341nfmMZNcrqmGYYALe4=
=miH1
-----END PGP SIGNATURE-----
2005-06-10 12:49:25 -08:00
mpm@selenic.com
d1d2bb53b2 add tip to repo.lookup 2005-06-10 12:48:12 -08:00
mpm@selenic.com
a8abcc624e more merge fixes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

more merge fixes

Logic for getting a remote change should work going backwards and forwards

Mark all the changes in the merge that we don't get or merge so we
have the right list of files in the changeset

manifest hash: 88be742f510a2c58b276172ae538f9533f5e7491
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCqc+CywK+sNU5EO8RAjOKAJwNkC7phUO77IGW20R7MKyWBGP01gCgjxP6
K2CqUESHr2+0J96q3N74Siw=
=zb2f
-----END PGP SIGNATURE-----
2005-06-10 09:36:02 -08:00
mpm@selenic.com
2b99655794 various fixups for git import
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

various fixups for git import

cache manifest flags properly after add
rawcommit
  handle flags
  handle multiple parents better
  commit a complete manifest
verify
  changesets and manifests are no longer necessarily 1:1
  check for duplicate nodes

manifest hash: 5bf65f506d2b0da94d42d9fb1f792d58f6453c58
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCqU9wywK+sNU5EO8RApUUAJ9sXVIKMcmLChdk2M95U6DW37qNNQCgid08
/1E9Y4vw25HcxwJlXopV1lU=
=oohz
-----END PGP SIGNATURE-----
2005-06-10 00:29:36 -08:00
mpm@selenic.com
0af71ae547 Merge with TAH
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Merge with TAH

manifest hash: 5a7d047acc6df6ba03db532657f54c0d38e4cffe
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD4DBQFCqIECywK+sNU5EO8RAg56AJ95hB6uw7Fc55XgwgZls4UUNRt1jACYrkrq
V9VJhhv29Fd/LEZy+ydoGQ==
=unEK
-----END PGP SIGNATURE-----
2005-06-09 09:48:50 -08:00
mpm@selenic.com
be968da64f hg update: fix clobbering files when going backwards
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

hg update: fix clobbering files when going backwards

spotted by Andrew Thompson

manifest hash: 0cfc2d189a395fb8761391d9918864034aa7a9b8
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCqH9BywK+sNU5EO8RAoHrAJwN9Y2Jrvbdp/seTkGl6D/g1uxK0wCglZWz
jQ6F3A6ikzTXwhEq+KsR8Qw=
=9IPU
-----END PGP SIGNATURE-----
2005-06-09 09:41:21 -08:00
Thomas Arendsen Hein
01375d2142 Turn on +x for every +r bit when making a file executable and obey umask. 2005-06-09 09:24:08 +01:00
Thomas Arendsen Hein
ed63b972a6 Fixed usage of removed variable 'wp'. 2005-06-09 08:53:07 +01:00
mpm@selenic.com
fad79b21a5 Make most file opening binary
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Make most file opening binary

This should make Windows happier

manifest hash: 4a906f7c55d8af4e962385c645852d0b3d858b42
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCp52mywK+sNU5EO8RAtOzAJwK8MOtl3B0MDAXyJDnDFt9mHNINwCfVdRG
8z35hXvIJhz3sRo0ogdUZ0s=
=eM45
-----END PGP SIGNATURE-----
2005-06-08 17:38:46 -08:00
mpm@selenic.com
7ddff96dc1 Add wopener for opening files in the working directory
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Add wopener for opening files in the working directory

manifest hash: cad3a930764244a32f8e45c2ea95fa9b98690b5f
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCp5qxywK+sNU5EO8RAkfAAJ9C7V8zlbUVM8Dfs4raXMtT2bk4RQCfRfVt
IfYoaVsbOUW4U1XipOZycAw=
=5JDH
-----END PGP SIGNATURE-----
2005-06-08 17:26:09 -08:00
mpm@selenic.com
62655b2307 commit: edit text fixups
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

commit: edit text fixups

if given text, don't call editor
if editor returned only whitespace, abort

manifest hash: 7b6158a37568d91be1443b487d0a2cea1ba55dd3
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCp4zXywK+sNU5EO8RAqCrAJ921nNgI/akM8oacXewkIYdxaoiAgCffOP5
UOIl4GzvkOkcqd5YFS83pa8=
=seZT
-----END PGP SIGNATURE-----
2005-06-08 16:27:03 -08:00
mpm@selenic.com
86e8dabf8d commit: abort with empty commit text
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

commit: abort with empty commit text

manifest hash: d932ca95c920d6a4d33281d29e605c6995930016
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCp4oLywK+sNU5EO8RAulBAKCOhHn6p/xNaJUFs/IsOY8+1ad3ZQCfbUNb
XigHO+zgvzzsFWIvLnZFiGI=
=lldi
-----END PGP SIGNATURE-----
2005-06-08 16:15:07 -08:00
mpm@selenic.com
70fff322e4 verify: don't die from new permission bits
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

verify: don't die from new permission bits

manifest hash: f8799eb3574dab3ee1523ae61b1a513eff1a7044
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCp3TQywK+sNU5EO8RAkiSAKCd0wEciYzcZYmeMic+9QLVtbf9SACginpE
1pjBr5SyqQu66rh+zWPgZqQ=
=cgDM
-----END PGP SIGNATURE-----
2005-06-08 14:44:32 -08:00
mpm@selenic.com
2665f365bd permissions merge: remove a debugging print
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

permissions merge: remove a debugging print

manifest hash: 488144aeb1544ecc377ab41983e6cabd4a8b1f5f
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCpz4KywK+sNU5EO8RAi+YAKCBmiiDkhe2ygCv4LF21RS3/iH0VgCeLwd5
c/yhTklZ9lnLWXy5dmuPNZk=
=UtDf
-----END PGP SIGNATURE-----
2005-06-08 10:50:50 -08:00
mpm@selenic.com
e2c2b50378 merge: update permissions even if file contents didn't change
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

merge: update permissions even if file contents didn't change

manifest hash: f24ed7970c6ca48329a7aa9c2037d96333f7172e
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCpz0PywK+sNU5EO8RArOMAJ9CImCJMdubq5HsB3KrxOt1EG7PEgCgpPWg
lnVxviZhv31EHtnxujQBoqM=
=qxYq
-----END PGP SIGNATURE-----
2005-06-08 10:46:39 -08:00
mpm@selenic.com
dda2865a7f add tracking of execute permissions
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

add tracking of execute permissions

Changes to executable permissions are now tracked. We only track one
bit here as the others tends to be problematic. "hg manifest" now
shows file permissions.

manifest hash: b76b85d12a9550fdc9fbc4f9446a812f3a2bbe88
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCpzYBywK+sNU5EO8RAgkMAJ48l2ac12E20EFS24/i8ScwOtG4HwCgkbaE
ue6l1RJroqzNA7vNeqwCwK4=
=sEmJ
-----END PGP SIGNATURE-----
2005-06-08 10:16:33 -08:00
mpm@selenic.com
850c76c740 various merge improvements
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

various merge improvements

add -C flag: force update and overwrite local changes
add -m flag: allow merges with conflicts
  we no longer do merge by default
  and we print a warning message when the merge fails
fix bug in printing merge failure message
fix bug diffing files in 'm' state

manifest hash: 75545a6db45d1e371082343d01c9f177df0f9db3
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCpm6tywK+sNU5EO8RAvb+AJ0euC3YkUYA944hds3ooPxbw6NpVwCfc1dj
TiNsPIds560S5jgw44eWNto=
=GPXN
-----END PGP SIGNATURE-----
2005-06-07 20:06:05 -08:00
mpm@selenic.com
97511c7cdc merge: Fix bug where we overwrote local when local was newer
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

merge: Fix bug where we overwrote local when local was newer

Spotted by Arun Sharma

manifest hash: b81acb971c6471d95748cd349590cc70e448dce3
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCpl9oywK+sNU5EO8RAtseAJ92EEMovbVy0J1rFuxcGvED066m+ACfaWYF
Q1/PcvkuH9aIqwMNkMK+aPU=
=61JM
-----END PGP SIGNATURE-----
2005-06-07 19:00:56 -08:00
mpm@selenic.com
8cb7d2e30b Fix empty repository transaction bug
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Fix empty repository transaction bug

manifest hash: df334795ea545f2401d08f734b8b6933af053d7b
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCo0lbywK+sNU5EO8RAr0TAJ9g9703187KXlpBOffNUGcYKGTLzwCgrqdq
jYjtTvZZ3nRCt8biaTcad3c=
=+riB
-----END PGP SIGNATURE-----
2005-06-05 10:50:03 -08:00
mpm@selenic.com
1b992606bb implement demand loading hack
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

implement demand loading hack

This attempts to speed up start-up times without pushing imports down
into local scopes.

manifest hash: f9c18897e67f7872b44f5c89bdde00edfc3628ce
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCo0kHywK+sNU5EO8RAg5HAKCxRKAz3FXDyv4wScq1ZbwTgfPa2gCfW9K+
dg5nC3Uvp4FilP8waF6liAY=
=dolF
-----END PGP SIGNATURE-----
2005-06-05 10:48:39 -08:00
mpm@selenic.com
736738b892 minor fixes for update()
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

minor fixes for update()

manifest hash: ee88b90b933d83d5a9e108ec5519da93629bf29b
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCom+pywK+sNU5EO8RAqOxAJ9Cbk8NTlFAmlF3phcmz9MlaVYRuwCdGDjC
oMFBjhRhvif/nBJbHjqW2Qw=
=RN0T
-----END PGP SIGNATURE-----
2005-06-04 19:21:13 -08:00
mpm@selenic.com
c92138acf3 unify checkout and resolve into update
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

unify checkout and resolve into update

This replaces checkout and resolve with a single command:

$ hg help co
hg update [node]

update or merge working directory

    If there are no outstanding changes in the working directory and
    there is a linear relationship between the current version and the
    requested version, the result is the requested version.

    Otherwise the result is a merge between the contents of the
    current working directory and the requested version. Files that
    changed between either parent are marked as changed for the next
    commit and a commit must be performed before any further updates
    are allowed.

manifest hash: 513d285d7fb775d0560de49387042a685ea062f7
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFComS7ywK+sNU5EO8RAmgRAJ96GA6qvHLy0Jp0fzUrR2os2azPuACePsdC
YBldZtA7yIuTnV2vIbn7OSE=
=QtM/
-----END PGP SIGNATURE-----
2005-06-04 18:34:35 -08:00
mpm@selenic.com
cf588a4602 Remove invalid state from dirstate
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Remove invalid state from dirstate

It's no longer needed now that we backup and restore dirstate properly

manifest hash: 74c98540d685a76bd95dd7ebf4aaeff678706952
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCojZgywK+sNU5EO8RApaEAKCXO9Tl5h8vAC7GcQyUCx+feFExyACaAjfp
2hWiAJ9+B7EQgx2BJFE9Xek=
=apay
-----END PGP SIGNATURE-----
2005-06-04 15:16:48 -08:00
mpm@selenic.com
a4d9f7b253 backup dirstate for undo
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

backup dirstate for undo

manifest hash: 2999407c1f8999e91ba0e23828cb406803b364a5
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCojXDywK+sNU5EO8RAotIAKC3P3Oz+9n/EgqkFc0UMTlUErSNAQCgpjYm
hpuZlC4lNO6aRiDfPVDL8Cw=
=DDtT
-----END PGP SIGNATURE-----
2005-06-04 15:14:11 -08:00
mpm@selenic.com
f95bf8d95c import and startup cleanups
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

import and startup cleanups

add commands:run()
add copyright notice to commands
eliminate/reorganize imports to speed up start time:

0.5b:
$ time bash -c 'for i in `seq 100`; do ~/bin/hg > /dev/null; done'

real    0m7.718s
user    0m6.719s
sys     0m0.794s

new:

$ time bash -c 'for i in `seq 100`; do hg > /dev/null; done'
real    0m2.171s
user    0m1.684s
sys     0m0.444s

just python:

$ time bash -c 'for i in `seq 100`; do python -c pass; done'
real    0m0.988s
user    0m0.771s
sys     0m0.207s

Ignoring the fixed cost of loading the Python interpreter, we're 5.6
times faster. With the Python load time, we're still 3.5 times faster.

manifest hash: acce5882a55c76eb165316f5741724c8ce4ef587
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCoihAywK+sNU5EO8RAqMdAJwMe6Ur0R9G6jjayNa5hH2C3c4k/gCeIYvc
N178vaWWGciX9zq+g5qCAls=
=buhv
-----END PGP SIGNATURE-----
2005-06-04 14:16:32 -08:00
mpm@selenic.com
cede7eda00 migrate verify
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

migrate verify

Move the bulk of the verify code into the localrepository class and move
the command into commands.py

manifest hash: 793a8d0094d56ab0a411cd11d7fe7f39c923f209
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCog33ywK+sNU5EO8RApfBAJ4mCmiMmZE1fEfbR6sA+aP1csPvqQCfXHzY
3XK7yc19AivXf5HGKEOL3eM=
=GISf
-----END PGP SIGNATURE-----
2005-06-04 12:24:23 -08:00
mpm@selenic.com
3e7e8842c6 root relative IO and valid commit states
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

root relative IO and valid commit states

do all working dir manipulation relative to localrepository.root
change the valid commit states

manifest hash: def7de4dfb4cad1fd4ef6f713fa3b5c903e05c58
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCof1VywK+sNU5EO8RArEVAJ9F/zFYqRvS2dWxOhONCm1OjEjILQCfcmDq
ARbGkSFSyVmyUSBSEq4n//E=
=qIEI
-----END PGP SIGNATURE-----
2005-06-04 11:13:25 -08:00
mpm@selenic.com
63e6cb46d3 Replace tkmerge with hgmerge
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Replace tkmerge with hgmerge

hgmerge attempts to find and use merge, kdiff3, tkmerge, and diff+patch.
hg will use hgmerge unless overridden with HGMERGE

manifest hash: 9137a620df4b235e66343b0fd0dba87fe631546e
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCoRGrywK+sNU5EO8RAi2VAJ9bh97ChGJymP/p8rvCuyNAMnk1bQCgrIGP
vYI6qlyWKQZ01ObUTAIg92o=
=+mRH
-----END PGP SIGNATURE-----
2005-06-03 18:27:55 -08:00
mpm@selenic.com
f7650114aa hg resolve: merge a given node into the working directory
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

hg resolve: merge a given node into the working directory

This is the first pass at working directory-based merges. Doing a
resolve adds a second parent to the working directory state for the
next commit.

manifest hash: 827b19995dd2d7686286da3b62c7d5fe3e0bc48c
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCoMSHywK+sNU5EO8RAnOkAJsHH9jviMJcQJ4JurFuSlrbIwKqRACdHgNC
kkfoAxX2E5jkuOeSJ1Hjalk=
=bdrT
-----END PGP SIGNATURE-----
2005-06-03 12:58:47 -08:00
mpm@selenic.com
b458eb50ea add 'm' state to dirstates
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

add 'm' state to dirstates

This state indicates that a file has been merged with resolve and must
be in the next commit.

manifest hash: dc90629b73056b671f7be3de0283039c96c9ca0f
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCoMQSywK+sNU5EO8RAuxHAKCHckvSiLwegl5hbF5x5EeQg0MA2gCcCYD+
78Ol99Y9nk5ZA2bbYgM+AQw=
=vMOg
-----END PGP SIGNATURE-----
2005-06-03 12:56:50 -08:00
mpm@selenic.com
015cc81147 make diffdir default to dirstate.parents()
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

make diffdir default to dirstate.parents()

update various diffdir users to use default

manifest hash: aeca2b9da1aca278dd5e3f27cc2906667803577d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCoMPcywK+sNU5EO8RAkY8AJ90UHQXnJnkG9PJKG7IsgPeOZ2WZACgiarS
HhS2zX3TRM9WdZHo5nLvZGw=
=7YyP
-----END PGP SIGNATURE-----
2005-06-03 12:55:56 -08:00
mpm@selenic.com
862bcc8767 teach commit about dirstate.parents()
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

teach commit about dirstate.parents()

manifest hash: 89374a15a1e680a251f1a084c18136cb27ad2b42
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCoMOeywK+sNU5EO8RAj6rAJ9NBf0401gAlzA315m7gaEPeteaewCfe6A4
Bn3nm77acgIukB1ePfK1o1Y=
=P2y2
-----END PGP SIGNATURE-----
2005-06-03 12:54:54 -08:00
mpm@selenic.com
0e2281d551 teach rawcommit about dirstate.parents()
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

teach rawcommit about dirstate.parents()

manifest hash: 776f28b896f8de8c39c9edb0956faca78c1a827a
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCoMN2ywK+sNU5EO8RAnJpAKCh5MVSMNlk1GRYPm7IOavhurYPLgCfYc9w
k4bTiV62lgoyItdmkynS1Jg=
=gVyk
-----END PGP SIGNATURE-----
2005-06-03 12:54:14 -08:00
mpm@selenic.com
f554f899b0 move repo.current to dirstate.parents()
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

move repo.current to dirstate.parents()

dirstate now tracks the parents for the working dir
add a parents command to show them

manifest hash: cd69237838c3f69f7937723c4a6803d47cb27cfa
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCoMGuywK+sNU5EO8RAg5UAKCVLUrsJtkoIOTM+e0BLqEVN3Ni3gCeNDyy
ZF8jD728cl9K7S4sIN4gX4Y=
=P4bu
-----END PGP SIGNATURE-----
2005-06-03 12:46:38 -08:00
mpm@selenic.com
34a8455a78 fix repo locking
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

fix repo locking

We've actually got to assign the lock to a local variable, otherwise
it gets released immediately.

manifest hash: d55fc8858649c59ed9fa1f8cb90b63b33a71c223
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCoMERywK+sNU5EO8RAgqwAKCPhmTOK/n5bjJ6Xh4mC9Q8mJDx4wCfZBGX
Uik+3sUcQRqgHjsP0fIjjiU=
=U1p0
-----END PGP SIGNATURE-----
2005-06-03 12:44:01 -08:00
mpm@selenic.com
2a4127e46c fix bad assumption about uniqueness of file versions
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

fix bad assumption about uniqueness of file versions

Mercurial had assumed that a given file hash could show up in only one
changeset, and thus that the mapping from file revision to changeset
was 1-to-1. But if two people perform the same edit with the same
parents, we can get an identical hash in different changesets.

So we've got to loosen up our uniqueness checks in addgroup and in
verify.

manifest hash: 5462003241e7d071ffa1741b87a59f646c9988ed
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCoMDkywK+sNU5EO8RAg9PAJ9YWSknfFBoeYve/+Z5DDGGvytDkwCgoMwj
kT01PcjNzGPr1/Oe5WRvulE=
=HC4t
-----END PGP SIGNATURE-----
2005-06-03 12:43:16 -08:00
mpm@selenic.com
7189fac106 add back tempfile import
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

add back tempfile import

manifest hash: e6673585d42d0992230d23c8334a9e26eb94d34a
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCoMBAywK+sNU5EO8RAvTAAKCwlVzxvm9enBR+xMmkj2aRMEYkkwCfXUqT
SlEdijBZ9fnktzxadp7/evU=
=uL7e
-----END PGP SIGNATURE-----
2005-06-03 12:40:32 -08:00
mpm@selenic.com
788383bd38 make pull work for multiple heads
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

make pull work for multiple heads

add repository.heads()
teach remoterepository and hgweb about heads command
teach getchangegroup about multiple heads
break apart addchangegroup and merge (cleaning up merge saved for later)

after this change, it is now possible to pull and get multiple heads, but
not possible to merge the heads

manifest hash: 86fe3ede296254698fdd4c97df02944993ef2cbb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCn8SZywK+sNU5EO8RAkSvAJ9NOA4UZ3cFyyzymlYBZnV+PpGRcACeLL+R
PFaSgJHGKvxsXpvPYiZA0O0=
=L2Xr
-----END PGP SIGNATURE-----
2005-06-02 18:46:49 -08:00
mpm@selenic.com
4a3f7fbb37 change dircache into dirstate
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

change dircache into dirstate

The dircache now tracks adds and removes directly

diffdir now makes a proper distinction between added and unknown files

Add a forget command to unadd files

Undo tries to fix up the state of just the files in the undone commit

Add and remove complain about files that are not in a proper state of
existence


manifest hash: ca0cd6abc5e119670acf11a54fefa2bc986eadf3
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCn7TRywK+sNU5EO8RAhnSAKC2oHg1HJOCGsvpUYj4SBEq0HmuJQCgr5gl
jEBTs5AFD5IhF73YAgrcnkE=
=prQA
-----END PGP SIGNATURE-----
2005-06-02 17:39:29 -08:00
mpm@selenic.com
9c2cf95fb6 merge: catch unexpected responses
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

merge: catch unexpected responses

This dumps the data received from the remote server in case we fail to
parse its output.

manifest hash: da5232649a0e02645bccd8b50665d9c3e247fdc2
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCnkMRywK+sNU5EO8RApAGAKCw7ZHF4YUaTi3ychbUe5Lr47OsCwCfUqKg
lxA/sgDmeDMbmwbV5S+Beik=
=y6TB
-----END PGP SIGNATURE-----
2005-06-01 15:21:53 -08:00
mpm@selenic.com
8f7a14f45c hg annotate: actually annotate the given version
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

hg annotate: actually annotate the given version

Bug spotted by Edouard Gomez

manifest hash: 3e29a7a8eb70b92483958ceffe94045a82899c61
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCnkF7ywK+sNU5EO8RAvvnAJsFjkpFdzQ+cPyrvQE25V16/z3dBQCeIyzf
S/N2S/RcfFd9Ca56Xvf/jAM=
=0qMq
-----END PGP SIGNATURE-----
2005-06-01 15:15:07 -08:00
mpm@selenic.com
4e26999123 hg undo: fixup working dir state
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

hg undo: fixup working dir state

manifest hash: 60fd7a5621f7c4e87c7c36097aaf11b22e7ee0b4
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCngETywK+sNU5EO8RAiC/AKChvIgy61YfOLJcTQg5BKkTLLErRgCgnJMr
+xb+XsjeNfK+83MzeuE8UOk=
=EIlj
-----END PGP SIGNATURE-----
2005-06-01 10:40:19 -08:00
mpm@selenic.com
5064b78681 Move ui class to its own module
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Move ui class to its own module

manifest hash: f75c8f9cdfe16f143ab633d0072c14ba88ac88be
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCnVxxywK+sNU5EO8RAgPgAJ48p7w4Do/saCC8WkBvHj/rdnoiEgCgrSs9
Wu1fOSgST3rn/2JpZAdFRdA=
=91tt
-----END PGP SIGNATURE-----
2005-05-31 22:57:53 -08:00
mpm@selenic.com
79bacd4c40 hg rawcommit command
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

hg rawcommit command

From: Christopher Li <hg@chrisli.org>

This allows direct access to the commit command, primarily for
importing from other SCMs.

manifest hash: bea39fa8207582c9fa7ba0904721eb5113c61cf4
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCnUinywK+sNU5EO8RAhWqAJ9PiafRbfEIA3VsO07BbGZr5adNvgCfT2k7
blYTdkrIiRzzCxn6yPq8Yu4=
=o8k0
-----END PGP SIGNATURE-----
2005-05-31 21:33:27 -08:00
mpm@selenic.com
4c466962c7 annotate: memory efficiency
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

annotate: memory efficiency

Keep track of how many times a given ancestor is referenced and delete
the annotation information after it's no longer relevant. This tends
to reduce the number of cached revisions to just a couple.

manifest hash: 281e48b67ce310e355bed1615e0f16a643850f56
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCnJjyywK+sNU5EO8RAkZ1AKCugPjkRgwVB+71amZf8H5dLCbNvgCfePIB
4FHI1c9IOEzHUNkYPDGqt+0=
=OnFo
-----END PGP SIGNATURE-----
2005-05-31 09:03:46 -08:00
mpm@selenic.com
8037bd584f annotate: deal with merges
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

annotate: deal with merges

This rewrite of the annotate code deals with merges:
- - find all ancestors
- - sort ancestors topologically
- - for each ancestor, pairwise annotate with parents
- - keep a cache of annotations for efficiency

manifest hash: b960d9b9c6a7f6ba351c97675b00a1dd3004dcf1
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCnJclywK+sNU5EO8RAphZAKCkUuHh4jEJz7YwD9uzCT76GaSR/wCfUVUQ
VbGna/9jrOAFlrB3mZ3e4qg=
=yDFy
-----END PGP SIGNATURE-----
2005-05-31 08:56:05 -08:00
mpm@selenic.com
55d14e5d8d Changes to network protocol
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Changes to network protocol

Stream changes at the delta level rather than at whole delta groups
 this breaks the protocol - we now send a zero byte delta to indicate
 the end of a group rather than sending the entire group length up front
Fix filename length asymmetry while we're breaking things
Fix hidden O(n^2) bug in calculating changegroup
 list.append(e) is O(n), list + [element] is not
Decompress chunks on read in revlog.group()
Improve status messages
 report bytes transferred
 report nothing to do
Deal with /dev/null path brokenness
Remove untriggered patch assertion

manifest hash: 3eedcfe878561f9eb4adedb04f6be618fb8ae8d8
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCmzlqywK+sNU5EO8RAn0KAJ4z4toWSSGjLoZO6FKWLx/3QbZufACglQgd
S48bumc++DnuY1iPSNWKGAI=
=lCjx
-----END PGP SIGNATURE-----
2005-05-30 08:03:54 -08:00
mpm@selenic.com
32cfa6a5d1 merge: add count of new manifests, files, and revisions
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

merge: add count of new manifests, files, and revisions

manifest hash: ff29e3124693a0172ac936fac03fd73cc91778f5
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCmfrjywK+sNU5EO8RAnHZAJ4gwnv4QUipIcP2PhyFVS1lXh9TQwCgipSi
r+6d9lUHu2U9UJGFkJPyi/4=
=Caod
-----END PGP SIGNATURE-----
2005-05-29 09:24:51 -08:00
mpm@selenic.com
afc4fce136 merge: short-circuit search for merge into empty repo
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

merge: short-circuit search for merge into empty repo

We should have 3 cases for merge:

- - we have no changesets
- - we have less than half the changesets
- - we have more than half the changesets

For no changesets, we can immediately tell that we need everything.
This happens when we initially branch from a remote repo, so we simply shortcircuit the search and grab everything from the root

When we're actually tracking a project, we should generally have most
of the changesets, so the current search algorithm should minimize
searching.

It should rarely occur that upstreams gets far ahead of us, in which
case, we suffer a longer search.

manifest hash: eabd55841b03225176ea72b985aad36431a438a9
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCmfajywK+sNU5EO8RAuyKAKCf7Nw6XSK5HEzbrZae7Q06e3dk4wCgjbK6
YUTEfkpPP1h3mNHIHRKz+aI=
=eGMq
-----END PGP SIGNATURE-----
2005-05-29 09:06:43 -08:00
mpm@selenic.com
0c92a53dcc Fix two minor merge bugs
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Fix two minor merge bugs

Fix variable name for printing manifest node
Trouble with empty between lists from remote repos

manifest hash: 000e9267b17c870f673210c8aae50d99e0e5b72b
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCmOmtywK+sNU5EO8RAs7AAJ9dVyOn5Ne+EopdUqOe8IKVH86R3wCfUhNO
CLpuRURCB5Ang19YZ5MLGeg=
=NF1T
-----END PGP SIGNATURE-----
2005-05-28 13:59:09 -08:00
mpm@selenic.com
68acd15143 Add $HGEDITOR hook and example script
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Add $HGEDITOR hook and example script

This hook makes signing commits easier.

manifest hash: ba8723e4b52323528dfa681a58658a5b4b2c02e4
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCmONFywK+sNU5EO8RAj87AKCEa5r9EepdYPiYRGo/jAjjwCIcVACfeBPe
QDInXr7karo6/P8d2bM/tVU=
=rxIQ
-----END PGP SIGNATURE-----
2005-05-28 13:31:49 -08:00
mpm@selenic.com
868bdf2214 Add manifest hash to commit messages for easy signing
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Here's an example:

This is the current manifest hash:

 e06d11165178d03c296ea7e7854f91e612a8d6bf

It was copied from the HG: comment lines that are added to the commit.
Then I wrote this commit message, signed it, then closed the commit.

The manifest hash is a hash of all the files in the project together
with the hashes of manifest's parents. Thus, signing the manifest hash
allows us to verify the entire state of project at the time of the
commit.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCmMrcywK+sNU5EO8RAoKwAJ4gPz2dI1Xh44N3tra43clUGhLVggCbBxuu
8pBZt85SA9ty39+e2+hL9WI=
=t/xS
-----END PGP SIGNATURE-----
2005-05-28 11:48:00 -08:00
mpm@selenic.com
57a99c80af Change hg: protocol name to http: and http: to old-http:
hg: will continue to work for a bit
old-http: will be phased out soon
2005-05-27 12:26:14 -08:00
mpm@selenic.com
3d6a44cc6c trivial tweak to merge3 2005-05-26 18:20:24 -08:00
mpm@selenic.com
f86593199d Make undo and recover friendlier
Add them to the help display, have them report failure
2005-05-26 09:48:50 -08:00