Commit Graph

17491 Commits

Author SHA1 Message Date
John Li
8400b38f0d merge: handle case when heads are all bookmarks
If all heads are bookmarks, merge fails to find what node to merge
with (throws an IndexError while indexing into the non-bookmark heads
list) as of 208ca72b9343. This catches that case and prints an error
to specify a rev explicitly.
2012-08-22 11:18:35 -04:00
Patrick Mezard
1e03a5cb1d verify: do not choke on valid changelog without manifest
Before this change:

  $ hg init
  $ hg branch foo
  $ hg ci -m branchfoo
  $ hg verify
  checking changesets
  checking manifests
   0: empty or missing manifest
  crosschecking files in changesets and manifests
  checking files
  0 files, 1 changesets, 0 total revisions
  1 integrity errors encountered!
  (first damaged changeset appears to be 0)
  [1]
2012-08-21 20:51:16 +02:00
Matt Mackall
b1f6dfb8ee merge heads in stable 2012-08-21 12:26:53 -05:00
Matt Mackall
30afcc9869 commit: normalize filenames when checking explicit files (issue3576) 2012-08-17 14:37:59 -05:00
Patrick Mezard
57f8b328dc fileset: fix generator vs list bug in fast path
$ hg debugfileset 'a or b'

would only return a or b but not both because the base file list was a
generator instead of a replayable sequence.
2012-08-15 22:50:23 +02:00
Patrick Mezard
04200aa71a debugfileset: implement --rev, more tests 2012-08-15 22:28:32 +02:00
Patrick Mezard
9da04ddd86 test-fileset: test remaining predicates
- exec
- symlink
- size
- resolved / unresolved
- subrepo
2012-08-15 22:09:09 +02:00
Patrick Mezard
afc53271b1 fileset: do not traceback on invalid grep pattern 2012-08-15 19:25:45 +02:00
Patrick Mezard
5874c142ff fileset: matchctx.existing() must consider ignored files
When running:

  $ hg debugfileset 'binary() and ignored()'

getfileset() was correctly retrieving ignored files but
matchctx.existing() was not taking them in account. Just add them along
with unknown files.
2012-08-15 22:29:32 +02:00
Patrick Mezard
faab1846cc fileset: matchctx.existing() must consider unknown files
By default, unknown files are ignored. If the 'unknown()' predicate
appears in the syntax tree, then they are taken in account.
Unfortunately, matchctx.existing() was filtering against non-deleted
context files, which does not include unknown files. So:

  $ hg debugfileset 'binary() and unknown()'

would not return existing binary unknown files.
2012-08-15 22:29:09 +02:00
Patrick Mezard
663673858e fileset: exclude deleted files from matchctx.existing()
Running:

  $ hg debugfileset 'binary()'

would traceback if there were one deleted file in the working directory.
It happened because matchctx.existing() was filtering files against the
ctx.__contains__() but deleted files are still considered part of
workingctx.
2012-08-15 21:44:00 +02:00
Patrick Mezard
d331997ea9 test-fileset: test file status predicates 2012-08-15 18:04:50 +02:00
Patrick Mezard
95df23a5ab fileset: actually implement 'minusset'
$ hg debugfileset 'a* - a1'

was tracing back because 'minus' symbol was not supported.
2012-08-15 19:02:04 +02:00
Patrick Mezard
00a746e909 tests: test filesets with test-fileset.t 2012-08-15 17:39:03 +02:00
Patrick Mezard
e64291c725 convert: use subprocess for all commandline calls
Avoid mixing popen and subprocess calls, it simplifies the command line
generation and quoting issues with redirections.

In practice, it fixes the subversion sink on Windows and probably helps
with monotone and darcs sources.
2012-08-03 21:37:33 +02:00
Patrick Mezard
2a34f7fc18 convert: make commandline.limit_arglist private, simplify 2012-08-03 21:05:01 +02:00
Matt Harbison
2128536df5 largefiles: adjust localstore to handle batch statlfile requests (issue3583)
This fixes a traceback when pushing to a local repo which started with
6fb54510b150.
2012-08-14 22:38:25 -04:00
Pierre-Yves David
5b297fc1f8 strip: fix revset usage (issue3604)
The `repair` code builds a giant revset query instead of using the "%lr" idiom.
It is inefficient and crash when the number of stripped changeset is too big.

