- Nov 26, 2012
-
-
Matt Mackall authored
Looks like there are instances where sys.stdout/stderr contain file handles that are invalid. We should be tolerant of this for hook I/O redirection, as our primary concern is not garbling our own output stream.
-
Matt Mackall authored
We were attempting to redirect I/O even if no hook was actually getting called. This defers redirection until we've found something to do.
-
Matt Mackall authored
The old str-based += collector performed very nicely on Linux, but turns out to be quadratically expensive on Windows, causing chunkbuffer to dominate in profiles. This list-based version has been measured to significantly improve performance with large chunks on Windows, with negligible overall overhead on Linux (though microbenchmarks show it to be about 50% slower). This may increase memory overhead where += didn't behave quadratically. If we want to gather up 1G of data to join, we temporarily have 1G in our list and 1G in our string.
-
Matt Mackall authored
This was causing clones of the hg repo to go from 12.4s to 14.7s.
-
- Nov 16, 2012
-
-
Durham Goode authored
When commiting to a repo with lots of history (>400000 changesets) checking the results of revset.py:descendants against the subset takes some time. Since the subset equals the entire changelog, the check isn't necessary. Avoiding it in that case saves 0.1 seconds off of a 1.78 second commit. A 6% gain. We use the length of the subset to determine if it is the entire repo. There is precedence for this in revset.py:stringset.
-
Durham Goode authored
When commiting to a repo with lots of history (>400000 changesets) the filteredrevs check (added with 5c89e7fa5bc2) in changelog.py takes a bit of time even if the filteredrevs set is empty. Skipping the check in that case shaves 0.36 seconds off a 2.14 second commit. A 17% gain.
-
- Nov 15, 2012
-
-
Kevin Bullock authored
A revised version of 35ba170c0f82 was sent to the list that fixed this <http://markmail.org/message/jmfuiise5igcyh2m>, but the older version of the patch was applied.
-
- Nov 12, 2012
-
-
Idan Kamara authored
'*' causes the resulting RE to match 0 or more repetitions of the preceding RE: >>> bool(re.search('.*', '')) >>> True This causes an infinite loop because currently we're only checking if there was a match without looking at where we are in the searched string.
-
- Nov 13, 2012
-
-
Pierre-Yves David authored
This regression was added by 9732473aa24b. It triggered the editor even if --message or --logfile were provided.
-
- Nov 02, 2012
-
-
Adrian Buehlmann authored
Fixes @@ -606,7 +606,7 @@ issue3276_ok $ rm repo/s/b $ hg -R repo revert --all - reverting repo/.hgsubstate + reverting repo\.hgsubstate reverting subrepo s $ hg -R repo update 1 files updated, 0 files merged, 0 files removed, 0 files unresolved on Windows
-
Adrian Buehlmann authored
Fixes @@ -208,7 +208,7 @@ $ echo 'orphan' > orphanchild $ hg add orphanchild $ hg qrefresh nonexistentfilename # clear patch - nonexistentfilename: No such file or directory + nonexistentfilename: The system cannot find the file specified $ hg qrefresh --short 1/base $ hg qrefresh --short 2/base on Windows
-
- Nov 01, 2012
-
-
Matt Mackall authored
-
Matt Mackall authored
-
Matt Mackall authored
-
- Oct 31, 2012
-
-
Keegan Carruthers-Smith authored
-
- Nov 01, 2012
-
-
Adrian Buehlmann authored
follow-up to 0e2846b2482c
-
Wagner Bruna authored
-
- Oct 31, 2012
-
-
Matt Mackall authored
-
Wagner Bruna authored
-
Katsunori FUJIWARA authored
-
- Oct 24, 2012
-
-
Simon Heimberg authored
Files in a subrepo were overwritten on update. But this should only happen on a clean update (example: -C is specified). Use the overwrite parameter introduced for svn subrepos in c19b9282d3a7 to decide whether to merge changes (as update) or remove them (as clean). The new function hg.updaterepo is intruduced to keep all update calls in hg. test-subrepo.t is extended to test if an untracked file is overwritten (issue3276). (Update -C is already tested in many places.) The first two chunks are debugging output which has changed. (Because overwrite is not always true anymore for subrepos) All other tests still pass without any change.
-
- Oct 30, 2012
-
-
Katsunori FUJIWARA authored
Before this patch, largefiles extension uses "largefiles: No remote repo" message not only for "outgoing" as status report, but also for "summary" as summarized information. This sharing prevents message translators from inserting white spaces between "largefiles:" and "No remote repo" in translated message to align column position of summarized information. This patch changes output of largefiles for summary to distinguish from one for outgoing. This patch puts "no remote repo" into parentheses, because this is not summarized information.
-
Katsunori FUJIWARA authored
Before this patch, one of column positioning messages of MQ summary output is not translatable, and patches are always listed up at fixed column position like below, when patch queue is not empty: mq: 1 applied, 1 unapplied But column positioning messages for other summarized information are translatable, so other information may be displayed at different column position on non-English locale environments. This patch makes column positioning message of MQ summary output translatable.
-
Katsunori FUJIWARA authored
This comment makes it easier to distinguish such messages from others for message translators.
-
Katsunori FUJIWARA authored
This comment makes it easier to distinguish such messages from others for message translators.
-
Katsunori FUJIWARA authored
-
- Oct 31, 2012
-
-
Katsunori FUJIWARA authored
Before this patch, case-folding collision is checked simply between manifests of each merged revisions. So, files may be considered as colliding each other, even though one of them is already deleted on one of merged branches: in such case, merge causes deleting it, so case-folding collision doesn't occur. This patch checks whether both of files colliding each other still remain after merge or not, and ignores collision if at least one of them is deleted by merge. In the case that one of colliding files is deleted on one of merged branches and changed on another, file is considered to still remain after merge, even though it may be deleted by merge, if "deleting" of it is chosen in "manifestmerge()". This avoids fail to merge by case-folding collisions after choices from "changing" and "deleting" of files. This patch adds only tests for "removed remotely" code paths in "_remains()", because other ones are tested by existing tests in "test-casecollision-merge.t".
-
- Oct 30, 2012
-
-
Durham Goode authored
When calling qrefresh with filenames, the filenames were being treated as case-sensistive on case-insensitive file systems. So 'qrefresh foo' would not match file 'Foo', and it failed silently. This fix makes it work correctly on case-insensitive file systems. Previously the matching function was applied directly to the filenames. Now we apply the matching function through repo.status, which handles the case logic for us. A side effect of using repo.status is that if the qrefresh file doesn't exist, there is output stating it doesn't exist. Adds a test to an existing mq refresh case test.
-
- Oct 18, 2012
-
-
Siddharth Agarwal authored
-
- Oct 30, 2012
-
-
Matt Mackall authored
-
- Oct 26, 2012
-
-
Keegan Carruthers-Smith authored
-
- Oct 30, 2012
-
-
Matt Mackall authored
-
- Oct 23, 2012
-
-
Wagner Bruna authored
-
- Oct 29, 2012
-
-
Adrian Buehlmann authored
if bookmark @ is not on the default branch, we show updating to bookmark @ on branch <name>
-
- Oct 28, 2012
-
-
Adrian Buehlmann authored
92980a8dfdfe inserted a "cd a" but didn't restore the previous directory.
-
Julian Cowley authored
The help text shows "-c/--confirm", which implies that -c is an alias for --confirm. Actually, it is an alias for --cc. Correct the text by removing -c.
-
- Oct 24, 2012
-
-
Bryan O'Sullivan authored
-
Matt Harbison authored
Previously, if one or more largefiles for a repo being converted were not in the usercache, the convert would abort with a reference to the largefile being missing (as opposed to the previous patch, where the standin was referenced as missing). This is because commitctx() tries to copy all largefiles to the local store, first from the user cache, and if the file isn't found there, from the working directory. No files will exist in the working directory during a convert, however. It is not sufficient to force the source repo to be local before proceeding, because clone and pull do not download largefiles by default. This is slightly less than ideal because while the conversion will now complete, it won't be possible to update to revs with missing largefiles unless the user intervenes manually, because there is no default path pointing back to the source repo. Ideally these files would be cached during the conversion. This check could have been done in reposetup.commitctx() instead, but this ensures the local store directory is created, which is necessary to enable the standin matcher. The rm -> 'rm -f' change in the test is to temporarily suppress an error clearing the cache- as noted, the cache is is not repopulated during convert. When that is fixed, this can be changed back and the verification errors will disappear too.
-
Matt Harbison authored
When the rev isn't specified, the standin for the working copy gets read. But convert doesn't update the working copy for each cset it processes, so there is no standin and the 'hg convert' would abort complaining about the standin being missing. Note that if the largefile is not in the user cache, 'hg convert' complains about the largefile itself missing from the destination repo.
-
- Oct 09, 2012
-
-
Simon Heimberg authored
Create the repo with baseui because it should only get the global configuration. After this patch issue2904 is finally fixed.
-