Skip to content
Snippets Groups Projects
  1. Apr 19, 2018
  2. Apr 18, 2018
  3. Apr 19, 2018
    • Matt Harbison's avatar
      infinitepush: open files in binary mode · 33d26f7bd6ca
      Matt Harbison authored
      This fixes the scary looking abort in test-infinitepush-ci.t when unbundling:
      
        --- tests/test-infinitepush-ci.t
        +++ tests/test-infinitepush-ci.t.err
        @@ -84,15 +84,12 @@
      
           $ hg unbundle .hg/scratchbranches/filebundlestore/a4/c2/a4c202c147a9c4bb91bbadb56321fc5f3950f7f2
           adding changesets
        -  adding manifests
        -  adding file changes
        -  added 1 changesets with 1 changes to 1 files
        -  new changesets 6cb0989601f1
        -  (run 'hg update' to get a working copy)
        -
        -  $ hg glog
        -  o  1:6cb0989601f1 added a
        -  |  public
        +  transaction abort!
        +  rollback completed
        +  abort: stream ended unexpectedly  (got 68 bytes, expected 218759168)
        +  [255]
        +
        +  $ hg glog
           @  0:67145f466344 initialcommit
              public
      
      This was found by grepping for '"r', "'r", '"w' and "'w" after manually creating
      a bundle from the same revision, diffing against the corrupt one, and seeing CRs
      sprinkled around.  Sadly, the missing bookmarks are still a problem in the two
      remaining test failures.
      33d26f7bd6ca
  4. Mar 31, 2018
  5. Apr 18, 2018
  6. Mar 04, 2018
    • Augie Fackler's avatar
      rebase: introduce support for automatically rebasing orphan changes · 92213f6745ed
      Augie Fackler authored
      _destautorebase(SRC) is based on the _destrestack(SRC) revset from
      fbamend. The supporting _possibledestination function is extracted
      from evolve, with minor cleanups.
      
      We've considered some alternatives here:
       * This change, but with --auto as the flag name. We're hedging our bets
         on this a little in this change so that if this ends up being the wrong
         direction we haven't burned the valauble --auto name on rebase.
       * --destination auto: I've got reservations about the discoverability of this,
         and we don't currently have a good story for a revset alias of sorts that
         changes behavior depending on the context in which it's used.
       * A "rebase presets" feature, where we could use the currently-an-error
         positional argument space for the rebase command to define presets, so that
         users could define a 'linearize' preset that specifies
         --revision='orphan()-obsolete()' and --dest=_destautoorphanrebase(SRC).
      
      Personally, I find the third option somewhat appealing, but am
      hesitant to "spend" the functionality space of positional arguments to
      the rebase command. We should revisit the way we expose this
      functionality sometime in the 4.7 cycle once we've had a chance to vet
      the implementation of the functionality.
      
      Differential Revision: https://phab.mercurial-scm.org/D2668
      92213f6745ed
  7. Apr 18, 2018
  8. Apr 17, 2018
  9. Apr 18, 2018
  10. Apr 17, 2018
  11. Apr 13, 2018
    • Yuya Nishihara's avatar
      log: fix crash on empty revision with --copies switch · 141017c7f7a9
      Yuya Nishihara authored
      If a revset is empty, .max() raises ValueError.
      
      I don't see any reason to recompute the revs, so I made it reuse the one
      returned by logcmdutil.getrevs(). If no revs specified by command line,
      the endrev will be smartset.spanset(repo) + 1, which is basically the same
      as len(repo), the default of getrenamedfn(). If --follow specified,
      revs.max() points to the working parent, which seems more correct.
      141017c7f7a9
  12. Apr 17, 2018
    • Yuya Nishihara's avatar
      revsetlang: do not pass in non-bytes to parse() · 03d7f885d5f2
      Yuya Nishihara authored
      Since parse() isn't a simple function, we shouldn't expect it would raise
      TypeError or ValueError for invalid inputs. Before, TypeError was raised
      at 'if pos != len(spec)', which was quite late to report an error.
      
      This patch also makes tokenize() detect invalid object before converting
      it to a py3-safe bytes.
      
      Spotted while adding the 'revset(...)' hack to _parsewith().
      03d7f885d5f2
  13. Apr 13, 2018
  14. Apr 17, 2018
  15. Apr 06, 2018
  16. Apr 15, 2018
    • Matt Harbison's avatar
      lfs: enable the final download count status message · ab04972a33ef
      Matt Harbison authored
      At this point, I think all of the core commands are prefetching, except grep and
      verify.  Verify will need some special handling, in case the revlogs are
      corrupt.
      
      Grep has an issue that still needs to be debugged, but we probably need to give
      the behavior some thought too- it would be a shame to have to download
      everything in order to search.  I think the benefit of having this info for all
      commands outweighs extra printing in a command that is arguably not well
      behaved in this context anyway.
      ab04972a33ef
    • Matt Harbison's avatar
      diff: invoke the file prefetch hook · 5e67c20915a7
      Matt Harbison authored
      By invoking it this deep within the command, we pick up both subrepo and hgweb
      support, as well as --patch support for commands that implement logopts.
      5e67c20915a7
  17. Apr 14, 2018
    • Matt Harbison's avatar
      export: invoke the file prefetch hook · b54404d66f7e
      Matt Harbison authored
      cmdutil.exportfile() is only called by shelve, mq and patchbomb.  Those are
      unlikely to mix with lfs, but it may as well be invoked there for completeness.
      b54404d66f7e
    • Matt Harbison's avatar
      scmutil: teach the file prefetch hook to handle multiple commits · 7269b87f817c
      Matt Harbison authored
      The remainder of the commands that need prefetch deal with multiple revisions.
      I initially coded this as a separate hook, but then it needed a list of files
      to handle `diff` and `grep`, so it didn't seem worth keeping them separate.
      
      Not every matcher will emit bad file messages (some are built from a list of
      files that are known to exist).  But it seems better to filter this in one place
      than to push this on either each caller or each hook implementation.
      7269b87f817c
  18. Apr 17, 2018
  19. Apr 10, 2018
    • Boris Feld's avatar
      revset: skip legacy lookup for revspec wrapped in 'revset(...)' · 29eb4cafeeb8
      Boris Feld authored
      Currently, multiple labels can take forms that can be confused with revset
      (eg: "rev(0)" is a valid tag). Since we look up for tags before evaluating
      revset, this means a tag can shadow a valid revset at any time.
      
      We now enforce the strict revset parsing when wrapped with 'revset(...)'. For
      now, This only work on a whole revspec (but can be used within the revset
      without effect). This might change in the future if we improve the
      implementation.
      
      The feature is undocumented for now, keeping it in the experimental namespace.
      In case a better approach to achieve the same goal is found.
      
      The syntax looks like a revset but is not implemented as such for now. Since the
      goal is to avoid some preprocessing that happens before revset parsing, we
      cannot simply implement it as a revset predicate.
      
      There was other approaches discussed over the mailing-list but they were less
      convincing.
      
      Having a configuration flag to disable legacy lookup have been considered but
      discarded. There are too many common uses of ambiguous identifier (eg: '+',
      '-' or '..') to have the legacy lookup mechanism turned off.
      
      In addition, the  approach can control the parsing of each revset, making
      it more flexible. For example, a revset used as the value of an existing
      configuration option (eg: pushrev) could enforce its resolution as a revset (by
      using the prefix) while user inputs would still use the legacy lookup.
      
      In addition of offering a way to unambiguously input a revset, this prefix
      allow skipping the name lookup providing a significant speedup in some case.
      29eb4cafeeb8
  20. Mar 01, 2018
  21. Apr 15, 2018
Loading