Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 16 Oct 2012 15:49:58 +0200] rev 17827
obsolete: have `allsuccessors` takes a list of nodes
Additional logic, used to detect mutable history troubles, will need to quickly
compute successors of a whole set of changeset.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 19 Oct 2012 00:30:11 +0200] rev 17826
obsolete: rename `anysuccessors` into `allsuccessors`
The "any" prefix looks like it returned a boolean. `allsuccessors` is more
accurate.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 19 Oct 2012 00:28:13 +0200] rev 17825
obsolete: rename `getobscache` into `getrevs`
The old name was not very good for two reasons:
- caller does not care about "cache",
- set of revision returned may not be obsolete at all.
The new name was suggested by Kevin Bullock.
Matt Harbison <matt_harbison@yahoo.com> [Sun, 14 Oct 2012 15:10:13 -0400] rev 17824
largefiles: always create the cache and standin directories when cloning
The standin matcher only works if the .hglf directory exists (and it won't exist
if 'clone -U' is used, unless --all-largefiles is also specified). Since not
even 'update -r null' will get rid of the standin directory, this ensures that
the standin directory always exists if the repo has the 'largefiles'
requirement. This requirement is only set after a largefile is committed, so
these directories will not be created for repos that have the extension enabled
but have not committed a largefile.
With the standin directory in place, 'lfconvert --to-normal' will now be able to
download the required largefiles when converting a repo that was created with
'clone -U', and whose files are not in the usercache.
The downloadlfiles command could probably be put inside the 'largefiles'
requirement conditional too, but given that the user specified --all-largefiles,
there is likely an expectation to print out the number of largefiles downloaded,
even if it is 0.
Matt Harbison <matt_harbison@yahoo.com> [Sun, 14 Oct 2012 14:44:08 -0400] rev 17823
largefiles: fix a traceback in lfconvert if a largefile is missing (
issue3519)
The largefile may be missing for various reasons, including that a remote
repository was cloned without the --all-largefiles option. Therefore, it seems
reasonable to attempt to download the missing files and failing that, abort and
indicate the affected file and revision so the user can manually fix the
problem.
Kevin Bullock <kbullock@ringworld.org> [Thu, 18 Oct 2012 16:34:13 -0500] rev 17822
bookmarks: further flatten code
This hopefully clarifies the behavior when no NAME is passed, by
separating the branches for listing bookmarks vs. deactivating the
current bookmark.
Kevin Bullock <kbullock@ringworld.org> [Wed, 17 Oct 2012 21:42:06 -0500] rev 17821
scmutil: add bad character checking to checknewlabel
This factors out the checks from tags and bookmarks, and newly applies
the same prohibitions to branches. checknewlabel takes a new parameter,
kind, indicating the kind of label being checked.
Test coverage is added for all three types of labels.
Kevin Bullock <kbullock@ringworld.org> [Wed, 17 Oct 2012 21:39:07 -0500] rev 17820
tag: disallow '\0' in tag names
This brings the list of disallowed characters in line with bookmarks.
Kevin Bullock <kbullock@ringworld.org> [Wed, 17 Oct 2012 21:32:19 -0500] rev 17819
dirstate: use scmutil.checknewlabel to check new branch name
Kevin Bullock <kbullock@ringworld.org> [Wed, 17 Oct 2012 17:23:39 -0500] rev 17818
bookmarks: use scmutil.checknewlabel
Validation is pulled up into the commands module to avoid an import
cycle.
Kevin Bullock <kbullock@ringworld.org> [Wed, 17 Oct 2012 16:34:46 -0500] rev 17817
scmutil: add function to validate new branch, tag, and bookmark names
For now the new function only checks to make sure the new label name
isn't a reserved name ('tip', '.', or 'null'). Eventually more of the
checks will be unified between the different types of labels.
The `tag` command is trivially updated to use it. Updating branches and
bookmarks to use it is slightly more invasive and thus reserved for
later patches.
Kevin Bullock <kbullock@ringworld.org> [Wed, 17 Oct 2012 16:32:43 -0500] rev 17816
bookmarks: disallow bookmarks named 'tip', '.', or 'null'
This makes bookmarks reject the same reserved names as tags and branches.
Kevin Bullock <kbullock@ringworld.org> [Wed, 17 Oct 2012 17:03:01 -0500] rev 17815
bookmarks: abort directly on invalid name
This consolidates the abort message for a bookmark name containing
invalid characters into one place, and renames the valid() method to
checkvalid() to reflect the fact that it's no longer a predicate.
Kevin Bullock <kbullock@ringworld.org> [Wed, 17 Oct 2012 16:23:42 -0500] rev 17814
bookmarks: remove redundant check for newline
New bookmarks are already checked for illegal characters (':', '\0',
'\n', and '\r') in bookmarks.valid().
Kevin Bullock <kbullock@ringworld.org> [Wed, 17 Oct 2012 22:25:41 -0500] rev 17813
test-tag: test that all reserved names are rejected
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 18 Oct 2012 17:54:34 +0200] rev 17812
amend: do a bare kill of temporary changeset
Before this changeset the temporary changeset created by amend was made a
precursors on the amend result. This add unnecessary complexity to the
obsolescence graph. This temporary commit will probably disappear in the future.
It is an unwanted byproduct of amend that nobody cares about.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 18 Oct 2012 22:12:15 +0200] rev 17811
amend: add noise in extra to avoid creating obsolescence cycle (
issue3664)
Obsolescence cycle are bad and should be avoided as much as possible. The
current amend implemented touch changeset meta data as few as possible. This
make is easy for amend to result in the same node than a precursors. We add some
deterministic noise in extra to avoid this. In practice, the hex of the amended
changeset is stored in 'amend_source' extra key.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 18 Oct 2012 22:04:49 +0200] rev 17810
changelog: extract description cleaning logic in a dedicated function
The amend logic have use for it.
Adrian Buehlmann <adrian@cadifra.com> [Thu, 18 Oct 2012 22:35:28 +0200] rev 17809
bookmarks: replace code-redundant comment with something more useful
Adrian Buehlmann <adrian@cadifra.com> [Thu, 18 Oct 2012 22:33:58 +0200] rev 17808
bookmarks: remove another uneeded return
Kevin Bullock <kbullock@ringworld.org> [Sat, 05 May 2012 15:30:54 -0500] rev 17807
update: remove unnecessary argument check
Idan Kamara <idankk86@gmail.com> [Sun, 14 Oct 2012 20:27:55 +0200] rev 17806
grep: colorize all fields
Colors were picked in accordance to GNU grep.
Idan Kamara <idankk86@gmail.com> [Sun, 14 Oct 2012 20:40:23 +0200] rev 17805
test-grep: add a test for -l
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 15:54:53 +0200] rev 17804
clfilter: remove use of xrange in revset
For changelog level filtering to take effect it need to be used for any
iteration. Some remaining use of `xrange` in revset code is replace by proper
use of `changelog.revs` or direct iteration over changelog.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 15:41:58 +0200] rev 17803
largefile: use `self` in repo method instead of `repo`
Most method added (or overwritten) to repo by largefile works on `repo`
instead of `self`. This currently works without trouble because `self` and
`repo` are likely the same. However this is semantically dubious and this may
cause issue for filtering. `self` may be proxy object different from the `repo`
one.
This changeset fix that and use `self` when applicable.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 16 Oct 2012 23:12:07 +0200] rev 17802
test: use proper subclassing in `test-
issue2137.t`.
To use changelog filtering on the repository, we plan to use "proxy" object that
perfectly mock a repository but with a filtered changelog.
Altering the `repo.commit` function using `extensions.wrapfunction` will prevent
the logic to propagate to the proxy class by the mean of inheritance.
We changes the extension to use subclassing as expectable.
Mads Kiilerich <mads@kiilerich.com> [Thu, 18 Oct 2012 00:44:32 +0200] rev 17801
run-tests: remove dead code for supporting old test scripts
Mads Kiilerich <mads@kiilerich.com> [Thu, 18 Oct 2012 00:33:29 +0200] rev 17800
run-tests: handle windows crlf in .py tests again
Before
af7c6bc48d8d all crlf occurrences in test output on Windows were simply
changed to lf. In
af7c6bc48d8d it was replaced by more clever handling in the
.t test runner ... but the .py runner was forgotten and many .py tests were
failing on Windows.
The crlf/lf replacement is now reintroduced in the py test runner.