Skip to content
Snippets Groups Projects
  1. Nov 01, 2015
  2. Oct 31, 2015
    • Katsunori FUJIWARA's avatar
      i18n: look translation of both "DEPRECATED" and "(DEPRECATED)" up · 47dd34f2
      Katsunori FUJIWARA authored
      Since 44cc9f63a2f1, deprecated commands, options and so on are
      detected by "(DEPRECATED)" instead of "DEPRECATED".
      
      "hg.pot" generated from recent source files doesn't contain msgid
      "DEPRECATED", and looking the translation of "DEPRECATED" up in
      up-to-date *.po files works incorrectly.
      
      But on the other hand, there are still old *.po files, which contain
      msgid "DEPRECATED" but not "(DEPRECATED)". Looking the translation of
      "(DEPRECATED)" up in such old *.po files also works incorrectly.
      
      This patch resolves this problem by looking translation of both
      "DEPRECATED" and "(DEPRECATED)" up.
      
      This should work correctly, because previous patch makes "deprecated"
      checker be applied only on translations, of which msgid contains exact
      "(DEPRECATED)" string.
      
      'p.msgstr' examination in 'deprecatedsetup()' is needed to ignore
      untranslated entries. This also makes 'deprecatedpe.msgstr'
      examination in 'deprecated()' meaningless.
    • Katsunori FUJIWARA's avatar
      i18n: fix regexp pattern to detect translation for DEPRECATED · 33894fac
      Katsunori FUJIWARA authored
      Since 44cc9f63a2f1, deprecated commands, options and so on are
      detected by "(DEPRECATED)" instead of "DEPRECATED".
      
      Therefore, 'deprecated' checker in i18n/check-translation.py should
      check translation, of which msgid contains "(DEPRECATED)" instead of
      "DEPRECATED".
      
      At glance, it seems to do so, but it actually doesn't, because Python
      regexp treats "()" as grouping of patterns and "(DEPRECATED)" matches
      only against "DEPRECATED".
      33894fac
  3. Nov 01, 2015
    • Matt Harbison's avatar
      scmutil: abort if an empty revision is given to revpair() · 88c4e97b
      Matt Harbison authored
      When using 'extdiff --patch' to check the changes in a rebase, 'precursors(x)'
      evaluated to an empty set because I forgot the --hidden flag, so the other
      revision was used as the replacement for the empty set.  The result was the
      patch for the other revision was diffed against itself, and the tool saying
      there were no differences.  That's misleading since the expected diff args were
      silently changed, so it's better to bail out.
      
      The other uses of scmutil.revpair() are commands.diff and commands.status, and
      it doesn't make sense to allow an empty revision there either.  The code here
      was suggested by Yuya Nishihara.
      88c4e97b
    • Wagner Bruna's avatar
      i18n-pt_BR: synchronized with a9ed5a8fc5e0 · 6fabc931
      Wagner Bruna authored
      6fabc931
  4. Oct 31, 2015
  5. Oct 26, 2015
    • Augie Fackler's avatar
      packaging: rework version detection and declaration (issue4912) · 6474b640
      Augie Fackler authored
      Previously the -rc in our rc tags got dropped, meaning that those
      packages looked newer to the packaging system than the later release
      build. This rectifies the issue, though some damage may already have
      been done on 3.6-rc builds.
      
      I'm mostly cargo-culting the RPM version format - there don't appear
      to be rules for RPM about how to handle this. Hopefully an RPM
      enthusiast can fix up what I've done as a followup.
      6474b640
  6. Oct 27, 2015
  7. Oct 24, 2015
    • Katsunori FUJIWARA's avatar
      localrepo: discard objects in _filecache at transaction failure (issue4876) · 0a761075
      Katsunori FUJIWARA authored
      'repo.invalidate()' deletes 'filecache'-ed properties by
      'filecache.__delete__()' below via 'delattr(unfiltered, k)'. But
      cached objects are still kept in 'repo._filecache'.
      
          def __delete__(self, obj):
              try:
                  del obj.__dict__[self.name]
              except KeyError:
                  raise AttributeError(self.name)
      
      If 'repo' object is reused even after failure of command execution,
      referring 'filecache'-ed property may reuse one kept in
      'repo._filecache', even if reloading from a file is expected.
      
      Executing command sequence on command server is a typical case of this
      situation (5c0f5db65c6b also tried to fix this issue). For example:
      
        1. start a command execution
      
        2. 'changelog.delayupdate()' is invoked in a transaction scope
      
           This replaces own 'opener' by '_divertopener()' for additional
           accessing to '00changelog.i.a' (aka "pending file").
      
        3. transaction is aborted, and command (1) execution is ended
      
           After 'repo.invalidate()' at releasing store lock, changelog
           object above (= 'opener' of it is still replaced) is deleted from
           'repo.__dict__', but still kept in 'repo._filecache'.
      
        4. start next command execution with same 'repo'
      
        5. referring 'repo.changelog' may reuse changelog object kept in
           'repo._filecache' according to timestamp of '00changelog.i'
      
           '00changelog.i' is truncated at transaction failure (even though
           this truncation is unintentional one, as described later), and
           'st_mtime' of it is changed. But 'st_mtime' doesn't have enough
           resolution to always detect this truncation, and invalid
           changelog object kept in 'repo._filecache' is reused
           occasionally.
      
           Then, "No such file or directory" error occurs for
           '00changelog.i.a', which is already removed at (3).
      
      This patch discards objects in '_filecache' other than dirstate at
      transaction failure.
      
      Changes in 'invalidate()' can't be simplified by 'self._filecache =
      {}', because 'invalidate()' should keep dirstate in 'self._filecache'
      
      'repo.invalidate()' at "hg qpush" failure is removed in this patch,
      because now it is redundant.
      
      This patch doesn't make 'repo.invalidate()' always discard objects in
      '_filecache', because 'repo.invalidate()' is invoked also at unlocking
      store lock.
      
        - "always discard objects in filecache at unlocking" may cause
          serious performance problem for subsequent procedures at normal
          execution
      
        - but it is impossible to "discard objects in filecache at unlocking
          only at failure", because 'releasefn' of lock can't know whether a
          lock scope is terminated normally or not
      
          BTW, using "with" statement described in PEP343 for lock may
          resolve this ?
      
      After this patch, truncation of '00changelog.i' still occurs at
      transaction failure, even though newly added revisions exist only in
      '00changelog.i.a' and size of '00changelog.i' isn't changed by this
      truncation.
      
      Updating 'st_mtime' of '00changelog.i' implied by this redundant
      truncation also affects cache behavior as described above.
      
      This will be fixed by dropping '00changelog.i' at aborting from the
      list of files to be truncated in transaction.
      0a761075
  8. Oct 28, 2015
  9. Oct 23, 2015
    • Gregory Szorc's avatar
      bundle2: attribute remote failures to remote (issue4788) · 58f1645f
      Gregory Szorc authored
      Before bundle2, hook output from hook failures was prefixed with
      "remote: ". Up to this point with bundle2, the output was converted to
      the message to print in an Abort exception. This had 2 implications:
      
      1) It was unclear whether an error message came from the local repo
         or the remote
      2) The exit code changed from 1 to 255
      
      This patch changes the handling of error:abort bundle2 parts during push
      to prefix the error message with "remote: ". This restores the old
      behavior.
      
      We still preserve the behavior of raising an Abort during bundle2
      application failure. This is a regression from pre-bundle2 because the
      exit code changed.
      
      Because we no longer raise an Abort with the remote's message, we needed
      to insert a message for the new Abort. So, I invented a new error
      message for that. This is another change from pre-bundle2. However, I
      like the new error message because it states unambiguously who aborted
      the push failed, which I think is important for users so they can decide
      what's next.
      58f1645f
    • Gregory Szorc's avatar
      tests: add tests for remote hook output (issue4788) · 00e75baa
      Gregory Szorc authored
      The added tests don't agree in their output. This demonstrates a
      difference in `hg push` behavior between pre-bundle2 and bundle2.
      A subsequent patch will attempt to restore some of the pre-bundle2
      behavior to bundle2.
      00e75baa
  10. Oct 24, 2015
  11. Oct 23, 2015
  12. Oct 22, 2015
    • Gregory Szorc's avatar
      ui: support paths.default-push without paths.default set (issue4914) · 71d5238f
      Gregory Szorc authored
      This behavior regressed as part of the paths API refactoring. Previous
      behavior was to accept "default-push" without "default" defined. Current
      behavior aborts with "default repository not configured!." This patch
      restores the old behavior and adds test coverage for the scenario, which
      was absent before.
      71d5238f
  13. Oct 21, 2015
  14. Oct 20, 2015
  15. Oct 19, 2015
  16. Oct 15, 2015
  17. Oct 20, 2015
    • Ryan McElroy's avatar
      editmerge: dequote other use of $ED · 61250290
      Ryan McElroy authored
      We want to support editors with parameters, eg EDITOR="vim -O" or whatever.
      So remove the quotes from around $ED and assume that the editor variable is
      properly escaped already.
      61250290
  18. Oct 19, 2015
  19. Oct 03, 2015
  20. Oct 19, 2015
Loading