Skip to content
Snippets Groups Projects
  1. May 13, 2013
  2. May 10, 2013
  3. May 12, 2013
    • Mike Williams's avatar
      help/config: note 64-bit Windows registry key used with 32-bit Python · 9d88916fb56f
      Mike Williams authored
      Before this patch the only place that documented the use of a different
      registry key was on the wiki page for installing on Windows from
      sources, while most users will use a pre-packaged installer and the
      supplied help files.
      
      This patch documents in the supplied help files that an alternate
      registry key is used for the installation/system configuration file when
      using 32-bit Python on a 64-bit Windows.
      9d88916fb56f
  4. May 07, 2013
  5. May 09, 2013
  6. May 06, 2013
    • Katsunori FUJIWARA's avatar
      largefiles: check unknown files with case awareness of the filesystem · 24877c50aada
      Katsunori FUJIWARA authored
      Before this patch, largefiles extension checks unknown files in the
      working directory always case sensitively.
      
      This causes failure in updating from the revision X consisting of
      '.hglf/A' (and "A" implicitly) to the revision Y consisting of 'a'
      (not ".hglf/A") on case insensitive filesystem, because "A" in the
      working directory is treated as colliding against and different from
      'a' on the revision Y.
      
      This patch uses "repo.dirstate.normalize()" to check unknown files
      with case awareness of the filesystem.
      24877c50aada
    • Katsunori FUJIWARA's avatar
      largefiles: check existence of the file with case awareness of the filesystem · 0848be1f1aad
      Katsunori FUJIWARA authored
      Before this patch, largefiles extension always unlinks largefiles
      untracked on the target context in merging/updating after updating
      working directory.
      
      For example, it is assumed that the revision X consists of ".hglf/A"
      (and "A" implicitly) and revision Y consists of "a" (not ".hglf/A").
      
      In the case of updating from X to Y, largefiles extension tries to
      unlink "A" after updating "a" in working directory. This causes
      unexpected unlinking "a" on the case insensitive filesystem.
      
      This patch checks existence of the file in the working context with
      case awareness of the filesystem to prevent from such unexpected
      unlinking.
      
      "lfcommands._updatelfile()" also unlinks target file in the case
      "largefile is tracked in the target context, but fails to be fetched".
      
      This patch doesn't apply "repo.dirstate.normalize()" in this case,
      because it should be already ensured in the manifest merging that
      there is no normal file colliding against any largefiles.
      0848be1f1aad
    • Katsunori FUJIWARA's avatar
      windows: check target type before actual unlinking to follow POSIX semantics · 1b329f8c7b24
      Katsunori FUJIWARA authored
      Creation and writing into target file via vfs (a.k.a opener) is done
      after "unlink()" target file, if it exists.
      
      For example, it is assumed that the revision X consists of file 'A',
      and the revision Y consists of file 'A/B'. Merging revision X into Y
      tries to "unlink()" on directory 'A' of 'A/B', before creation of file
      'A'.
      
      On POSIX environment, directories should be removed by "rmdir(2)", and
      "unlink(2)" on directories fails. "unlink()" of Mercurial (and Python)
      uses "unlink(2)" directly, so unlinking in the merge case above would
      fail.
      
      In the other hand, on Windows environment, "unlink()" of Mercurial
      tries to rename before actual unlinking, to follow POSIX semantics:
      already opened file can be unlinked safely.
      
      This causes unexpected success in unlinking in the merge case above,
      even though directory 'A' is renamed to another. This confuses users.
      
      This patch checks whether target is directory or not before renaming,
      and raises IOError(errno.EPERM) if so, to follow POSIX semantics.
      1b329f8c7b24
  7. May 09, 2013
    • Katsunori FUJIWARA's avatar
      subrepo: open files in 'rb' mode to read exact data in (issue3926) · ed1a212193dc
      Katsunori FUJIWARA authored
      Before this patch, "subrepo._calcfilehash()" opens files by "open()"
      without any mode specification. This implies "text mode" on Windows.
      
      When target file contains '\x00' byte, "read()" in "text mode" reads
      file contents in without data after '\x00'.
      
      This causes invalid SHA1 hash calculation in "subrepo._calcfilehash()".
      
      This patch opens files in 'rb' mode to read exact data in.
      ed1a212193dc
  8. May 03, 2013
    • Blesso hrvoje1212's avatar
      convert: fix bug of wrong CVS path parsing without port number (issue3678) · 0a12e5f3a979
      Blesso hrvoje1212 authored
      The cvsps.py:getrepopath suffers from a string parsing bug (it returns
      "user@server/path/to/repository" if the CVSROOT is given like this:
      ":pserver:user@server/path/to/repository" ), which gives returnes the wrong
      value becouse cvsps.py fails to strip the prefix from filenames.
      With this patch for the same input we get the correct repo path that is:
      "/path/to/repository"
      0a12e5f3a979
  9. May 04, 2013
    • Matt Mackall's avatar
      hfs+: rewrite percent-escaper (issue3918) · af3b651505e2
      Matt Mackall authored
      The original code was a bit too clever and got confused by some cp949
      Korean text. This rewrite bytes the bullet and manually decodes UTF-8
      sequences. Adds some doctests.
      af3b651505e2
  10. May 03, 2013
    • Bryan O'Sullivan's avatar
      revert: ensure that copies and renames are honored (issue3920) · bd19587a3347
      Bryan O'Sullivan authored
      Previously, we restored the states of files, but not the additional
      information the dirstate uses to track copies and renames.
      bd19587a3347
    • Durham Goode's avatar
      hgignore: fix regression with hgignore directory matches (issue3921) · f4930b533d55
      Durham Goode authored
      If a directory matched a regex in hgignore but the files inside the directory
      did not match the regex, they would appear as deleted in hg status. This
      change fixes them to appear normally in hg status.
      
      Removing the ignore(nf) conditional here is ok because it just means we might
      stat more files than we had before. My testing on a large repo shows this
      causes no performance regression since the only additional files being stat'd
      are the ones that are missing (i.e. status=!), which are generally rare.
      f4930b533d55
  11. May 02, 2013
  12. May 01, 2013
  13. Apr 30, 2013
    • Katsunori FUJIWARA's avatar
      tags: update tag type only if tag node is updated (issue3911) · cb95716da5fe
      Katsunori FUJIWARA authored
      Before this patch, tag type information is always updated, even if tag
      previously read in has higher priority than one newly read in.
      
      This causes that the tag type is displayed as "local", even if global
      tag overwrites existing local one successfully.
      
      This patch updates tag type only if tag node is updated.
      
      This patch tests overwriting local tags below:
      
        - visible one (normal case)
        - already removed one (recorded as null)
      cb95716da5fe
  14. Apr 29, 2013
    • Mads Kiilerich's avatar
      match: fix root calculation for combining regexps with simple paths · fcf08023c011
      Mads Kiilerich authored
      The fall-back root for walking is the repo root, not no root.
      
      The "roots" do however also end up in m.files() which is used in various ways,
      for instance to indicate whether matches are exact. The change could thus have
      other impacts.
      fcf08023c011
    • Katsunori FUJIWARA's avatar
      icasefs: enhance test to prevent regression by changes in the future · 3d0dd890c525
      Katsunori FUJIWARA authored
      This patch adds steps to test case-folding collision detection on the
      revision tree built up in the order different from the one reproducing
      issue3452.
      
      This may prevent regression by changes around "copy detection" and/or
      "case-folding collision detection" logic in the future.
      3d0dd890c525
    • Katsunori FUJIWARA's avatar
      icasefs: rewrite case-folding collision detection (issue3452) · c60a7f5a741f
      Katsunori FUJIWARA authored
      Before this patch, case-folding collision detection uses
      "copies.pathcopies()" before "manifestmerge()", and is not aware of
      renaming in some cases.
      
      For example, in the case of issue3452, "copies.pathcopies()" can't
      detect renaming, if the file is renamed at the revision before common
      ancestor of merging. So, "hg merge" is aborted unexpectedly on case
      insensitive filesystem.
      
      This patch fully rewrites case-folding collision detection, and
      relocate it into "manifestmerge()".
      
      New implementation uses list of actions held in "actions" and
      "prompts" to build provisional merged manifest up.
      
      Provisional merged manifest should be correct, if actions required to
      build merge result up in working directory are listed up in "actions"
      and "prompts" correctly.
      
      This patch checks case-folding collision still before prompting for
      merge, to avoid aborting after some interactions with users. So, this
      assumes that user would choose not "deleted" but "changed".
      
      This patch also changes existing abort message, because sorting before
      collision detection changes order of checked files.
      c60a7f5a741f
    • Katsunori FUJIWARA's avatar
      icasefs: refactor "test-casecollision-merge.t" to reuse in succeeding fixes · 370d9ea027b1
      Katsunori FUJIWARA authored
      This patch refactors "test-casecollision-merge.t" to increase
      reusability in succeeding patches.
      
      It is confirmed that changed test also can detect issue3370.
      370d9ea027b1
    • Katsunori FUJIWARA's avatar
      icasefs: ignore removed files at building "dirstate._foldmap" up on icasefs · 0176d0db4671
      Katsunori FUJIWARA authored
      Before this patch, all files in dirstate are used to build "_foldmap"
      up on case insensitive filesystem regardless of their statuses.
      
      For example, when dirstate contains both removed file 'a' and added
      file 'A', "_foldmap" may be updated finally by removed file 'a'. This
      causes unexpected status information for added file 'A' at "hg status"
      invocation.
      
      This patch ignores removed files at building "_foldmap" up on case
      insensitive filessytem.
      
      This patch doesn't add any test, because this issue is difficult to
      reproduce intentionally: it depends on iteration order of "dirstate._map".
      0176d0db4671
  15. May 01, 2013
  16. Apr 30, 2013
  17. Apr 29, 2013
  18. Apr 30, 2013
    • Pierre-Yves David's avatar
      push: make locking of source optional (issue3684) · 3f5e75c22585
      Pierre-Yves David authored
      Having the permission to lock the source repo on push is now optional. When the
      repo cannot be locked, phase are not changed locally. A status message is issue
      when some actual phase movement are skipped:
      
          cannot lock source repo, skipping local public phase update
      
      A debug message with the exact reason of the locking failure is issued in all
      case.
      3f5e75c22585
    • Pierre-Yves David's avatar
      push: factorise phase movement in a simple closure · 0e4af72cbd7f
      Pierre-Yves David authored
      Having all phases movement centralised will help to handle special case when the
      local repo can not be locked as describe in issue 3684.
      0e4af72cbd7f
Loading