This changeset replaces the bad code by a better revset usage.
2012-08-31 23:27:26 +02:00
Matt Mackall
03043688ce merge with i18n 2012-08-31 20:40:13 -05:00
sorcerer
b04ae8ca03 revlog: don't try to partialmatch strings those length > 40
_partialmatch() does prefix matching against nodes. String passed
to _partialmetch() actualy may be any string, not prefix only.

For example,
"63af8381691a9e5c52ee57c4e965eb306f86826e or 300" is a good
argument for _partialmatch().

When _partialmatch() searches using radix tree, index_partialmatch()
C function shouldn't try to match too long strings.
2012-08-02 19:10:45 +04:00
Wagner Bruna
fa2c9dd279 i18n-pt_BR: synchronized with 7a6e10485685 2012-08-02 11:46:30 -03:00
Wagner Bruna
d09c1ff6cb histedit, i18n: warn translators about edit command names 2012-08-02 11:45:16 -03:00
Wagner Bruna
1d9183c516 histedit: sync docstring with edit comment
The docstring should probably reuse the edit comment string instead.
2012-08-02 11:28:21 -03:00
Ross Lagerwall
48a670fcaf templater: handle a missing value correctly
Before, using a broken style such as:
changeset =
would result in a traceback.

This fixes a regression introduced in 47618355ffc8.
2012-08-04 14:37:17 +02:00
Javi Merino
7f1365342e help/hgweb: fix spelling error 2012-08-04 12:29:53 +02:00
Pierre-Yves David
da8e5d78a1 mergetools.hgrc: set vimdiff to check=changed
The standard reaction in from of unexpected vimdiff is to ":quit". This will
make vimdiff return a 0 status even if no merge were done at all.

This change detect that nothing have been changed in vimdiff as a potential
unresolved conflict.
2012-08-02 13:51:49 +02:00
Matt Mackall
fe196bb1f3 Added signature for changeset 0a77a23861ad 2012-08-02 01:49:36 -05:00
Pierre-Yves David
570443d0f7 test: add testing of checkheads behavior with obsolete
Expected behavior is quite complex. Explicit testing with clear
scenarios is welcome.
2012-08-01 19:35:05 +02:00
Adrian Buehlmann
24b5ea2ece test-hybridencode: a few more cases 2012-09-13 17:46:34 +02:00
Patrick Mezard
3f23aa6a3f tests: enable more server tests on Windows 2012-09-12 22:21:54 +02:00
Patrick Mezard
7424bcac9c test-static-http.t: enable on Windows
We cannot read $! to get the background job process identifier, with
MinGW it can return internal identifiers not matching the native Windows
ones. Instead we introduce a helper script polling on the pid file. We
assume the pid file data will be written in order.
2012-09-12 22:31:54 +02:00
Bryan O'Sullivan
dc9ede17dc Merge spelling fixes 2012-09-11 08:36:09 -07:00
Pierre-Yves David
e5780b8f05 amend: add obsolete support
If the obsolete feature is enabled, `hg commit --amend` marks a
changeset as obsolete instead of stripping it.
2012-09-11 00:12:07 +02:00
Pierre-Yves David
de8b13c1de obsolete: add a high level function to create an obsolete marker
This function is designed to be used by all code that creates new
obsolete markers in the local repository.

It is not used by debugobsolete because debugobsolete allows the
use of an unknown hash as argument.
2012-08-24 21:16:23 +02:00
Pierre-Yves David
6675d5b644 amend: use an explicit commit message for temporary amending commit
Before this changeset, the extra commit created during amend had
the same description as the final commit. This was a bit confusing
when trying to understand what that extra commit was about.

This changeset changes the description of such commit to:

    temporary amend commit for <ammend-commit-hash>

The old behaviour was not a big deal, but would become more confusing
once we use obsolescence marker instead of stripping the precursors.

This also helps if the user restores a strip backup.
2012-08-25 16:20:41 +02:00
Pierre-Yves David
d67eeabf85 amend: wrap all commit operations in a single transaction
This allows proper recovery of an interrupted amend process.
No changes are made to the logic besides:

- indent operations into a single try-except clause,
- some comment and code wrapping to 80 chars,
- strip logic should not be contained in the transaction and is extracted from
  the main code.
