Mercurial > hg > mercurial-crew-with-dirclash
view tests/test-clone-r.out @ 1587:851bc33ff545
Less annoying directory completion (see http://bugs.debian.org/343458)
The current bash completion script is quite painful in conjuntion with
deep directory trees because it adds a space after each successful
directory completion. Eg. "hg clone /ho<tab>" is completed to "hg clone
/home " when what you really want is "hg clone /home/" (assuming the
complete path to the repository looks like /home/foo/hg...).
That's because the 'complete' command does not know about the type of
completion it receives from the _hg shell function. When only a single
completion is returned, it assumes completion is complete and tells
readline to add a trailing space. This behaviour is usually wanted, but
not in the case of directory completion.
I've attached a patch that circumvents this problem by only returning
successful completions for directories that contain a .hg subdirectory.
If no repositories are found, no completions are returned either, and
bash falls back to ordinary (filename) completion. I find this behaviour
a lot less annoying than the current one.
Alternative: Use option nospace for the 'complete' command and let _hg
itself take care of adding a trailing space where appropriate. That's a
far more intrusive change, though.
author | Daniel Kobras <kobras@debian.org> |
---|---|
date | Thu, 15 Dec 2005 15:40:14 +0100 |
parents | dc1bbc456b96 |
children | ced2d3620f95 |
line wrap: on
line source
rev offset length base linkrev nodeid p1 p2 0 0 3 0 0 362fef284ce2 000000000000 000000000000 1 3 5 1 1 125144f7e028 362fef284ce2 000000000000 2 8 7 2 2 4c982badb186 125144f7e028 000000000000 3 15 9 3 3 19b1fc555737 4c982badb186 000000000000 rev offset length base linkrev nodeid p1 p2 0 0 75 0 7 905359268f77 000000000000 000000000000 rev offset length base linkrev nodeid p1 p2 0 0 75 0 8 905359268f77 000000000000 000000000000 rev offset length base linkrev nodeid p1 p2 0 0 8 0 6 12ab3bcc5ea4 000000000000 000000000000 rev offset length base linkrev nodeid p1 p2 0 0 48 0 0 43eadb1d2d06 000000000000 000000000000 1 48 48 1 1 8b89697eba2c 43eadb1d2d06 000000000000 2 96 48 2 2 626a32663c2f 8b89697eba2c 000000000000 3 144 48 3 3 f54c32f13478 626a32663c2f 000000000000 4 192 58 3 6 de68e904d169 626a32663c2f 000000000000 5 250 68 3 7 3b45cc2ab868 de68e904d169 000000000000 6 318 54 6 8 24d86153a002 f54c32f13478 000000000000 checking changesets checking manifests crosschecking files in changesets and manifests checking files 4 files, 9 changesets, 7 total revisions requesting all changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files checking changesets checking manifests crosschecking files in changesets and manifests checking files 1 files, 1 changesets, 1 total revisions requesting all changes adding changesets adding manifests adding file changes added 2 changesets with 2 changes to 1 files checking changesets checking manifests crosschecking files in changesets and manifests checking files 1 files, 2 changesets, 2 total revisions requesting all changes adding changesets adding manifests adding file changes added 3 changesets with 3 changes to 1 files checking changesets checking manifests crosschecking files in changesets and manifests checking files 1 files, 3 changesets, 3 total revisions requesting all changes adding changesets adding manifests adding file changes added 4 changesets with 4 changes to 1 files checking changesets checking manifests crosschecking files in changesets and manifests checking files 1 files, 4 changesets, 4 total revisions requesting all changes adding changesets adding manifests adding file changes added 2 changesets with 2 changes to 1 files checking changesets checking manifests crosschecking files in changesets and manifests checking files 1 files, 2 changesets, 2 total revisions requesting all changes adding changesets adding manifests adding file changes added 3 changesets with 3 changes to 1 files checking changesets checking manifests crosschecking files in changesets and manifests checking files 1 files, 3 changesets, 3 total revisions requesting all changes adding changesets adding manifests adding file changes added 4 changesets with 5 changes to 2 files checking changesets checking manifests crosschecking files in changesets and manifests checking files 2 files, 4 changesets, 5 total revisions requesting all changes adding changesets adding manifests adding file changes added 5 changesets with 6 changes to 3 files checking changesets checking manifests crosschecking files in changesets and manifests checking files 3 files, 5 changesets, 6 total revisions requesting all changes adding changesets adding manifests adding file changes added 5 changesets with 5 changes to 2 files checking changesets checking manifests crosschecking files in changesets and manifests checking files 2 files, 5 changesets, 5 total revisions pulling from ../test-7 searching for changes adding changesets adding manifests adding file changes added 4 changesets with 2 changes to 3 files (+1 heads) (run 'hg update' to get a working copy) checking changesets checking manifests crosschecking files in changesets and manifests checking files 4 files, 9 changesets, 7 total revisions