Skip to content
Snippets Groups Projects
  1. Jun 01, 2012
    • Bryan O'Sullivan's avatar
      revlog: ancestors(*revs) becomes ancestors(revs) (API) · 91f3ac20
      Bryan O'Sullivan authored
      Accepting a variable number of arguments as the old API did is
      deeply ugly, particularly as it means the API can't be extended
      with new arguments.  Partly as a result, we have at least three
      different implementations of the same ancestors algorithm (!?).
      
      Most callers were forced to call ancestors(*somelist), adding to
      both inefficiency and ugliness.
      91f3ac20
  2. May 15, 2012
  3. May 03, 2012
    • Patrick Mézard's avatar
      rebase: allow collapsing branches in place (issue3111) · d1afbf03
      Patrick Mézard authored
      We allow rebase plus collapse, but not collapse only? I imagine people would
      rebase first then collapse once they are sure the rebase is correct and it is
      the right time to finish it.
      
      I was reluctant to submit this patch for reasons detailed below, but it
      improves rebase --collapse usefulness so much it is worth the ugliness.
      
      The fix is ugly because we should be fixing the collapse code path rather than
      the merge. Collapsing by merging changesets repeatedly is inefficient compared
      to what commit --amend does: commitctx(), update, strip. The problem with the
      latter is, to generate the synthetic changeset, copy records are gathered with
      copies.pathcopies(). copies.pathcopies() is still implemented with merging in
      mind and discards information like file replaced by the copy of another,
      criss-cross copies and so forth. I believe this information should not be lost,
      even if we decide not to interpret it fully later, at merge time.
      
      The second issue with improving rebase --collapse is the option should not be
      there to begin with. Rebasing and collapsing are orthogonal and a dedicated
      command would probably enable a better, simpler ui. We should avoid advertizing
      rebase --collapse, but with this fix it becomes the best shipped solution to
      collapse changesets.
      
      And for the record, available techniques are:
      - revert + commit + strip: lose copies
      - mq/qfold: repeated patching() (mostly correct, fragile)
      - rebase: repeated merges (mostly correct, fragile)
      - collapse: revert + tag rewriting wizardry, lose copies
      - histedit: repeated patching() (mostly correct, fragile)
      - amend: copies.pathcopies() + commitctx() + update + strip
      d1afbf03
  4. May 01, 2012
  5. May 02, 2012
  6. Apr 29, 2012
    • Patrick Mézard's avatar
      localrepo: add setparents() to adjust dirstate copies (issue3407) · ebf6d38c
      Patrick Mézard authored
      The fix introduced in eab9119c5dee was only partially successful. It is correct
      to turn dirstate 'm' merge records into normal/dirty ones but copy records are
      lost in the process. To adjust them as well, we need to look in the first
      parent manifest to know which files were added and preserve only related
      records. But the dirstate does not have access to changesets, the logic has to
      moved at another level, in localrepo.
      ebf6d38c
  7. Apr 25, 2012
    • Patrick Mézard's avatar
      rebase: preserve mq series order, guarded patches (issue2849) · b9f51f49
      Patrick Mézard authored
      The previous code was rebasing an applied series like:
      
        patch1 +guarded
        patch2
        patch3 +guarded
        patch4
        patch5 +guarded
      
      into:
      
        patch2
        patch4
        patch1 +guarded
        patch3 +guarded
        patch5 +guarded
      
      Reported by Lars Westerhoff <lars.westerhoff@newtec.eu>
      
      Also rename mq.series_dirty into mq.seriesdirty, missed by 599a72895c0d, and
      without effect since mq.qimport() was setting it already.
      b9f51f49
  8. Mar 22, 2012
  9. Mar 04, 2012
  10. Jan 20, 2012
  11. Jan 19, 2012
  12. Jan 17, 2012
    • Alain  Leufroy <alain.leufroyATgmailMYDOTcom>'s avatar
      rebase: fix phases movement · e66084ef
      Alain Leufroy authored
      Rebase now try to keep the phases of source changesets.
      e66084ef
    • kiilerix's avatar
      rebase: write series file without removed mq patches · 7d28d6a6
      kiilerix authored
      Rebase will remove empty changesets and will also completely remove the mq
      patch file for rebased empty patches.
      
      Starting with b28004513977 (1.9) it would preserve guards by writing the old
      series file back. That would however also reintroduce removed patch files in
      the series file and the inconsistency would make qpop + qpush fail.
      
      This patch backs out most of b28004513977 and makes sure guards are preserved
      without reintroducing removed patches.
      7d28d6a6
  13. Jan 13, 2012
  14. Jan 10, 2012
  15. Jan 08, 2012
    • Steven Brown's avatar
      rebase: reinstate old-style rev spec support for the source and base (issue3181) · e4fc0f0b
      Steven Brown authored
      As of b12362ab13e7 (first released as part of Mercurial 2.0), the rebase command
      accepted ONLY revsets for the source and base arguments and no longer accepted
      old-style revision specifications. As a result, some revision names were no
      longer recognised, e.g.
      
      hg rebase --base br-anch
      abort: unknown revision 'br'!
      
      These arguments are now interpreted first as old-style revision specifications,
      then as revsets when no matching revision is found. This restores backwards
      compatibility with releases prior to 2.0.
      e4fc0f0b
  16. Jan 06, 2012
  17. Dec 26, 2011
  18. Dec 27, 2011
  19. Nov 10, 2011
  20. Nov 08, 2011
  21. Nov 06, 2011
  22. Nov 02, 2011
  23. Oct 17, 2011
  24. Oct 15, 2011
  25. Oct 11, 2011
  26. Oct 09, 2011
  27. Sep 19, 2011
  28. Jul 21, 2011
  29. Jul 18, 2011
  30. Jul 15, 2011
  31. Jun 08, 2011
  32. Jun 12, 2011
  33. Jun 13, 2011
Loading