Skip to content
Snippets Groups Projects
  1. Jul 31, 2015
  2. Jul 22, 2015
    • Eugene Baranov's avatar
      convert: when converting from Perforce use original local encoding by default · b810b59eca62
      Eugene Baranov authored
      On Windows Perforce command line client uses default system locale to encode
      output. Using 'latin_1' causes locale-specific characters to be replaced with
      question marks. With this patch we will use default locale by default whilst
      allowing to specify it explicity with 'convert.p4.encoding' config option.
      
      This is a potentially breaking change for any scripts relying on output treated
      as in 'latin_1' encoding.
      
      Also because hgext.convert.convcmd overwrites detected default system locale
      with UTF-8 we had to introduce an import cycle in hgext.convert.p4 to retrieve
      originally detected encoding from hgext.convert.convcmd.
      b810b59eca62
  3. Jul 29, 2015
  4. Jul 19, 2015
    • Gregory Szorc's avatar
      help: scripting help topic · 9de443515f1d
      Gregory Szorc authored
      There are a lot of non-human consumers of Mercurial. And the challenges
      and considerations for machines consuming Mercurial is significantly
      different from what humans face.
      
      I think there are enough special considerations around how machines
      consume Mercurial that a dedicated help topic is warranted. I concede
      the audience for this topic is probably small compared to the general
      audience. However, lots of normal Mercurial users do things like create
      one-off shell scripts for common workflows that I think this is useful
      enough to be in the install (as opposed to, say, a wiki page - which
      most users will likely never find).
      
      This text is by no means perfect. But you have to start somewhere. I
      think I did cover the important parts, though.
      9de443515f1d
  5. Jul 30, 2015
  6. Jul 29, 2015
    • Katsunori FUJIWARA's avatar
      transplant: restore dirstate correctly at unexpected failure · 99e88320d665
      Katsunori FUJIWARA authored
      Before this patch, transplant can't restore dirstate as expected at
      failure other than one while patching. This causes:
      
        - unexpected file status
      
        - dirstate refers already rollback-ed parent
          (only at failure of transplanting the 2nd or later revision)
      
      To restore dirstate correctly also at unexpected failure, this patch
      encloses scope of store lock and transaction by 'dirstateguard'.
      
      This is temporary fixing for stable branch. See
      DirstateTransactionPlan wiki page for detail about the future plan to
      treat dirstate consistently around scope boundary of transaction.
      
          https://mercurial.selenic.com/wiki/DirstateTransactionPlan
      
      This patch also adds 'if lock' examination for safety
      'lock.release()', because creating 'dirstateguard' object may fail
      unexpectedly (e.g. IOError for saving dirstate).
      
      BTW, in the test script, putting section header '[extensions]' into
      '.hg/hgrc' is needed to fix incomplete disabling 'abort' extension at
      4d1382fd96ff.
      99e88320d665
    • Katsunori FUJIWARA's avatar
      localrepo: make journal.dirstate contain in-memory changes before transaction · 800e090e9c64
      Katsunori FUJIWARA authored
      Before this patch, in-memory dirstate changes aren't written out at
      opening transaction, even though 'journal.dirstate' is created
      directly from '.hg/dirstate'.
      
      Therefore, subsequent 'hg rollback' uses incomplete 'undo.dirstate' to
      restore dirstate, if dirstate is changed and isn't written out before
      opening transaction.
      
      In cases below, the condition "dirstate is changed and isn't written
      out before opening transaction" isn't satisfied and this problem
      doesn't appear:
      
        - "wlock scope" and "transaction scope" are almost equivalent
      
          e.g. 'commit --amend', 'import' and so on
      
        - dirstate changes are written out before opening transaction
      
          e.g. 'rebase' (via 'dirstateguard') and 'commit -A' (by separated
          wlock scopes)
      
      On the other hand, 'backout' may satisfy the condition above.
      
      To make 'journal.dirstate' contain in-memory changes before opening
      transaction, this patch explicitly invokes 'dirstate.write()' in
      'localrepository.transaction()'.
      
      'dirstate.write()' is placed before not "writing journal files out"
      but "invoking pretxnopen hooks" for visibility of dirstate changes to
      external hook processes.
      
      BTW, in the test script, 'touch -t 200001010000' and 'hg status' are
      invoked to make file 'c' surely clean in dirstate, because "clean but
      unsure" files indirectly cause 'dirstate.write()' at 'repo.status()'
      in 'repo.commit()' (see fe03f522dda9 for detail) and prevents from
      certainly reproducing the issue.
      800e090e9c64
  7. Jul 28, 2015
    • Matt Harbison's avatar
      dirstate: ensure mv source is marked deleted when walking icasefs (issue4760) · 85785cd3b69f
      Matt Harbison authored
      Previously, importing a case-only rename patch on a case insensitive filesystem
      caused the original file to be marked as '!' in status.  The source was being
      forgotten properly in patch.workingbackend.close(), but the call it makes to
      scmutil.marktouched() then put the file back into the 'n' state (but it was
      still missing from the filesystem).
      
      The cause of this was scmutil._interestingfiles() would walk dirstate,
      and since dirstate was able to lstat() the old file via the new name,
      was treating this as a forgotten file, not a removed file.
      scmutil.marktouched() re-adds forgotten files, so dirstate got out of
      sync with the filesystem.
      
      This could be handled with less code in the "kind == regkind or kind
      == lnkkind" branch of dirstate._walkexplicit(), but this avoids
      filesystem accesses unless case collisions occur. _discoverpath() is
      used instead of normalize(), since the dirstate case is given first
      precedence, and the old file is still in it. What matters is the
      actual case in the filesystem.
      85785cd3b69f
  8. Jul 27, 2015
    • Matt Harbison's avatar
      extdiff: allow modifications in subrepos to be copied back · 415709a43e54
      Matt Harbison authored
      This check was a legacy bit from when the file data was being fetched manually
      with 'ctx[wfn]', but archive() does that now.  49966b5ab16f seems to indicate
      that this avoided a problem where a merge adds a file to another branch, and
      that test still passes.
      
      Unfortunately, I don't see a way to create a test that modifies the file in the
      temporary directory before the command exits.
      
      I wonder if the os.lstat() call needs to be wrapped in an exception handler for
      the case where archive didn't create a file because the file didn't exist in
      that revision.  But I wasn't able to trigger a problem without it on a real
      repository.
      415709a43e54
    • Yuya Nishihara's avatar
      ignore: fix path concatenation of .hgignore on Windows · 511e1949d557
      Yuya Nishihara authored
      Since 3de48ff62733, .hgignore is ignored on Windows because a pat may have
      a drive letter, but pathutil.join is posixpath.join.
      
        "z:\foo\bar/z:\foo\bar\.hgignore"
      
      Instead, this patch uses os.path.join() and util.localpath() to process both
      parts as file-system paths.
      
      Maybe we can remove os.path.join() at dirstate._ignore because 'include:' is
      resolved relative to repo root? It was introduced by a04c7b74b3d5.
      511e1949d557
  9. Jul 26, 2015
  10. Jul 25, 2015
    • Anton Shestakov's avatar
      hgweb: show ages in repos' Last modified column in monoblue and gitweb · 20ed56771b21
      Anton Shestakov authored
      Index page, which shows the list of available repositories, has a column where
      the last modification date for each repo is shown. paper, coal and spartan
      already show the dates in relative format (e.g. "2 weeks ago"), because these
      styles have the required process_dates() js function call in their footer
      templates, which are included on every page. But monoblue and gitweb styles
      have more things in the footer templates, such as repo name and its atom/rss
      links, so they don't include the footer on index page (as this page doesn't
      have a single repo context).
      
      Let's call process_dates() without including the footer.
      20ed56771b21
  11. Jul 24, 2015
  12. Jul 13, 2015
    • Anton Shestakov's avatar
      monoblue: show relative age of bookmarks · 777235417457
      Anton Shestakov authored
      In b24e5a708fad, age calculation was made dynamic (i.e. in javascript), but for
      some reason bookmarkentry template in monoblue/map got a wrong class. It
      resulted in /summary and /bookmarks pages always showing exact dates for
      bookmarks, no age calculation was performed. Let's fix this by using "age"
      class that is already used in branchentry and tagentry templates in the same
      map file.
      
      As usual, the exact date for such elements is still available in title
      attribute, so it shows in a tooltip on hover.
      777235417457
  13. Jul 22, 2015
    • Anton Shestakov's avatar
      highlight: produce correct markup when there's a blank line just before EOF · a74e9806d17d
      Anton Shestakov authored
      Due to how the colorized output from pygments was stripped of <pre> elements,
      when there was an empty line at the end of a file, highlight extension produced
      an incorrect markup (no closing tags from the fileline/annotateline template).
      It wasn't usually noticeable, because browsers were smart enough to see where
      the missing tags should've been, but in monoblue style it resulted in the last
      line having twice the normal height.
      
      Instead of awkwardly trying to strip outer <pre></pre> tags, let's make the
      formatter with nowrap=True, which should do what we need in pygments since at
      least 0.5 (2006-10-30).
      
      Example from monoblue style:
      
      Before:
      
          <div class="source">
      
      <div style="font-family:monospace" class="parity0">
      <pre><a class="linenr" href="#l1" id="l1">     1</a> </pre>
      </div>
      <div style="font-family:monospace" class="parity1">
      <pre><a class="linenr" href="#l2" id="l2">     2</a>
          </div>
      
      Now:
      
          <div class="source">
      
      <div style="font-family:monospace" class="parity0">
      <pre><a class="linenr" href="#l1" id="l1">     1</a> </pre>
      </div>
      <div style="font-family:monospace" class="parity1">
      <pre><a class="linenr" href="#l2" id="l2">     2</a> </pre>
      </div>
          </div>
      
      (Notice the missing </pre></div> now in place)
      a74e9806d17d
  14. Jul 21, 2015
    • Matt Harbison's avatar
      test-check-config: convert directory separators to '/' for MSYS · 8c1d7a0e737b
      Matt Harbison authored
      The output of the files command uses native separator.  MSYS then seems to drop
      the '\' on Windows when invoking python:
      
       --- c:/Users/Matt/Projects/hg/tests/test-check-config-hg.t
       +++ c:/Users/Matt/Projects/hg/tests/test-check-config-hg.t.err
       @@ -6,22 +6,10 @@
      
          $ hg files "set:(**.py or **.txt) - tests/**" |
          >   xargs python contrib/check-config.py  Traceback (most recent call last):
            File "contrib/check-config.py", line 93, in <module>
              sys.exit(main(sys.argv[1:]))
            File "contrib/check-config.py", line 24, in main
              for l in open(f):
          IOError: [Errno 2] No such file or directory: 'contriball-revsets.txt'
          [123]
      8c1d7a0e737b
    • Matt Harbison's avatar
      test-subrepo: fix globs for Windows · a48a7c2d1fea
      Matt Harbison authored
      It looks like these changes originated with 2538b87660be.  I'm not sure that it
      was intentional, but is seems harmless enough for an error message.
      a48a7c2d1fea
    • Matt Harbison's avatar
      test-clone: fix globs for Windows · 84074e4fc80f
      Matt Harbison authored
      84074e4fc80f
  15. Jul 20, 2015
  16. Jul 19, 2015
  17. Jul 18, 2015
  18. Jun 26, 2015
  19. Jul 18, 2015
Loading