- Oct 08, 2014
-
-
Martin von Zweigbergk authored
If a merge is attempted when another merge is already ongoing, we give the message "outstanding uncommitted merges". Many other commands (such as backout, rebase, histedit) give the same message in singular form. Since the singular form also seems to make more sense, let's use that for 'hg merge' as well.
-
- Oct 10, 2014
-
-
durin42 authored
This also highlights a bug: right now we print "2 failed" but we only ran one test.
-
Kyle Lippincott authored
Diff generation didn't really fail, it recognized that an hg serve server has failed to start, and thus skipped the diff generation intentionally. The most common reason for a server to fail to start is that the port was already in use, so output HGPORT as well, to help finding it (since pgrep -f 'hg serve' is not sufficient, if the command line is something like 'hg -R main serve')
-
- Oct 09, 2014
-
-
durin42 authored
Without this change, --first causes currently-running tests to explode in violent and surprising ways when their temporary directory gets cleaned up. Now we just suppress failure messages from non-first failures when running in --first mode.
-
- Oct 06, 2014
-
-
Jordi Gutiérrez Hermoso authored
This just copies the same local sample hgrc, except it sets the default path to the repo it was cloned from. This is cut-and-paste from the local sample hgrc, but I think it's acceptable, since the two pieces of code are right next to each other and they're small. There is danger of them going out of synch, but it would complicate the code too much to get rid of this C&P. I also add ui as an import to hg.py, but with demandimport, this should not be a noticeable performance hit.
-
- Oct 08, 2014
-
-
Jordi Gutiérrez Hermoso authored
Some examples of the typical configurations that one might want to do in an .hg/hgrc file. This includes a default-push that happens to point to the same location as my-fork. I insist on the myfork terminology for a server-side clone. Bitbucket, Github, and others have widely popularised this meaning of "fork". This also includes a gentle nudge to use a repo-specific username, which is something that people might not instinctively realise is an option.
-
- Oct 07, 2014
-
-
Pierre-Yves David authored
All your friends are dead.
-
Pierre-Yves David authored
`ascending` is going to be removed.
-
Pierre-Yves David authored
The `ascending` and `descending` methods are useless.
-
Pierre-Yves David authored
-
Pierre-Yves David authored
-
Pierre-Yves David authored
As `addset` objects are proper smartset objects, we do not need to make any transformation of the result.
-
- Oct 03, 2014
-
-
Pierre-Yves David authored
A baseset starts without an explicit order. But as soon as a sort is requested, we simply register that the baseset has an order and use the ordered version of the list to behave accordingly. We will want to properly record the order at creation time in the future. This would unlock more optimisation and avoid some sorting.
-
Pierre-Yves David authored
We now have sufficient information to return the proper value there.
-
Pierre-Yves David authored
We'll explicitly track the order of the baseset to take advantage of the ascending and descending lists during iteration.
-
Pierre-Yves David authored
Baseset contains already-computed revisions. It is considered "cheap" to do operations on an already-computed set. So we add attributes to hold version of the list in ascending and descending order and use them for `fastasc` and `fastdesc`. Having distinct lists is important to provide correct iteration in all cases. Altering a python list will impact an iterator connected to it. eg: not preserving order at iterator creation time >>> l = [0, 1] >>> i = iter(l) >>> l.reverse() >>> list(i) [1, 0] eg: corrupting in progress iteration >>> l = [0, 1] >>> i = iter(l) >>> i.next() 0 >>> l.reverse() >>> i.next() 0
-
- Oct 06, 2014
-
-
Pierre-Yves David authored
The baseset is doing more and more smartset magic and using its list-like property less and less. So we store the list of revisions in an explicit attribute and stop inheriting. This requires reimplementing some basic methods.
-
- Oct 07, 2014
-
-
Pierre-Yves David authored
The `remove` method is not part of the smartset specification. We use a plain old list comprehension instead.
-
Pierre-Yves David authored
This is highly suboptimal but smartsets are not comparable to lists yet.
-
Pierre-Yves David authored
This makes it compatible with all smartset classes.
-
Pierre-Yves David authored
This makes it compatible with all smartset classes.
-
Pierre-Yves David authored
This makes it compatible with all smartset classes.
-
Pierre-Yves David authored
This makes it compatible with all smartset classes.
-
Pierre-Yves David authored
This makes it compatible with all smartset classes.
-
Pierre-Yves David authored
This makes it compatible with all smarsets classes.
-
Pierre-Yves David authored
This makes it compatible with all smarsets classes.
-
Pierre-Yves David authored
This makes it compatible with all smarsets classes.
-
- Oct 06, 2014
-
-
Pierre-Yves David authored
I'm not sure why we wrote it that way. But smartsets have faster/lazier non-zero testing than length computation.
-
- Oct 07, 2014
-
-
Pierre-Yves David authored
-
- Oct 06, 2014
-
-
Pierre-Yves David authored
-
Pierre-Yves David authored
-
Pierre-Yves David authored
The implementation is non-lazy for now. One may want to make it more lazy in the future.
-
Pierre-Yves David authored
-
Pierre-Yves David authored
In multiple places in the code, we use `someset[0]` or `someset[-1]`. This works only because the `someset` is usually a baseset. For the same reason we introduce a `first` and `last` methods to be implemented for all smartset classes.
-
- Oct 07, 2014
-
-
Pierre-Yves David authored
A `baseset` has multiple cached results and will get even more in the future. Making it an object "populated once" like the other smartsets makes it both safer and simpler. The append method will be removed at some point.
-
Pierre-Yves David authored
A `baseset` has multiple cached results and will get even more in the future. Making it an object "populated once" like the other smartsets makes it both safer and simpler. The append method will be removed at some point.
-
- Oct 08, 2014
-
-
Pierre-Yves David authored
A `baseset` has multiple cached results and will get even more in the future. Making it an object "populated once" like the other smartsets makes it both safer and simpler. The append method will be removed at some point.
-
- Oct 06, 2014
-
-
Pierre-Yves David authored
A `baseset` has multiple cached results and will get even more in the future. Making it an object "populated once" like the other smartsets makes it both safer and simpler. The append method will be removed at some point.
-
- Oct 07, 2014
-
-
Pierre-Yves David authored
Sorting is super-cheap with the new smartset class, so we can use it to enforce the order. Otherwise all smartset classes would have to allow direct indexing.
-
- Oct 06, 2014
-
-
Pierre-Yves David authored
For pure cleanup purposes, we replace all the occurences of `baseset([])` with `baseset()`.
-