Skip to content
Snippets Groups Projects
  1. Apr 29, 2011
  2. Apr 24, 2011
    • Adrian Buehlmann's avatar
      changegroup: do not count closed new heads (issue2697) · 90d997a8
      Adrian Buehlmann authored
      If a closed head gets pulled, we currently see (example):
      
        $ hg pull
        pulling from $TESTTMP/repo2
        searching for changes
        adding changesets
        adding manifests
        adding file changes
        added 2 changesets with 1 changes to 1 files (+1 heads)
        (run 'hg heads' to see heads, 'hg merge' to merge)
      
      A subsequent 'hg heads' doesn't show that head because it is closed.
      
      This patch improves the UI response texts for that same use case to:
      
        $ hg pull
        pulling from $TESTTMP/repo2
        searching for changes
        adding changesets
        adding manifests
        adding file changes
        added 2 changesets with 1 changes to 1 files
        (run 'hg update' to get a working copy)
      
      That is, the part "(+1 heads)" is not shown in that case any longer.
      90d997a8
  3. Apr 29, 2011
  4. Mar 13, 2011
  5. Apr 29, 2011
  6. Apr 26, 2011
  7. Apr 25, 2011
  8. Apr 26, 2011
  9. Apr 25, 2011
  10. Apr 24, 2011
    • Greg Ward's avatar
    • Greg Ward's avatar
      atomictempfile: avoid infinite recursion in __del__(). · d764463b
      Greg Ward authored
      The problem is that a programmer using atomictempfile directly can
      make an innocent everyday mistake -- not enough args to the
      constructor -- which escalates badly.  You would expect a simple
      TypeError crash in that case, but you actually get an infinite
      recursion that is surprisingly difficult to kill: it happens between
      __del__() and __getattr__(), and Python does not handle infinite
      recursion from __del__() well.
      
      The fix is to not implement __getattr__(), but instead assign instance
      attributes for the methods we wish to delegate to the builtin file
      type: write() and fileno(). I've audited mercurial.* and hgext.* and
      found no users of atomictempfile using methods other than write() and
      rename(). I audited third-party extensions and found one (snap)
      passing an atomictempfile to util.fstat(), so I also threw in
      fileno().
      
      The last time I submitted a similar patch, Matt proposed that we make
      atomictempfile a subclass of file instead of wrapping it. Rejected on
      grounds of unnecessary complexity: for one thing, it would make the
      Windows implementation of posixfile quite a bit more complex. It would
      have to become a subclass of file rather than a simple function -- but
      since it's written in C, this is non-obvious and non-trivial.
      Furthermore, there's nothing wrong with wrapping objects and
      delegating methods: it's a well-established pattern that works just
      fine in many cases. Subclassing is not the answer to all of life's
      problems.
      d764463b
  11. Apr 25, 2011
  12. Apr 22, 2011
  13. Apr 24, 2011
Loading