Matt Mackall <mpm@selenic.com> [Wed, 06 Jul 2005 22:27:25 -0800] rev 642
Update tests
Matt Mackall <mpm@selenic.com> [Wed, 06 Jul 2005 22:27:07 -0800] rev 641
Catch SIGHUP
This should reduce the chance that a repo we're connected to via ssh
gets interrupted without doing rollback.
Matt Mackall <mpm@selenic.com> [Wed, 06 Jul 2005 22:25:40 -0800] rev 640
Switch push over to the new scheme
Now push works transparently with any repo with lock and
addchangegroup. Currently this is local repos and ssh.
Matt Mackall <mpm@selenic.com> [Wed, 06 Jul 2005 22:23:57 -0800] rev 639
Add addchangegroup to the ssh protocol
Matt Mackall <mpm@selenic.com> [Wed, 06 Jul 2005 22:23:27 -0800] rev 638
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.
Matt Mackall <mpm@selenic.com> [Wed, 06 Jul 2005 22:21:23 -0800] rev 637
Fix up the broken bits in findoutgoing
Matt Mackall <mpm@selenic.com> [Wed, 06 Jul 2005 22:20:56 -0800] rev 636
Move the empty changeset detection out of findincoming to pull
This lets us reuse findincoming for findoutgoing
Matt Mackall <mpm@selenic.com> [Wed, 06 Jul 2005 22:20:12 -0800] rev 635
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.
Matt Mackall <mpm@selenic.com> [Wed, 06 Jul 2005 22:14:10 -0800] rev 634
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.
Matt Mackall <mpm@selenic.com> [Wed, 06 Jul 2005 22:11:54 -0800] rev 633
Slim down and update README a bit
thananck@yahoo.com [Tue, 05 Jul 2005 18:23:56 -0800] rev 632
Provides output option to cat command
# HG changeset patch
# User thananck@yahoo.com
# Node ID c838b9c2c71b1d64b8bde786f6470b30f23962de
# Parent 7369ec5d93f2ffd490a43970edd9adf8d2bbe269
Provides output option to cat command
expand function in commands.doexport is moved to toplevel and renamed
to make_filename. The 'cat' command now accecpts --output <pattern>
switch to specify the destination file.
Index: hg/mercurial/commands.py
===================================================================
Radoslaw Szkodzinski <astralstorm@gorzow.mm.pl> [Tue, 05 Jul 2005 18:23:34 -0800] rev 631
Update documentation of hg tag
# HG changeset patch
# User Radoslaw Szkodzinski <astralstorm@gorzow.mm.pl>
# Node ID 8fc9bfabae06cba91b05c265545bcce2654dab2f
# Parent 7369ec5d93f2ffd490a43970edd9adf8d2bbe269
Update documentation of hg tag
This updates the FAQ, manpage and adds hg tag to the list of commands
in README.
Index: hg/README
===================================================================
Bryan O'Sullivan <bos@serpentine.com> [Tue, 05 Jul 2005 18:22:28 -0800] rev 630
Remove debug print from locate code.
# HG changeset patch
# User Bryan O'Sullivan <bos@serpentine.com>
# Node ID 5240abb57899b745f2e6465be29d9d54c4777364
# Parent 13b74665cbdf735a91f231956d0fe73e446340ea
Remove debug print from locate code.
Index: hg/mercurial/commands.py
===================================================================
Bryan O'Sullivan <bos@serpentine.com> [Tue, 05 Jul 2005 18:22:22 -0800] rev 629
Clarify man page entry for locate a little.
# HG changeset patch
# User Bryan O'Sullivan <bos@serpentine.com>
# Node ID 13b74665cbdf735a91f231956d0fe73e446340ea
# Parent fb74eaa2b5b763ad5591b2e51dbb377bf8342064
Clarify man page entry for locate a little.
Bryan O'Sullivan <bos@serpentine.com> [Tue, 05 Jul 2005 18:19:22 -0800] rev 628
Use repo.getcwd() in a few obvious places.
# HG changeset patch
# User Bryan O'Sullivan <bos@serpentine.com>
# Node ID fb74eaa2b5b763ad5591b2e51dbb377bf8342064
# Parent ebf5eba347a17a5c09000b3342caf350cd060a1b
Use repo.getcwd() in a few obvious places.
Bryan O'Sullivan <bos@serpentine.com> [Tue, 05 Jul 2005 18:19:01 -0800] rev 627
Add locate command.
# HG changeset patch
# User Bryan O'Sullivan <bos@serpentine.com>
# Node ID ebf5eba347a17a5c09000b3342caf350cd060a1b
# Parent d2994b5298fb20f87dc1d4747635b280db3c0526
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.
Matt Mackall <mpm@selenic.com> [Tue, 05 Jul 2005 18:15:38 -0800] rev 626
Fix quoting for RSS links
Spotted by Mikael Berthe <mikael.berthe@lilotux.net>
Matt Mackall <mpm@selenic.com> [Tue, 05 Jul 2005 18:12:57 -0800] rev 625
Cleanups for repo.pull
Use repo.pull in pull and clone commands
Teach clone about ssh:// (temporarily)
Fix up shutil issue on failed pull
Matt Mackall <mpm@selenic.com> [Tue, 05 Jul 2005 17:55:22 -0800] rev 624
Add an sshrepository class and hg serve --stdio
Matt Mackall <mpm@selenic.com> [Tue, 05 Jul 2005 17:50:43 -0800] rev 623
Change remote repository to httprepository
Matt Mackall <mpm@selenic.com> [Tue, 05 Jul 2005 17:50:02 -0800] rev 622
Add generic repo commands for pull and push
Matt Mackall <mpm@selenic.com> [Tue, 05 Jul 2005 17:49:01 -0800] rev 621
Add a function to calculate the outgoing changegroup
Matt Mackall <mpm@selenic.com> [Mon, 04 Jul 2005 15:42:26 -0800] rev 620
Attempt to handle RSS URIs properly
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Attempt to handle RSS URIs properly
manifest hash: 1546939c11a8640ca56f0b0f5c7bdc878b4faa67
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCycliywK+sNU5EO8RAukgAJ9eoJdqTiTQ8xSsSeHMIBmHnnQk9QCfQpFL
SAJKUYknvv4IJDUyHjQc61k=
=zGdJ
-----END PGP SIGNATURE-----
Matt Mackall <mpm@selenic.com> [Mon, 04 Jul 2005 12:54:42 -0800] rev 619
update tests
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
update tests
manifest hash: 70079385599132ca8f90582e1f9317ca46167532
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCyaISywK+sNU5EO8RApnGAJ0blIxE0tKPzcRQUDAHCLe5KmUSNgCgjGoA
kV4Os9FG1NmGaCysPIsKwts=
=Ee67
-----END PGP SIGNATURE-----
Bryan O'Sullivan <bos@serpentine.com> [Mon, 04 Jul 2005 12:39:35 -0800] rev 618
Handle unrecognised options correctly.
# HG changeset patch
# User Bryan O'Sullivan <bos@serpentine.com>
# Node ID 837a023781a0228e5791e8e278129d2d54d13f99
# Parent d2994b5298fb20f87dc1d4747635b280db3c0526
Handle unrecognised options correctly.
thananck@yahoo.com [Mon, 04 Jul 2005 12:39:21 -0800] rev 617
open .hgtags as binary
# HG changeset patch
# User thananck@yahoo.com
# Node ID 2bd20bb06f817796d76b8e126f4a685426c4faf4
# Parent 7a240687674e6cf5a8dfd45973d7e3978b89af79
open .hgtags as binary
The '.hgtags' file, in tag command, is opened as binary for interoperability with the other OS
maf46@burn.cl.cam.ac.uk [Mon, 04 Jul 2005 12:38:34 -0800] rev 616
Fix zombie files in merge
# HG changeset patch
# User maf46@burn.cl.cam.ac.uk
# Node ID 57667c9b93a5a743e4629d15a0e6bd76699130c3
# Parent d2994b5298fb20f87dc1d4747635b280db3c0526
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
===================================================================
thananck@yahoo.com [Mon, 04 Jul 2005 12:22:21 -0800] rev 615
Output file of 'export' is opened as binary (other OS)
# HG changeset patch
# User thananck@yahoo.com
# Node ID 7a240687674e6cf5a8dfd45973d7e3978b89af79
# Parent d2994b5298fb20f87dc1d4747635b280db3c0526
Output file of 'export' is opened as binary (other OS)
Matt Mackall <mpm@selenic.com> [Mon, 04 Jul 2005 12:18:58 -0800] rev 614
Stop patch description import at diff -r
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Stop patch description import at diff -r
manifest hash: cc269f69c26ad4fba1fdaeefe2dc8191a0669fe0
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCyZmyywK+sNU5EO8RAkODAJ9d/JYpBOZiOcQxlz0n2VtIPtK/IgCgl2Lj
caGbq4yn4RxzBQqqIoQzOTQ=
=9fHy
-----END PGP SIGNATURE-----
Bryan O'Sullivan <bos@serpentine.com> [Mon, 04 Jul 2005 12:16:27 -0800] rev 613
Demand-load most modules in the commands and ui modules.
# HG changeset patch
# User Bryan O'Sullivan <bos@serpentine.com>
# Node ID 059c6e42fc4221816e26a72bef8cf780891989ca
# Parent d2994b5298fb20f87dc1d4747635b280db3c0526
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.