2012-09-10 23:44:24 +02:00
Pierre-Yves David
c2caef51a8 amend: lock the repository during the whole process
Without this changes another writer can lock the repository in the middle the
amend process. The resulting mess can be pretty ugly.
2012-08-25 15:37:28 +02:00
Bryan O'Sullivan
d51f61e8b8 Merge with crew 2012-09-10 14:08:10 -07:00
Patrick Mezard
f64e7c7ee8 Merge with stable 2012-09-09 12:35:06 +02:00
Patrick Mezard
622b756249 test-http-branchmap: enable on Windows
Tests using "hg serve --daemon" are currently disabled on Windows for
lack of proper kill utility. The one shipped with MinGW operates on
internal process identifiers and not on the ones recorded by hg serve.
Fortunately we can replace most of them by calls to killdaemons.py.

This patch is a proof of concept on how to run these tests on Windows.
The plan is:
- Check test-http-branchmap.t does not fail/hang on the buildbot
- Convert all kill utility calls to killdaemons.py calls.
- Add a rule in check-code.py to forbid kill calls, or ignore the
  remaining ones (test-hup.t, etc.).
- Possibly drop the 'serve' rule from hghave.

The:

  listening at http://*:$HGPORT1/

line does not appear on Windows because the detached process can no
longer write on its parent streams. Grepping hg serve stdout directly
causes the parent process to never return and hangs the test. This is a
bug, but I have no simple solution and prefer to pay this small price
and enable hg serve tests on Windows.
2012-09-09 12:31:14 +02:00
Pierre-Yves David
785d90eba0 obsolete: introduce caches for all meaningful sets
This changeset introduces caches on the `obsstore` that keeps track of sets of
revisions meaningful for obsolescence related logics. For now they are:

- obsolete: changesets used as precursors (and not public),
- extinct:  obsolete changesets with osbolete descendants only,
- unstable: non obsolete changesets with obsolete ancestors.

The cache is accessed using the `getobscache(repo, '<set-name>')` function which
builds the cache on demand. The `clearobscaches(repo)` function takes care of
clearing the caches if any.

Caches are cleared when one of these events happens:

- a new marker is added,
- a new changeset is added,
- some changesets are made public,
- some public changesets are demoted to draft or secret.

Declaration of more sets is made easy because we will have to handle at least
two other "troubles" (latecomer and conflicting).

Caches are now used by revset and changectx. It is usually not much more
expensive to compute the whole set than to check the property of a few elements.
The performance boost is welcome in case we apply obsolescence logic on a lot of
revisions. This makes the feature usable!
2012-08-28 20:52:04 +02:00
Ankur Dahiya
8c0a7c1aaf color: enabled color support for export command (issue1507)
The export command didn't output the diffs in color, even when color support
was enabled. This patch fixes that by making the export command use the default
ui.write method, instead of directly manipulating the ui.fout file object.
Also added a test case to verify color output to test-export.t.
2012-08-27 09:37:49 -07:00
Adrian Buehlmann
376af2d3bd test-hybridencode: extensions are replicated on hashed paths
unfortunately, this is done unbounded, so the length of the hashed path
is not really limited
2012-09-06 22:51:32 +02:00
Bryan O'Sullivan
a730557aab Merge with crew-stable 2012-09-06 10:57:49 -07:00
Adrian Buehlmann
dc86f4b8fe test-hybridencode: dropping dir eight in hashed path due to dot or space at end 2012-09-06 19:53:23 +02:00
Yuya Nishihara
ee6b575238 hgweb: respond 403 forbidden for ssl required error
It's preferable to report "ssl required" as an error, so that the client
can detect error and exit with 255. Currently hg exits with 1, which is
"nothing to push."
2012-09-05 23:59:27 +09:00
Yuya Nishihara
9a2a603424 test-push-http: include exit status of hg push 2012-09-05 23:58:43 +09:00
Adrian Buehlmann
b21f00c3ed test-hybridencode: adding one truncated char to dir 1..7 won't drop dir 8 2012-09-06 15:53:59 +02:00
Adrian Buehlmann
7ce442025b test-hybridencode: testing dir levels and dir prefix lenghts of hashed paths 2012-09-06 15:04:07 +02:00
Patrick Mezard
c54ad25151 histedit: fix unused variable warnings spotted by pyflakes 2012-09-05 22:01:09 +02:00