# 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
===================================================================
# HG changeset patch
# User thananck@yahoo.com
# Node ID 7a240687674e6cf5a8dfd45973d7e3978b89af79
# Parent 4309b0a5a6010dd2e5811b77d2bc29a51acf290f
Output file of 'export' is opened as binary (other OS)
# HG changeset patch
# User Bryan O'Sullivan <bos@serpentine.com>
# Node ID 059c6e42fc4221816e26a72bef8cf780891989ca
# Parent 4309b0a5a6010dd2e5811b77d2bc29a51acf290f
Demand-load most modules in the commands and ui modules.
This improves response times for a number of simple commands, as the
Python interpreter doesn't end up loading modules that it never uses.
There's less benefit to demand-loading in other modules.
# HG changeset patch
# User Alecs King <alecsk@gmail.com>
On Sat, Jul 02, 2005 at 02:11:34PM -0700, Matt Mackall wrote:
> On Sun, Jul 03, 2005 at 12:49:27AM +0800, Alecs King wrote:
> > Hg is really very nice. The only feature i miss from git is the
> > whatchanged -p, which shows a diff along with a changeset.
> > python before, i just dig into the mercurial/commands.py a while and
> > see what diff(), dodiff(), export(), show_changeset(), log() would
> > normally do. There might be one thing or two missed or wrong. But here
> > it is: a '-d' option to 'hg log' showing the diff info. You can use 'hg
> > log -d' to show the whole history with the diff or 'hg log -d <file>' to
> > show that info of a particular file. And also works with the '-r'
> > option.
>
> Let's use -p. We're going to be combining the global and per command
> switch namespace shortly and the global -p will disappear.
Okay. '-d' changed to '-p'. Just like 'whatchanged -p', now we have
'hg log -p'.
> Also, the argument list for show_changeset is getting a bit unwieldy.
This time i remain show_changeset untouched at all. Only changed some
bits of log().
# 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
-----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-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] Parse and use header data from an hg export'ed changeset
From: Andrew Thompson <andrewkt@aktzero.com>
This should make it easier to import changesets that are hg export'ed
from other Mercurial users:
Add a routine to catch the user from an hg export'ed changeset.
Add user to commit call.
Add trap for changelog snippet, which is promoted to the beginning of
the commit text.
manifest hash: cf5b068f4cec411ff8b9fa3db324ab44ed012778
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCyMXAywK+sNU5EO8RAqk5AJ9rC4ZwzcpDfxrNqIBrrTj6eL2mzQCgmZ5O
wSkis2J9Xz2wOZAhjVcxIgQ=
=32D+
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] Get "hg serve" to print the URL being served
From: Bryan O'Sullivan <bos@serpentine.com>
If invoked with verbosity, print the URL at which we are serving.
Useful if you bind to any port with "-p 0", and need to know what port
the server is listening on.
manifest hash: d317225606fbd2ec5819e1f266575b0485dfba79
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCyL9hywK+sNU5EO8RAjFQAJoDBRl5VoGIklxA1PdFGCt8Jb3iMQCeILeD
XAwnnSCy/IQ/MDfYf6z7oWI=
=FNVC
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Add globals to templater/fixup RSS
This removes a bunch of duplicate header() and footer() bits and makes
url and reponame available to all templates.
Fix up RSS bits to use url
Fix strftime call
manifest hash: 63e616e4c7f517a630d80429336817d64e900b68
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCyLlRywK+sNU5EO8RAj9IAJkBDzMQaOwRmF0q8tRmVRnzHCjShACfSTCj
dbfAWg1crv/mUuRZlWL6Tc4=
=Z331
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] Add RSS support to hgweb
From: Goffredo Baroncelli <kreijack@libero.it>
with the two small patches below, now hgweb can act as feed source.
Two kinds ofobjects can be tracked: the changelong and the files. This
can be useful if anyone would track the changes of a file ( and
because git has it, mercurial have to has ).
To check the changelog the url is
http://127.0.0.1:8000/pippo.pluto?cmd=changelog;style=rss
To check a file ( the mercurial/hgweb.py for examples ) the url is
http://127.0.0.1:8000/?cmd=filelog;file=mercurial/hgweb.py;filenode=0;style=rss
The first patch adds a new filter for the template: the filter is
named rfc822date, and translates the date from the touple format to a
rfc822 style date. The second patch adds the templates needed to
create the rss pages.
Tested with akgregator ( kde ).
[tweaked by mpm:
add Content-type: text/xml
add support for URL to header()
add header with link and content type
add RSS links on the normal pages]
manifest hash: 170c03d50490d7160097f59abdde1a5073d2ba82
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCyFmLywK+sNU5EO8RApkrAKCYF/vZ3DwdMXPBds2LxGEX8+tK5QCfTeOc
ZhPN8Xjt2cD3wMbNXMcoNSo=
=COlM
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH 4/5]: cleaning the template parent management in hgweb
From: Goffredo Baroncelli <kreijack@libero.it>
Now the patch remove every use of the tag p1/p2/p1rev/p2rev from the
code ( even+the ones not used ), replacing everywhere with the tag
parent ( even where the previous +tag are not use ), so the
information to the templates is still given.
manifest hash: ede1f299e9201fdad2ecf48e63314350acbb047e
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCyEqxywK+sNU5EO8RAjc5AJ9o8AU6/YRuERblO/0kgWwDN4rqQQCgkVj/
UBtzW5x0yD65mK6rb4f+bQk=
=07yG
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] use <arpa/inet.h> instead of <netinet/in.h> for ntohl/htonl
From: Jed Davis <jdev@panix.com>
This fixes the Mac OS X build problem; hopefully it won't break any
other OSes, especially since SUSv3 says arpa/inet is the right header.
( http://www.opengroup.org/onlinepubs/009695399/functions/ntohl.html )
manifest hash: 2f06ff0cffefdb35e794131afcd1f34f9fdfa5cf
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCyEoFywK+sNU5EO8RAk6WAJ9v/pnr07zUXKM9EBQQGaKSZAlhxACdHrwS
XTLSL6pPGAwaRfExGF2A3DQ=
=Rtv9
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
A bunch of parsing/help updates
more explanation of how to get non-basic commands
shorten names of debug functions and add docstrings
add undo long docstring
promote anotate, export, and revert
make the global opts array global
refactor parsing
kill two unused arguments to fancyopts
update test-help
manifest hash: 459ae2273aaf54f71b4576677a681dc53ab2908c
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCyEDhywK+sNU5EO8RAr0DAJ9LTu8Fc2quLRtuwLPTQzWqlOJWKwCbBpZk
pnMkYnshsutVYljcil1P46I=
=Sleg
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Shorten help
Basic commands are now marked with "^" in the table
only basic commands are show in hg help by default
copyright banner not displayed with help by default
manifest hash: 7337678588354ca669a3b13d1fbb0ad893563947
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCx9LNywK+sNU5EO8RAokCAJ9ZK2sGEto9RLyukFX+n0nzHRoB9QCfU84I
e+Evc2g91kSS92FPrIC+Hnw=
=yUmt
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Restructure option handling
This allows global options to appear before or after the command name
Also includes a patch from Andrew Thompson <andrewkt@aktzero.com> to
catch invalid global options.
manifest hash: 2a1285c0caf04ae79dca10cb899d183d84a6f3d4
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCx80cywK+sNU5EO8RApJSAJ9U6ijOIbMDAd4lcahY6dXCTPcsNACeKuNT
iVhCp9IvacwwuHjAFXsLJEQ=
=Q9Qe
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
options: kill -d for debug
You must now use --debug.
This is a preparatory step for changing the option parsing from:
hg [global-opts] <command> [command-opts]
to
hg [global-opts] <command> [global or command opts]
manifest hash: ec5ecc687340baa109a98b742f1cd8d1f4aadeed
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCx4urywK+sNU5EO8RAl90AJ0fwKU/GwHpJvlTFl5naeJbkceWewCgh4jK
kaTSSodACgPzgbFiid5RL4Y=
=siEe
-----END PGP SIGNATURE-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] New export patch
From: Bryan O'Sullivan <bos@serpentine.com>
Modify export command to accept rev ranges and output file spec.
It can now export a range of revisions, and print exported patches
to files whose names are generated using format strings.
manifest hash: e0085c205cdc31a168bcd25c85772ef00d53031d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCx02iywK+sNU5EO8RAtCKAJ0V2K9+i1OGa27KyC5/nq3m+OdvtgCgpnav
3vfEODMzJVOZoJt9wzI1UCg=
=YAdI
-----END PGP SIGNATURE-----
-----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-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
transaction: nullify journal after close()
This keeps us from trying to cleanup in __del__.
bug spotted by K Thananchayan <thananck@yahoo.com>
manifest hash: 1f4c5fa43d2458cdcb6ec0f0a7066b3c3e699f33
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCxwQ6ywK+sNU5EO8RAuGhAJ9+BnKILwRCF9EKlPTz2zptiysQ/QCgsB3s
VKIehiStv+ibWQQi15k4mwk=
=nZD1
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH 3/5]: cleaning the template parent management in hgweb
From: Goffredo Baroncelli <kreijack@libero.it>
the filediff template use the old style p1/p2 and p1rev/p2rev
inteface; the patch removes this old stuff, and update the code to the
new style
manifest hash: 29536b6ee71f03a48bceb7336040070ecd0d2b9e
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCxvplywK+sNU5EO8RApW4AKCrTLHofr8jELtvNRpoNJHc0sjEfgCfaY2q
/H96T6BMMXA4VLFVxzOBHCo=
=u4El
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH 1/5]: cleaning the template parent management in hgweb
From: Goffredo Baroncelli <kreijack@libero.it>
the template pages contain two entry named #parent1# and #parent2#;
this is no +good because with the template system implemented in hgweb
both the functions can be replaced with only one entry named
"#parent#". The code in hgweb will replace this tag with the
appropriate number of parents (+one, two... or more if and when will
be used ).
The first two patch perform this change in two step:
1) change the code to manage only one entry ( #parent1# )
2) remove any reference to #parent2#, and change both the code and the
templates to rename #parent1# in #parent2#
the last three patchs are clean-up.
The patch are five
- - patch #1:
- - clean the code in order to ignore #parent2# and use only #parent1#
hgweb: chanage the parent1/parent2 code managment
manifest hash: 6ba707904edf176c7269f2d9b80502902e6934c6
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCxvivywK+sNU5EO8RAkotAJ4vbR0KE+Jem20rQbaJxy8NRFeyJgCdHy2M
hxmeD9erv17BrSKLGd5QAQI=
=Or/F
-----END PGP SIGNATURE-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] Make ui.warn write to stderr
From: Bryan O'Sullivan <bos@serpentine.com>
> Someone is probably using ui.write instead of ui.warn.
Actually, ui.warn uses ui.write. So hg never prints to stderr right
now. Here's a patch to fix that.
[mpm: add sys.stdout.flush()]
manifest hash: c09c645a5985b640a7ad884afb0eeb11fcffbb19
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCxcEaywK+sNU5EO8RAhWUAJ9vVteAodKC9zIhIWUuPqVl2d915QCePp5S
asuv62w4Zv+o0gB3SoucYdQ=
=NYrs
-----END PGP SIGNATURE-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] hg clone stored path fix
there is a small problem with hg version bbdec6f875a4+20050701. when i
clone a repository (on my local system), the path of "parent" repo
stored in the clone repo is not correct.
here is more details -- i clone a repo named "xen-today" with:
hg clone xen-today/ test4
then file "test4/.hg/hgrc" contains:
[paths]
default = /home/aq/projects/hg-xen/xen-today
Signed-off-by: Nguyen Anh Quynh <aquynh@gmail.com>
manifest hash: 6ec2f059907fd5544e40c9e78284271d52eeb23f
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCxXeyywK+sNU5EO8RAru1AKCVeqGqLrbLn8Zonr683jNlVx+FoACdHoll
B2+uEV33zpxWUj7fcntYJVk=
=SB49
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] bdiff/mpatch under MSVC
From: K Thananchayan <thananck@yahoo.com>
MSVC (6.0) environment does not have 'stdint.h' and does not provide
`inline' qualifier. The following patch is needed to make mecurial
installable under MSVC.
manifest hash: a5b64235acced16cb451faa698922559fec4e573
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCxPapywK+sNU5EO8RAmRnAKCt9cOASaIsYB6kNUDSIStR1DmY4gCgnXlL
Jf0nMmGEkoyXtB0eV+fLzJU=
=fKD5
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Add multiple keyword search to hgweb
People kept pestering me about this one. Now it's done.
If you type a tag/id/rev in the search box, it takes you to that entry
in the changelog.
If you type some other random keywords, it does a case-insensitive
search through the history and returns the most recent N items.
It's not super-fast, but it's serviceable.
manifest hash: e8fa980dee92cf78c04051d3028da9b07a45f3de
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCxO6JywK+sNU5EO8RArAwAKCq+9qO/OL0mQxa1J7C77Z6AcZoWgCfbiDC
AZ5KllldwBtdRRREn7HH6go=
=sIy0
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Add an empty line after description in verbose mode of show_changeset.
This makes it a little bit easier to see where a new changeset starts.
manifest hash: dd0dc3a135ca2fabed03b86116863c93a451670d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQFCxOVgW7P1GVgWeRoRAjtdAJ9B/ECd/Rhws2Bd+IcwRyqcYEN0ugCfbug2
Uhy2yUhV+mlrqFkoNBkcOmM=
=ttyp
-----END PGP SIGNATURE-----
-----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-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Deal with failed clone/transaction interaction
> What is happening is that something in the transaction machinery is
> causing the directory to be completely recreated.
The transaction gets rolled back by its destructor. This is critical
so it happens whenever an exception occurs that unwinds the stack.
Unfortunately, what's happening with clone is we're trying to delete
the directory during exception propagation. And a reference to the
transaction is held in the exception backtrace stack frames so it
still exists until the exception is completely resolved.
So there's no way to do the directory delete inside the exception
handling cleanly.
But we can handle it similarly to the transaction itself: use an
object with a destructor.
manifest hash: fc38550a20d64d08333f256bbedc312493c1390b
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCxDT2ywK+sNU5EO8RAjikAJ0Tej56rAutxQDfYzVbFGtT1sEC5ACgmVds
/fwdQyHn+FwshugqXLemUaM=
=3f78
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] Perform clone in place
From: Bryan O'Sullivan <bos@serpentine.com>
This is a rewrite of one of my earlier clone cleanup patches. This
patch only does one thing - make clone operate in place. It depends on
safe-clone.patch.
Don't have clone use os.chdir. Instead, do everything in place.
manifest hash: cf7cf24f8fa1120b609b0beee4281bc236e484c0
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCwxxJywK+sNU5EO8RAjnlAJ44B1jhFvuYF3uNDH6qWDKaqgURuwCdFeFo
Y9tjLx6TLCBWT146h21YEGA=
=E1n/
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] Force "hg clone" to always create a new directory
From: Bryan O'Sullivan <bos@serpentine.com>
I just screwed myself by typing "hg clone foo" without specifying a
destination directory, and after I was done mopping up the mess,
concluded that this is a dangerous mode of operation that has no
practical value.
I've thus modified the clone command so that it always creates a
destination directory. If none is specified, the destination is taken
as the basename of the source.
hg clone foo
-> error, because foo already exists
hg clone http://www.selenic.com/hg
-> new repo, named hg
hg clone ../bar
-> new repo, named bar
manifest hash: f21ed8f805a60c1326d99220772e1574b0870d6c
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCwxsIywK+sNU5EO8RAgooAKC3IL6vKyADb9s2qqqi4GMw2Z7asACbBtE/
TvPgwGtIiB2GC+N+V7r1VpI=
=uTcK
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] replace history with log
From: Radoslaw Szkodzinski <astralstorm@gorzow.mm.pl>
Merge hg history into hg log leaving the first as an alias
(tweaked by mpm: update docs, tests, use existing alias mechanism)
manifest hash: f85001a4373b8b823a6221ba5c506628059d6779
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCwSr1ywK+sNU5EO8RAmbAAJ9HlFkf8/qLOAQUtj8CWxGRPEyzVgCgtXwP
SdnAg1a2q4693+TBiOjrimY=
=w9rf
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] Harden os.system
From: Bryan O'Sullivan <bos@serpentine.com>
Add util.system function. This is similar to os.system, but will
either succeed (if the process finishes with a zero exit code) or raise
a util.CommandError (if the process exits uncleanly or is killed by
a signal).
Add util.explain_exit function. This tends to be ubiquitous in code
that calls other processes, and must describe what has gone wrong.
Change some uses of os.system over to util.system.
manifest hash: e3bf4adcac5b915432ec0af00efdbcef86bea4b1
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCwSipywK+sNU5EO8RAr0RAJkBDt8XQ7mYQAWNHNgTOVt1eyWU1QCfe1oO
2OwxyWqpbRNACVJHHfZ3/Xw=
=OaRX
-----END PGP SIGNATURE-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Fix troubles with clone and exception handling
Clone deletes its directory on failure
This was deleting the lockfile out from under the lock object before
it got destroyed
This patch shuts lock up and makes the cleanup code for clone a little
cleaner.
manifest hash: f666fddcf6f3a905020a091f5e9fd2cb5d806cdd
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCwSGOywK+sNU5EO8RAkx2AKCIxPczl9YWnuUM+bMQnpVr8kv6uQCeNWld
SUxSB99PGJHhq1LWFaSJJNw=
=Frk/
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] Clean up destination directory if a clone fails.
From: Bryan O'Sullivan <bos@serpentine.com>
On Mon, 2005-06-27 at 16:27 +0800, Soh Tk-r28629 wrote:
> Hg clone left the dest directory if the source isn't valid.
> I think it should either validate the source before mkdir, or do a
> rmdir to clean it up.
Good suggestion, thanks. As validating the source in advance isn't
really practical, I opted for the latter.
manifest hash: 1508afddd2402142f9d8b2387652d4cb28ccc1f5
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCwRGPywK+sNU5EO8RApBOAJ9Fj22MP3pYJhxWsj8BYbcgWzIOKwCff9yC
lX87RrDKicM1W61lBpQl20w=
=efck
-----END PGP SIGNATURE-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Make show_changeset show added/deleted files only in debug mode.
This was necessary due to performance reasons.
manifest hash: 35af5e8ff88a8706406fc8c42251ada79c7c9549
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQFCwOUkW7P1GVgWeRoRAvB5AKCJ9x/P3XOJVlQnCoh8cblnye+9RgCgkXLW
7Bt8/5yhPnsejYIGUMnppgo=
=DNsf
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Remove stdint.h from mpatch and bdiff
It's only there for ntohl and htonl and should be pulled in by in.h.
manifest hash: 65954290279241ac92c9ce04c21cf1a3c9dd54e0
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCwD8KywK+sNU5EO8RAhv2AJ40R/T72XK63IbeEFqMLSRJbRJWdACcDa9r
dOL9XpyYxR09REbAHw0JrlE=
=8wkZ
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Minor speed improvements for bdiff
Consolidate the jpos/jlen arrays to improve cache locality.
Do the same for the hash head/length arrays.
manifest hash: e6d9ed36782741b1d6fcce8c2d00155a9540e81d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCvzWxywK+sNU5EO8RAlTMAJ9+yl0dKIeWv4RegeLy7g6wcnoYwgCgk6la
ip6KEAyBb7ktsX14KyZ5+/s=
=utNJ
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
extensions: use stdint.h
Not sure why I didn't do this the first time around. Hopefully still
builds everywhere.
manifest hash: 965582286a190728f8cc0dfb8e11ee56628a59a5
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCvfRgywK+sNU5EO8RAg9SAJ4/ZVpQZcDY5xovLDTZK2txEegEgwCdF2b+
lzSIP109qq8D+KIdUWsbEPc=
=+0Yy
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Fix up version module name and command conflict
This unties the command name from the function name
manifest hash: 926d097f75cbb5eb2464bb253e9a89050c6208bd
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCvRLnywK+sNU5EO8RAvryAJ9RU0PLFOXjjtQjs8UVyOC9wde69gCgrV+G
8jYfMyWwvwsmOM7wMblPGqM=
=Acyk
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] /dev/null for other OS
From: K Thananchayan <thananck@yahoo.com>
Null device name is platform dependent. Introduce util.nulldev
- - platform dependent constant and use it instead of '/dev/null'
manifest hash: 95a1bfdb712c53ef97aaff73f7f4c87e9299cf59
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCvQCGywK+sNU5EO8RAiRBAKCcXasCCFT2+6wgklkgqIt4l3UwugCeKWii
h/8iRYEw8Rp8B67abiFiwyY=
=L3Mk
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
add dirstate debugging commands
As I've played with various different merges and more recently
rawcommit, I've found the following patch to be very very helpful in
figuring out whether the dirstate is being left in a consistent or
inconsistent state with respect to the current manifest.
I attempted to deduce the invariants that were assumed by the current
code, and then check it in this code.
I may or may not have captured the design intent in this check; if not,
I'd be very happy to hear more clearly what was intended, so that I can
write tests to that expectation.
Anyway, here's the patch. Not sure if it's a good idea to commit it to
the mainline, or just leave it as a debugging aid. I attempted to
package it so that it doesn't interfere with normal usage.
Michael Fetterman
(tweaked by mpm: remove -d magic)
manifest hash: 869f5b5f954dc0f46ba27322359e811d5e21d71c
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCvP77ywK+sNU5EO8RArmtAKCCVuI2slANzWZ26P5edtH/ixdwNwCfZLWl
5P+V+C92II3usO4YW2MULKY=
=/Pv4
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hg import error checking
From: Chris Mason <mason@suse.com>
hg import wasn't checking the return value of patch
and wasn't making sure the list of files collected
was unique.
manifest hash: 85b2a0f0602cfff6ba6a61128a50d79d7fb6e1c7
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCuym/ywK+sNU5EO8RAlwSAJ48h8hHi3JMNwrVq0CXIfgMCTGRRQCfSfpP
9kHam+Rt8tra46lCQ4d27G4=
=P00x
-----END PGP SIGNATURE-----
-----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-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Use __inline instead of inline
This should let us compile bdiff.c on the other OS.
manifest hash: c1233bb3c7fc060e49dbd2597c122d903797db9e
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCuu/WywK+sNU5EO8RAtqvAKC0d8Kv8He6xNCwmFnvKcff9BT4gACeLq7n
9JDFxYtWMrgjwlShfay1nL4=
=GDFt
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Commands cleanup
move patch function to import_
strip underbars from function names in help
remove debugaddchangegroup and debugchangegroup
remove -q option from import
remove some aliases: ann, dump, dumpmanifest, merge, resolve
add rm alias
manifest hash: a3259c52d69be93e272b336098ab8549ec1922bb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCulc9ywK+sNU5EO8RAvLqAJ0fIvuSCYZgXUBubBREL7dfg5y/yQCglYte
AwWOEQJoLGHXbpvPYI1uljo=
=hQeO
-----END PGP SIGNATURE-----
-----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-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Add bdiff.blocks / minor performance tweaks
This refactors bdiff.bdiff so that we can get a list of matching
blocks of line numbers for use by annotate/unidiff.
Minor performance tweaks:
- - add a field for equivalence so we can keep h around a bit longer for cmp
- - mix len into the hash to reduce collisions
- - move an operation into the slow path in longest_match
manifest hash: b1aee590b6291b31069ea8a86b6aa8fb259ac244
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCubu2ywK+sNU5EO8RAm4FAJ9r10aJpT7qA96nqGYFHcuy4XcIHgCfeFx5
q0PyTXeZQc7Fw5kwEPcoykI=
=QXSb
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] Enables lock work under the other 'OS'
From: K Thananchayan <thananck@yahoo.com>
os.symlink is not supported under Windows. This patch
introduces util.mklockf, util.getlowner that use
regular files under Winodws but symlink under unix.
tweaked by mpm:
- changed function names
- fixed to work on UNIX
manifest hash: 6f650a78a3b203dcad2f861582500b6b4036599a
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCuN5sywK+sNU5EO8RAva8AJ9L9z/JHRAJS1bix48ZzSpn9ZUyPwCffhmg
UfLSFBmd5tPDDi3mgsrdDEA=
=ZYS9
-----END PGP SIGNATURE-----
-----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-----
-----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-----
-----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-----
-----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-----
-----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-----
-----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-----
-----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-----
-----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-----
-----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-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] Unintuive use
From: Vincent Danjean <vdanjean.ml@free.fr>
> 1) "hg pull" does not tell what and if it does something.
> 2) hg does not tell if the data have been merge or not, if we have to
> call resolve, ...
Here is a patch for 1) and 2). It also add an option to 'pull' to call
update if there is something new.
Tweaked by mpm:
- change message style
- use ui.status
- change option from resolve to update
manifest hash: a61a7af00ef2f33867f6c88f95dc8258cb1a3e51
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCuMcpywK+sNU5EO8RAucjAKC06gwAico7Wz5YOcp5u9NVxEhItwCfcIzA
VmiifZTj5ZUjTTcPhmiKh2M=
=rbLT
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] rawcommit fix again
From: Christopher Li <hg@chrisli.org>
Rawcommit need to allow no argument when using file list options.
Chris
manifest hash: 049977598f355ad9e54eeb18f8831fc4c1fee36d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCuMR9ywK+sNU5EO8RArXFAJ98iZaSIzsc0KBgtMW5v4yVuWfpZQCdH2yQ
bYOgCTRNapYqq5YtnOHfErk=
=1Poe
-----END PGP SIGNATURE-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Make it possible to specify a version number in setup.py.
manifest hash: 905feb305205801eb3833e5a84161fb57b83c86e
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQFCtc/QW7P1GVgWeRoRAlCaAJ9G2GRf0wIEVEbYNoV4PjV4b024bQCfcUFf
WVYQlTXqninDXyKas2yQYdo=
=ofg/
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
remember_version() only writes version if called in a Mercurial repository.
forget_version() resets version only if remember_version() wrote it.
manifest hash: b30df9d93c233f4bf07150cc5067f294a98c16f4
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQFCtXFiW7P1GVgWeRoRAgkjAJ9jkwCAHf3yJyDI8R582XjNFNFeWgCZAe27
iqGPYzrRErf6gPKZcoBMsD4=
=t2Bx
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Show revisions in diffs like CVS, based on a patch from Goffredo Baroncelli.
Changes from the original patch:
- - Use 'diff -r ...' instead of 'hg diff -r ...' to support filetype detection
by at least file(1) and vim.
- - Adjusted tests for this change.
- - Some cleanups.
manifest hash: 5f37d1ef75ea7f4e48b53f02371053ba54fb70f8
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQFCsyZzW7P1GVgWeRoRAqczAJ479lR9Z289sP+VH5L+N7pQRU14SACfUueq
88ABloIR3VyRIa4qbujnZio=
=Vva9
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hg init: add -u flag to update
From: Andrew Thompson <andrewkt@aktzero.com>
I was trying to get init to run update by passing an option. The basic
part works, but if you use the -u option, you have to specify the
changeset number, tag, or tip. Anyone see a way to make this work easier?
(minor tweaks by mpm)
manifest hash: 9e39e822693e1f175cd5e02a8d4a984d82afbd92
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCswJaywK+sNU5EO8RAuILAJ42ZVtnHnlbq/xz6SxhaWLtI4KZ/QCgqS6F
6EDjkfy1F8dmBTf8Ob3ac/s=
=f3WC
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hgweb: pull cgitb into CGI script example, where it can easily be disabled
This also eliminates cgitb dumps in the logging output of hg serve
manifest hash: a0aa07a706c2c388c0b49505e2960197f716920c
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCsv9DywK+sNU5EO8RAieFAJwOjdfkz7pILNVUTvpMkRa6/OIhIQCgo2TP
I2E4hxQ0N7mTtl45pXEFLsk=
=tG0v
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Improvements for hg identify:
Don't add the modified flag if unknown files are found.
Remove extra space if there was no tag found.
Multiple tags for a single parent separated by '/'.
Getting rid of sum() to aid porting to Python 2.2.
manifest hash: f91224afcb239908ba3ef02299fcf2b0380ebd1a
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQFCspWvW7P1GVgWeRoRAnqbAJwL1DIzOxOrdqpPj9vsYJeeiq+VrQCcCyli
P+b/S0s2n628ku1IfrW3Elo=
=lgRY
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Ancestor algorithm fix
The ancestor algorithm was a bit too optimistic about node ordering
still. Add revision numbers to the comparison to sort things out.
manifest hash: f4eaf95057b5623e864359706dcaee820b10fd20
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCsTrCywK+sNU5EO8RAtqMAJ9fEJEesPn+0SMg/i/g5vZYmX/pBgCfVnhl
+s88q/Wilw27MVWP6J6oqX8=
=k9AU
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Change the size of the short hash representation
First note that this number doesn't really matter, as we always check
for ambiguous short hash ids.
Here's the math on collision probability:
>>> import math
>>> def p(f, n): return 1 - (1 / math.exp(n**2/(2*f)))
...
>>> p(2**32, 30000.0)
0.09947179164613551 # with 30000 changesets (BKCVS), we have a 9% chance
>>> p(2**32, 65000.0)
0.38850881217977273 # and with a full import from BK, we'd have a 39% chance
>>> p(2**40, 1e6)
0.36539171908447321 # we'd like to be "safe" for 1M csets, so 40 isn't enough
>>> p(2**48, 1e6)
0.001774780051374103 # But 48 looks good
>>> p(2**48, 1e7)
0.16275260939624481
>>> p(2**48, 5e6)
0.043437281083569146
>>> p(2**48, 2e6)
0.0070802434913129764
>>> p(2**48, 3e6)
0.01586009440574343
manifest hash: 24d9f928a463f46708b0e11fb781d5a241851424
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCsQoMywK+sNU5EO8RAoBBAJwII9GV6dT9QUOYAk3gZGw9z0JvjACfSI4q
IFnTu1F7P5OuLelO1GsM8Bs=
=CNWk
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hgweb: fix deleted file in changeset key error
We simply point to nullid. This is very arguably the correct thing to
do.
manifest hash: c16f1c05a087e5d3274cb84dfd09d048430f0495
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCsPCdywK+sNU5EO8RAuJzAJ9j2Yn7KHceFxYgKvOd5V4fNNLKmQCfTZ9s
jorkRZcX2hdZqRkxM8q8VMk=
=+bEb
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
One too many newlines in verbose output showed up in regression
manifest hash: 184bd0353358ec24c3711420ba3c6745a688ebc9
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCsMC9ywK+sNU5EO8RAuYsAJ4wCphPRGI5omFy0VkbiQp8OairRwCcDdD2
pAR58+i+urS7MlbaDisCYUM=
=Ty7w
-----END PGP SIGNATURE-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hg import: better file accounting
From: Chris Mason <mason@suse.com>
Change hg import to call hg addremove with the file list to make sure files
added/deleted by the patch are properly accounted for. Instead of using
lsdiff, the output of patch is parsed directly to find the file list.
manifest hash: defed8cb90d6f976fb47949ac03dc4b88870ba77
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCsG1BywK+sNU5EO8RAvV9AJ9H25L5vdnZB1xpAakuN3tGuMfRfgCfdAgP
3xBc3S4F74/7DdS2GXRNhGw=
=oXXT
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hg commit: add -A flag
From: Chris Mason <mason@suse.com>
Add hg commit -A that calls hg addremove before trying to run the commit
manifest hash: d25cb3ab4e0dc2e8642bcbef32da4ab178cd4823
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCsGzrywK+sNU5EO8RAvdFAJ46ZjyACMvKEUq8RmdxZB9ZE0z6ygCfYYzq
UP2EXTOQ2pdhxKFyad8h/Rg=
=wzZD
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hg addremove: take optional files list
From: Chris Mason <mason@suse.com>
Change hg addremove so that it can take a list of files to process instead
of searching the entire tree for candidates.
manifest hash: 592d8771ea5703dd6ed4459239dab84e15ee9321
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCsGyqywK+sNU5EO8RAt0jAKCSDQ1fxgQNP08kehdxlQwX5DUuuQCgqRB2
7gZoRNyJmOy5BVp6VBmUJbw=
=THQB
-----END PGP SIGNATURE-----
-----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-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Handle the case where the current working copy is not based on a checkout.
Print 'unknown' in verbose mode and nothing otherwise.
manifest hash: 5742c3c3a762b77ee1aeb62ed53b8f2d8e47a05d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQFCr8WJW7P1GVgWeRoRAtNkAJ9Qea4u8GG8zdSk87qLApT88KMrgQCeO22w
bJ12ieVHvLzc2NNAGV+zbeQ=
=IYni
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
default path support with .hg/hgrc
hg init creates a new .hgrc file containing a default path pointing to
where we pulled from. hg pull now uses "default" as the default source.
manifest hash: 0908e3b0648f92a63a3b58e49107cedf07ca0fb4
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCr5SBywK+sNU5EO8RAmvRAKCPdItvtxYyAOgG24732J7PZMFnVgCfe21B
MoilYzCQi5GOswS2mk0aE6M=
=Gude
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hg rawcommit: fix files arg conflict
I try to sync with tip again. I found out the raw commit is broken for me
because the keyword "files" is list as named argument as well so it will
not show up in the rc dictionary. Here is my quick fix to make it work
with my script again.
Chris
manifest hash: 10f85636e02cb4b19b319b7ebbfd2ec5096c3a6d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCr1HSywK+sNU5EO8RArWMAJoD67SPN4QJcVaHBVh9FiNXWy80FQCePpA/
BZ63h+bqXESeMMLb7Kh5ytA=
=69X0
-----END PGP SIGNATURE-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
mdiff: fix the fix
I saw you check in the thing back in but with another typo.
You check in "la < lenb", should be "la < lena".
So we are even :-)
Chris
manifest hash: 57157502250b0120bcc12a75a530d4c133673b39
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCrg5tywK+sNU5EO8RAvLPAKCOs76LKPniKHFa15YwzWWsNZ5/xACfesl3
WCiUjdeYUtU3jVKCEwmjAT0=
=+GFy
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
mdiff: reinstate new algorithm
This unreverts the new algorithm with a fix from Chris (s/len/lena)
and adds some comments on what it's doing.
manifest hash: 75fc1acee1926e57d495f67a44cd88d9555f2356
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCrf4UywK+sNU5EO8RAoRzAKCA2vpUAGNqTkDeba3YHo6XXht7VgCfXQK0
/j5yv5cucnsYezCdclpftOA=
=FNMD
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
lazyparser speed ups
When we do __contains__ on a map, we might as well load the whole
index. Not doing this was slowing down finding new changesets quite by
a factor of 20. When we do a full load, we also attempt to replace the
revlog's index and nodemap with normal Python objects to avoid the
lazymap overhead.
manifest hash: 9b2b20aacc508f9027d115426c63a381d28e5485
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCreYIywK+sNU5EO8RAoNHAJ9+LmXqsTQb9Bh3mZHq0A0VfQOleQCffHmn
jC/O0vnfx5FCRsX2bUFG794=
=BDTz
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hgweb: Fix reloading of index
We were reloading every request because we weren't saving the old
mtime.
manifest hash: 507330727957ff53c48b38f427f0b70469a49271
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCreVpywK+sNU5EO8RAp/YAJ9cXh2II4DGAQtRc58yj4hi49C8jgCfT7bV
22w73T2FiYBjzMk8N8STUVI=
=eghX
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
stopgap hg push support
This does hg push by running hg serve and tunnelling it over ssh to a
client at the destination doing hg pull.
manifest hash: 552607f1e8bea238b4c585209af93f0594121dd1
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCrP8NywK+sNU5EO8RAmGJAKCJ9kQSz6Bs/4cYCvKU7TpDXPHSbgCdEE1X
FfZe2y2xtgSeHQa/uZLqEBQ=
=KlPp
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
mdiff: revert grouping optimization for the time being
This had trouble with Ted T'so import test while the original didn't.
manifest hash: e2fc49b5277096bd4c5081558af5efe9964d5310
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCrHzXywK+sNU5EO8RArocAJwKlxrnyVpdYaKzgJG/b4gSVOYBTwCgkl2t
zD807fsMULRDdDe1k9jVPcU=
=Iivz
-----END PGP SIGNATURE-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hg patch: add default commit text
I was doing some benchmarks via hg import and found a few patches where
the commit string ended up empty. hg would then try to prompt you for the
commit string. The patch below forces a default string based on the patch
name.
Signed-off-by: Chris Mason <mason@suse.com>
Modified to only be added if there's no commit text - mpm
manifest hash: 35da46e3832a98e2d288604e6be8c82e85405ef8
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCqg+/ywK+sNU5EO8RAqCIAJ4/Nj6c3MusY3HyD8HeHjqc+GlFMQCbBWA5
HhCmOoJuL5Uoz7WlGPlpumw=
=M3/j
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
add easy profiling support
Now you can do hg -p [command] and it will run it under the hotshot
profiler
manifest hash: fcad346798243ad2434bc5458ed8d3456707c599
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCqgqYywK+sNU5EO8RAp9BAJsFI7iUWYEMvXWYaVt4VmrlOF3enwCdEFRJ
l/EZmMLecbfQcbbh5oo0yHs=
=voa0
-----END PGP SIGNATURE-----
-----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-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
revlog: allow duplicates
If two branches make the same change to the same parent, the result
will be an identical hash. Git apparently does this all the time. Deal
with it gracefully.
manifest hash: c6217eab4b310e1ae529dd75ab90e717dbe5d55d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCqU61ywK+sNU5EO8RAkFqAJ9KhWUQgjZbzzB/+mTkolH0GkT1awCfa+Mj
ulbI4xCRZcvfQE492mcNwQA=
=N6In
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hg help improvements
Handle showing option help in commands.py rather than fancyopts
Show getopt exception string if argument parsing fails and call help
Show help for invalid arguments
Show exception string for invalid arguments with -d
manifest hash: 9bd3e908cc080c21bb5e85822f675c35a8396fef
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCp8GNywK+sNU5EO8RAoJfAJ4pB0I4xH4CTuGmAwArfBzIsT9plACeImkm
4ml9x78fmPgKpDYIr/qhfVY=
=YeZv
-----END PGP SIGNATURE-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
replace hg branch with hg init [source]
This does the hardlink trick if both repos are on the same filesystem,
otherwise it does a pull.
manifest hash: 780a3a0aca6e4a535909c6221ee94394701ec1c9
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCp5anywK+sNU5EO8RArdDAJ9Tiia0YZmZ6xiTYdKhZJ2UZY8V5wCfeoPy
DamQ2Zyz3yTjNqu4ge0CuRQ=
=EXv5
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hg commit: add -t and -l options
This lets you specify commit text on the command line or point to a
file containing it.
manifest hash: 38201933edb1a89a5c3e0054d1b733cc4af46880
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCp40yywK+sNU5EO8RAgirAJ9ZAkfN+RyhPQGJBXKz3f7cR2xC0gCgo5l2
I9LQHVXT22rPb4tYUVq/bgQ=
=pA04
-----END PGP SIGNATURE-----
-----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-----
-----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-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
diff: use tab to separate date from filename
manifest hash: 73812de990e0e787320c11f7bd83c4ca91a52c4c
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCpdDxywK+sNU5EO8RAhKwAKCFcUa/p6ALbjoOl4I8VKJknZtu7gCdFvoE
HQn1iq4gnJoeurB7YLMRpqc=
=ltYP
-----END PGP SIGNATURE-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hgweb: watch changelog for changes
Check the mtime of the changelog for updates on each invocation of
run(). For the standalone server, this means you don't need to re-run
it to pick up changes.
manifest hash: 398bdbf03b867df27da9e803a094dd265f62e12c
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFConlTywK+sNU5EO8RAljMAKCigJKR2aXabt1kuYeiAl+PZEN1owCeKShZ
oZKfo+I7e967FqI9l7NIPFE=
=pTp6
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hg help: use docstrings only
Now all Mercurial commands are at least partially self-documenting
manifest hash: 177e5f0fb13c258cc56d9b42cf762e55c3141531
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFComzMywK+sNU5EO8RAr3dAJ0dtlW4h7xZgaj1T3lchPnO2HHb/QCfcSnJ
e3SRVwd8DjsfxHFNQfOx+Qk=
=+6jb
-----END PGP SIGNATURE-----
-----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-----
-----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-----
-----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-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
big heap of command clean-up work
Migrate add, forget, remove, commit, diff, addremove, tip, log,
recover, and serve.
Fix up filterfiles, relfilter, and relpath to be a bit more bulletproof
Alphabetize functions and the command table
Make everything in commands.py relative-path aware
manifest hash: f0856031a7be4e49289677b467f29bcf24ebce4a
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCof6gywK+sNU5EO8RAoW1AJsHu8vchPSjls7wVbvsq/UKlGhqtgCgtnnl
xSBxyf/TEVWjHIk3uTa8WSE=
=YPMl
-----END PGP SIGNATURE-----
-----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-----
-----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-----
-----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-----
-----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-----
-----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-----
-----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-----
-----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-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hg checkout: refuse to checkout if there are outstanding changes
This is a stop-gap until I make the working dir logic smarter
manifest hash: a3f6adcb7eecec294000039057d59771958f4186
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCnnrKywK+sNU5EO8RAtqBAJwPQQrW5GhjMP9HMkFtfD7qhqxIcgCfXvA4
oXHO13uzBn5JOaTH3KwsMbQ=
=IzTY
-----END PGP SIGNATURE-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
catch TERM signal in command processor
This keeps kill from interrupting a transaction without cleanup.
manifest hash: c50091696a3396dfed5c3168bd9e0d94c457a04b
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCniLNywK+sNU5EO8RAvepAKCCnEX7vPheIyOu2IvV6dDahdFMWACeMih6
E2R3rA/MGACxG9HpSNH6lak=
=HR1s
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
commands: better argument processing, per-command help
This passes command line arguments as positional arguments rather than
as a list and attempt to catch exceptions if the arguments don't match up.
It also adds 'hg help [cmd]' which prints the syntax and docstring for
the given command.
manifest hash: cef3ac7076f99fce4265a5dc7acb57fb03d93270
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCnghXywK+sNU5EO8RAv+5AJ9MfCCRxE+pNu3i44v5I4IyQoRaiQCeNqEK
wBzAiP+Q6F/9PL2xOrrZGHw=
=EYdk
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Beginning of new command parsing interface
This adds commands.py, with a primary interface dispatch(args)
Dispatch searches a table of known commands, handles switches, sets up
a repo object if appropriate, and dispatches the command.
It also handles KeyboardInterrupt and can handle similar exceptions in
the future.
If the command is unknown, it falls through to the current command handler.
Commands currently handled by the new scheme: help, init, and annotate
manifest hash: 134cd032c880985e3f92f82efb8b629dd862ba4c
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCnXEGywK+sNU5EO8RAuDAAJ9q7K4w7qGVWv1NWjCPFGO/UJc6VQCdEhMQ
sBBlSRzah9QPy8K94catZyg=
=wuRf
-----END PGP SIGNATURE-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hgweb: add template filters, template style maps, and raw pages
Template filters:
in templates, you can now specify a chain of filters like
#desc|firstline|escape#
#desc|escape|addbreaks#
#date|age#
to specify how you'd like raw text (or whatever) to be transformed.
Template style maps:
add ;style=foo to a URL and we'll use templates/map-foo if it exists.
Raw output:
Together, these two features make it east to implement raw
downloadable files and patches. Simply link to the same page with
style=raw and present the output as unfiltered text/plain with that
template.
manifest hash: 5954a648b3d6b4e6dc2dcd1975f96b4b0178da2a
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCnUMyywK+sNU5EO8RAkKjAJ9h9JElSCbWBPUnL+koCSDxgo38AwCgrccM
0qwyKdh/fUNglICxSh3HBNA=
=Svlo
-----END PGP SIGNATURE-----
-----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-----
-----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-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hgweb: add view-only support
Turning on hgweb.viewonly prevents pulls. This is a good idea for
machines with limited CPU/bandwidth.
manifest hash: 68d1d04dad83743f3326e8b4f2e51387787f06c0
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCm0tnywK+sNU5EO8RAm1fAJ9rNjWOr+e3UosFyauBSEgyie8meACeKwjc
QqbfuXPLg/+TKr2HIrC3DA4=
=i8Yj
-----END PGP SIGNATURE-----
-----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-----
-----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-----
-----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-----
This is more intelligent/efficient by combining neighboring inserts,
replaces and deletes. Passes test of converting kernel repo, but
doesn't appear to substantially affect compression or performance.
This ought to use package_data but that doesn't exist in Python 2.3.
So we do a hack of install_data and use glob.
This also adds templatepath() to hgweb.py which finds the templates
relative to hgweb.py's location.
The old ancestor algorithm could get fooled into returning ancestors
closer to root than it ought to. Hopefully this one, which strictly
orders its search by distance from room, will be foolproof.
If you merge with a repo that has deleted a file after editing it, hg
attempted to resolve the file. This (correctly) resulted in hg verify
errors because the resolved version didn't show up in the manifests.
This moves the manifest resolution before file resolution and decides
which files to resolve based on the (partially) resolved manifest.
After files are resolved, the final manifest is committed.
Add header, footer templates
Add null parent handling
Combine files and directories
Add parity flag for alternating line colors
Add line numbers to filerevision
- we don't attempt to compress things under 44 bytes (empirical)
- we check whether larger objects actually compress
- we tag objects to indicate their compression
NUL means uncompressed and starts with NUL
x means gzipped and starts with x (handy)
u means uncompressed, drop the u
Delete old code
Fix calculation of newer nodes on server
Fix branch recursion on client
Fix manifest merge problems
Add more debugging and note messages to merge
mercurial 0.4d had the same problems with removing files, but
attached is a patch which fixes that problem.
The key change is in dircache.remove():
del self[f] should have been del self.map[f]
This error was hidden by the 'except: pass' statement.