Skip to content
Snippets Groups Projects
  1. Jul 09, 2020
  2. Jul 18, 2020
    • Manuel Jacob's avatar
      windows: don’t set `softspace` attribute in `winstdout` · ed58ecd5
      Manuel Jacob authored
      Python 2 file objects have the `softspace` attribute
      (https://docs.python.org/2/library/stdtypes.html#file.softspace), which is used
      by the print statement to track its internal state. The documentation demands
      from file-like objects only that the attribute is writable and initialized to
      0. Method `file.write()` sets it to 0, but this is not documented.
      Historically, sys.stdout was replaced by an instance of the `winstdout` class,
      so it needed to behave exactly the same (the softspace fix was introduced in
      705278e70457). Nowadays we don’t replace sys.stdout and don’t use the print
      statement on `winstdout` instances, so we can safely drop it.
      ed58ecd5
  3. Jul 17, 2020
  4. Jul 16, 2020
  5. Jul 14, 2020
  6. Jul 13, 2020
  7. Apr 01, 2020
  8. Jul 17, 2020
    • Manuel Jacob's avatar
      windows: always work around EINVAL in case of broken pipe for stdout / stderr · a37f290a
      Manuel Jacob authored
      In 29a905fe23ae, I missed the fact that the `winstdout` class works around two
      unrelated bugs (size limit when writing to consoles and EINVAL in case of
      broken pipe) and that the latter bug happens even when no console is involved.
      When writing a test for this, I realized that the same problem applies to
      stderr, so I applied the workaround for EINVAL to both stdout and stderr.
      
      The size limit is worked around in the same case as before (consoles on Windows
      on Python 2). For that, I changed the `winstdout` class.
      a37f290a
  9. Jul 16, 2020
  10. Jul 17, 2020
    • Manuel Jacob's avatar
      aea246bc
    • Manuel Jacob's avatar
      discovery: change users of `outgoing.missingheads` to `outgoing.ancestorsof` · c93dd9d9
      Manuel Jacob authored
      The attribute `missingheads` was recently renamed to `ancestorsof`, as it,
      despite the old name, doesn’t contain the missing heads but the changesets that
      were requested (including ancestors) for the outgoing operation.
      
      Changing all the users enables to print a warning if the old name is used.
      
      There is a good chance that some of the users are buggy because of the old name.
      Changing them to use the new name makes it more obvious that they are buggy. All
      users need to be reviewed for bugs. When sending patches for fixing them, the
      change will be more obvious without having to explain again and again the
      discrepancy of the old attribute name and what it actually contained.
      c93dd9d9
  11. Jul 15, 2020
    • Manuel Jacob's avatar
      discovery: fix docstring of `outgoing` class · 5631b011
      Manuel Jacob authored
      Also, introduce a more correct name `ancestorsof` for what was named
      `missingheads` before. For now, we just forward `ancestorsof` to `missingheads`
      until all users are changed.
      
      There were some mistakes in the old docstring / name:
      
      * `missingheads` (new name: `ancestorsof`) contains the revs whose ancestors
        are included in the outgoing operation. It may contain non-head revs and revs
        which are already on the remote, so the name "missingheads" is wrong in two
        ways.
      * `missing` contains only ancestors of `missingheads`, so not *all nodes*
        present in local but not in remote.
      * `common` might not contain all common revs, e.g. not some that are not an
        ancestor of `missingheads`.
      
      It seems like the misleading name have fostered an actual bug (issue6372),
      where `outgoing.missingheads` was used assuming that it contains the heads of
      the missing changesets.
      5631b011
    • Manuel Jacob's avatar
      discovery: weaken claim about returned common heads if ancestorsof are given · 75f6491b
      Manuel Jacob authored
      As the test case shows, the claim is not true in general.
      75f6491b
  12. Jul 16, 2020
  13. Jul 15, 2020
  14. Jul 16, 2020
  15. Jul 15, 2020
  16. Jul 16, 2020
  17. Jul 07, 2020
  18. Jun 01, 2020
    • Manuel Jacob's avatar
      absorb: make it explicit if empty changeset was created · f5509998
      Manuel Jacob authored
      If the config rewrite.empty-successor=skip is set, a message "became empty and
      was dropped" is shown if the changeset became empty. If the config
      rewrite.empty-successor=keep is set, absorb may create changesets even if they
      became empty. It’s probably a good idea to make that explicit. Therefore the
      message is changed to be a combination of both: "became empty and became ...".
      
      Repeating the word "became" is not very elegant. This results from the fact
      that "became" was and is overloaded to indicate both the change from non-empty
      to empty and the successor relation. In the combinated message, both meanings
      are used in one sentence.
      f5509998
    • Manuel Jacob's avatar
      absorb: consider rewrite.empty-successor configuration · 3ee8e2d5
      Manuel Jacob authored
      This adds support for the recently added rewrite.empty-successor configuration.
      3ee8e2d5
Loading