Skip to content
Snippets Groups Projects
  1. Feb 06, 2014
  2. Jan 31, 2014
    • Pierre-Yves David's avatar
      push: feed pulloperation object to _pullobsolete function · 80628d40
      Pierre-Yves David authored
      We now have all necessary information in the `pulloperation` object itself.
      80628d40
    • Pierre-Yves David's avatar
      pull: move transaction logic into the pull object · 2607a21b
      Pierre-Yves David authored
      Most local change that occurs during a pull are doing within a `transaction`.
      Currently this mean (1) adding new changeset (2) adding obsolescence markers. We
      want the two operations to be done in the same transaction. However we do not
      want to create a transaction if nothing is added to the repo. Creating an empty
      transaction would drop the previous transaction data and confuse tool and people
      who are still using rollback.
      
      So the current pull code has some logic to create and handle this transaction on
      demand. We are moving this logic in to the `pulloperation` object itself to
      simplify this lazy creation logic through all different par of the push.
      
      Note that, in the future, other part of pull (phases, bookmark) will probably
      want to be part of the transaction too.
      2607a21b
    • Pierre-Yves David's avatar
      pull: move obsolescence marker exchange in the exchange module · 1180c6ec
      Pierre-Yves David authored
      The obsolescence marker exchange code was already extracted during a previous
      cycle. We are moving the extracted functio in this module. This function will
      read and write data in the `pulloperation` object and I prefer to have all core
      function collaborating through this object in the same place.
      
      This changeset is pure code movement only. Code change for direct consumption of
      the `pulloperation` object will come later.
      1180c6ec
  3. Feb 01, 2014
  4. Jan 31, 2014
  5. Jan 27, 2014
  6. Feb 12, 2014
  7. Jan 31, 2014
    • Pierre-Yves David's avatar
      exchange: extract pull function from localrepo · 6b4c789d
      Pierre-Yves David authored
      The localrepo class if far too big. Push and pull logic are extracted and
      reworked to better fit with the fact we exchange more than bundle now.
      
      This changeset extract the pulh code. later changeset will slowly slice it into
      smaller brick.
      
      The localrepo.pull method is kept for now to limit impact on user code. But it
      will be ultimately removed, now that the public API is hold by peer.
      6b4c789d
    • Pierre-Yves David's avatar
      push: extract new common set computation from phase synchronisation · 7d0bbb6d
      Pierre-Yves David authored
      Now that every necessary information is held in the `pushoperation` object, we
      can extract the new common set computation to it's own function.
      
      This changeset is pure code movement only.
      7d0bbb6d
    • Pierre-Yves David's avatar
      push: move `commonheads` into the push object · ef880ced
      Pierre-Yves David authored
      The phase synchronisation start by computing the new set of common head between
      local and remote and then do the phase synchronisation on this set. This new
      common set logic will eventually be used by the obsolescence markers exchange.
      So we are going to split the long phase synchronisation in two.
      ef880ced
    • Pierre-Yves David's avatar
      push: move discovery in its own function · 233623d5
      Pierre-Yves David authored
      Now that every necessary information is held in the `pushoperation` object, we
      can extract the discovery logic to it's own function.
      
      This changeset is pure code movement only.
      233623d5
    • Pierre-Yves David's avatar
      push: move outgoing check logic in its own function · 170f7106
      Pierre-Yves David authored
      Now that every necessary information is held in the `pushoperation` object, we
      can extract the part responsible of aborting the push to it's own function.
      
      This changeset is mostly pure code movement. the exception is the fact this
      function returns a value to decide if changeset bundle should be pushed.
      170f7106
    • Pierre-Yves David's avatar
      push: move `incoming` into the push object · d032417d
      Pierre-Yves David authored
      The fact that there is some unknown changes on remote one of the result of
      discovery. It is then used by some push validation logic.
      
      We move it in the object to be able to extract the said logic.
      d032417d
    • Pierre-Yves David's avatar
      push: move changeset push logic in its own function · f1b532a3
      Pierre-Yves David authored
      Now that every necessary information is held in the `pushoperation` object, we
      can extract the logic pushing changeset  to it's own function.
      
      This changeset is pure code movement only.
      f1b532a3
    • Pierre-Yves David's avatar
      push: move `remoteheads` into the push object · 0031ef5d
      Pierre-Yves David authored
      The heads of the remote repository are used to detect race when pushing
      changeset. We now store this information in `pushoperation` object  to allow
      extraction of the changeset pushing part.
      0031ef5d
  8. Feb 04, 2014
  9. Jan 31, 2014
    • Lucas Moscovicz's avatar
      revset: added lazyset implementation to checkstatus · ed7b6748
      Lucas Moscovicz authored
      This improves the performance of the revsets 'adds' 'modifies' and 'removes'
      
      Performance benchmarking:
      
      $ time hg log -qr "first(adds(README))"
      0:9117c6561b0b
      
      real  0m2.279s
      user  0m2.222s
      sys 0m0.053s
      
      $ time ./hg log -qr "first(adds(README))"
      0:9117c6561b0b
      
      real  0m0.172s
      user  0m0.131s
      sys 0m0.041s
      
      $ time hg log -qr "first(modifies(README))"
      1:273ce12ad8f1
      
      real  0m2.292s
      user  0m2.227s
      sys 0m0.061s
      
      $ time ./hg log -qr "first(modifies(README))"
      1:273ce12ad8f1
      
      real  0m0.178s
      user  0m0.130s
      sys 0m0.038s
      
      $ time hg log -qr "first(removes(README))"
      2379:e90cff87f871
      
      real  0m2.297s
      user  0m2.235s
      sys 0m0.058s
      
      $ time ./hg log -qr "first(removes(README))"
      2379:e90cff87f871
      
      real  0m0.975s
      user  0m0.797s
      sys 0m0.056s
      ed7b6748
    • Lucas Moscovicz's avatar
      revset: added lazyset implementation to public revset · 9a49feb4
      Lucas Moscovicz authored
      Performance Benchmarking:
      
      $ time hg log -qr "first(public())"
      ...
      
      real  0m1.184s
      user  0m1.051s
      sys 0m0.130s
      
      $ time ./hg log -qr "first(public())"
      ...
      
      real  0m0.548s
      user  0m0.427s
      sys 0m0.118s
      9a49feb4
  10. Feb 12, 2014
  11. Jan 31, 2014
  12. Jan 30, 2014
  13. Feb 04, 2014
  14. Jan 29, 2014
  15. Feb 04, 2014
  16. Jan 29, 2014
  17. Feb 06, 2014
  18. Feb 11, 2014
  19. Jan 28, 2014
  20. Feb 11, 2014
Loading