Skip to content
Snippets Groups Projects
  1. Feb 03, 2016
    • timeless's avatar
      tests: change blackbox test to work cross platform · 142891ab
      timeless authored
      While it is not easy to make a file 000 on Windows, you can
      emulate most of the behaviors by replacing the file with a directory.
      
      Also corrects test description to properly indicate that failing to
      read from the log is fatal.
      142891ab
  2. Feb 02, 2016
  3. Feb 03, 2016
    • Siddharth Agarwal's avatar
      rebase: respect checkunknown and checkignored in more cases · e397b58c
      Siddharth Agarwal authored
      checkunknown and checkignored are currently respected for updates and regular
      merges, but not for certain kinds of rebases. To be precise, they aren't
      respected for rebases when:
      
      (1) we're rebasing while currently on the destination commit, and
      (2) an untracked or ignored file F is currently in the working copy, and
      (3) the same file F is in a source commit, and
      (4) F has different contents in the source commit.
      
      This happens because rebases set force to True when calling merge.update.
      Setting force to True makes a lot of sense in general, but it turns out the
      force option is overloaded: there's a deprecated '--force' option in merge that
      allows you to merge in outstanding changes, including changes in untracked
      files. We use the 'mergeforce' parameter to tell those two cases apart.
      
      I think the behavior during rebases when checkunknown is 'abort' (the default)
      is wrong -- we should abort on or overwrite differing untracked files, not try
      to merge them in. However that currently breaks rebases by aborting in the
      middle -- we need better handling for that case before we can change the
      default.
      e397b58c
    • Siddharth Agarwal's avatar
      test-merge-force: add tests for merge.checkunknown=warn · d0d805df
      Siddharth Agarwal authored
      In an upcoming patch we're going to change the behavior of some merges with
      merge.checkunknown=warn or ignore -- ensure that the behavior of the deprecated
      'merge --force' remains the same.
      d0d805df
  4. Feb 02, 2016
  5. Feb 06, 2016
  6. Feb 03, 2016
  7. Feb 07, 2016
  8. Jan 19, 2016
    • Jun Wu's avatar
      chgserver: create new process group after fork (issue5051) · 83fc0c05
      Jun Wu authored
      This is to make SIGTSTP work. Before the patch, the server process group is
      considered "orphaned" and will ignore SIGTSTP, SIGTTIN, SIGTTOU, according to
      POSIX. See the comment above `will_become_orphaned_pgrp` in `kernel/exit.c`
      from Linux 4.3 for details.
      
      SIGTSTP is important if chgserver runs some ncurses commend like `commit -i`.
      Ncurses has its own SIGTSTP handler which will do the following:
      
        1. Clean the screen
        2. Stop itself by resending SIGTSTP to itself
        3. Restore the screen
      
      If SIGTSTP is ignored, step 2 will be a noop, which means the process cannot
      be suspended properly.
      
      In order to make things work, chg client needs to forward SIGTSTP and SIGCONT
      to server as well.
      83fc0c05
  9. Feb 05, 2016
    • Matt Mackall's avatar
      check-commit: check for double-addition of blank lines · e529b5f1
      Matt Mackall authored
      Previously, we were only checking for a blank line being added next to
      an existing one. Now we also check for two being added at the same time.
      e529b5f1
    • Matt Mackall's avatar
    • Durham Goode's avatar
      merge: add file ancestor linknode to mergestate · 8abd9f78
      Durham Goode authored
      During a merge, each file has a current commitnode+filenode, an other
      commitnode+filenode, and an ancestor commitnode+filenode. The ancestor
      commitnode is not stored though, and we rely on the ability for the filectx() to
      look up the commitnode by using the filenode's linkrev. In alternative backends
      (like remotefilelog), linkrevs may have restriction that prevent arbitrary
      linkrev look up given a filenode.
      
      This patch accounts for that by storing the ancestor commitnode in
      the merge state so that it is available later at resolve time.
      
      This results in some test changes because the ancestor commitnode we're using at
      resolve time changes slightly. Before, we used the linkrev commit, which is the
      earliest commit that introduced that particular filenode (which may not be the
      latest common ancestor of the commits being merged). Now we use the latest
      common ancestor of the merged commits as the commitnode. This is fine though,
      because that commit contains the same filenode as the linkrev'd commit.
      8abd9f78
    • Durham Goode's avatar
      merge: add debugmergestate support for _stateextras · eb22def9
      Durham Goode authored
      Now that we can store extras for each file, we need to have support for showing
      it in debugmergestate (the tests depend on this).
      eb22def9
    • Durham Goode's avatar
      merge: add state extras merge state data · 4a25e91f
      Durham Goode authored
      In future commits we will want to store more data related to each file in the
      merge state. This patch adds an optional record for storing a dictionary of
      extras for each file.
      4a25e91f
    • Durham Goode's avatar
      revset: use manifest.matches in _follow revset · 86c4cbda
      Durham Goode authored
      The old _follow revset iterated over every file in the commit and checked if it
      matched. For repos with large manifests, this could take 500ms. By switching to
      use manifest.matches() we can take advantage of the fastpaths built in to
      manifest.py that allows iterating over only the files in the matcher when it's a
      simple matcher. This brings the time spent down from 500ms to 0ms during simple
      operations like 'hg log -f file.txt'.
      86c4cbda
  10. Feb 04, 2016
    • Martin von Zweigbergk's avatar
      treemanifests: fix streaming clone · fb92927f
      Martin von Zweigbergk authored
      Similar to the previous patch, the .hg/store/meta/ directory does not
      get copied when when using "hg clone --uncompressed". Fix by including
      "meta/" in store.datafiles(). This seems safe to do, as there are only
      a few users of this method. "hg manifest" already filters the paths by
      "data/" prefix. The calls from largefiles also seem safe. The use in
      verify needs updating to prevent it from mistaking dirlogs for
      orphaned filelogs. That change is included in this patch.
      
      Since the dirlogs will now be in the fncache when using fncachestore,
      let's also update debugrebuildfncache(). That will also allow any
      existing treemanifest repos to get their dirlogs into the fncache.
      
      Also update test-treemanifest.t to use an a directory name that
      requires dot-encoding and uppercase-encoding so we test that the path
      encoding works.
      fb92927f
  11. Feb 03, 2016
  12. Feb 04, 2016
  13. Feb 05, 2016
    • Durham Goode's avatar
      copies: optimize forward copy detection logic for rebases · d4247c30
      Durham Goode authored
      Forward copy detection (i.e. detecting what files have been moved/copied in
      commit X since ancestor Y) previously required diff'ing the manifests of both X
      and Y. This was expensive since it required reading both entire manifests and
      doing a set difference (they weren't already in a set because of the
      lazymanifest work). This cost almost 1 second on very large repositories, and
      happens N times for a rebase of N commits.
      
      This patch optimizes it for the case of rebase. In a rebase, we are comparing a
      commit against it's immediate parent, and therefore we can know what files
      changed by looking at ctx.files().  This lets us drastically decrease the size
      of the set comparison, and makes it O(# of changes) instead of O(size of
      manifest). This makes it take 1ms instead of 1000ms.
      d4247c30
  14. Jan 26, 2016
  15. Feb 05, 2016
    • Katsunori FUJIWARA's avatar
      tests: remove protected file forcibly for portability · 90cff855
      Katsunori FUJIWARA authored
      Before this patch, test-command-template.t is timed out on Solaris,
      because "rm" on permission denied file implies prompting "override
      protection 0 (yes/no)?" and blocks execution of test script.
      90cff855
    • Katsunori FUJIWARA's avatar
      tests: dump journal file by python script instead of sed for portability · afb86ee9
      Katsunori FUJIWARA authored
      Before this patch, test-repair-strip.t fails on Solaris, because of
      "sed" on it doesn't work as expected if input contains null ('\0')
      character.
      afb86ee9
    • Katsunori FUJIWARA's avatar
      tests: execute check-config.py without xargs · 8f244b75
      Katsunori FUJIWARA authored
      Before this patch, test-check-config.t fails on Solaris, because
      "xargs" doesn't invoke check-config.py with all filenames at once.
      
      "xargs" may invoke specified command multiple times with part of
      arguments given from stdin: according to "xargs(1)" man page, this
      dividing arguments is system-dependent.
      
      For portability of test-check-config.t, this patch adds "xargs" like
      mode to check-config.py and executes it in test-check-config.t without
      "xargs".
      8f244b75
    • Katsunori FUJIWARA's avatar
      tests: avoid nested quoting on command line for portability · 5daf1a8c
      Katsunori FUJIWARA authored
      Before this patch, test-revset.t fails on Solaris using ksh as default
      "sh", because nested quoting below isn't acceptable for it.
      
                      +-----------------------------+ inner quoting
          "`python -c "print '|'.join(['0:1'] * 500)"`"
          +-------------------------------------------+ outer quoting
      
      This patch does below for portability.
      
        - omit outer quoting
      
          This should be safe, because generated string contains no white
          space character.
      
        - use '+' instead of '|' (for safety)
      
          '|' has special meaning for many shell, but '+' isn't (at least,
          for ordinary ones).
      5daf1a8c
    • liscju's avatar
  16. Feb 03, 2016
  17. Feb 05, 2016
  18. Feb 02, 2016
    • Yuya Nishihara's avatar
      revset: flatten chained 'list' operations (aka function args) (issue5072) · b19d8d5d
      Yuya Nishihara authored
      Internal _matchfiles() function can take bunch of arguments, which would
      lead to a maximum recursion depth error. This patch avoids the excessive
      stack use by flattening 'list' nodes beforehand.
      
      Since getlist() no longer takes a nested 'list' nodes, _parsealiasdecl()
      also needs to flatten argument list, "aliasname($1, $2, ...)".
      b19d8d5d
  19. Feb 05, 2016
Loading