Skip to content
Snippets Groups Projects
  1. Aug 15, 2014
  2. Aug 18, 2014
    • Gregory Szorc's avatar
      hgweb: refresh repository using URL not path (issue4323) · c39d404f
      Gregory Szorc authored
      hgweb detects out-of-date repository instances (using a highly
      suspect mechanism that should probably be fixed) and obtains a new
      repository object if needed.
      
      This patch changes the repository object copy to use the repo URL
      (instead of path). This preserves more information about the source
      repository and allows bundles to be served through hgweb.
      
      A test verifying that bundles can now be served properly via
      `hg serve` has been added.
      c39d404f
  3. Aug 19, 2014
    • Pierre-Yves David's avatar
      obsmarker: add `date` as an explicit field · 883e8b6b
      Pierre-Yves David authored
      The markers are now 5-item tuples (concluded by the date). The obsstore.fields
      contents have been updated accordingly.
      
      There is no change to the on-disk format yet, so the date has to be extracted
      every time we read binary markers and re-injected each team we write them. This
      introduces a slowdown that will be solved when a new version of the format is
      added. Such a slowdown was already introduced by the evolve extension anyway.
      883e8b6b
  4. Aug 12, 2014
    • Pierre-Yves David's avatar
      obsstore: add fields attribute to track each field in a marker · e75b1a3c
      Pierre-Yves David authored
      We are going to increase the amount of data explicitly stored in obsolescence
      markers. This mean we are going to have a longer tuple and some values will be
      shuffled around. So we add a ``fields`` attribute to the obsstore class to
      keep track of what entry is what. This will be useful for extensions and for
      documentation purpose.
      e75b1a3c
  5. Aug 14, 2014
  6. Aug 15, 2014
  7. Jun 24, 2014
  8. Aug 02, 2014
  9. Aug 15, 2014
    • Matt Mackall's avatar
      merge with stable · 8dda6f6f
      Matt Mackall authored
      8dda6f6f
    • Katsunori FUJIWARA's avatar
      rebase: use "rebase.collapse" as "editform" for "--collapse" always · 6122ad50
      Katsunori FUJIWARA authored
      Before this patch, if both "--message" and "--collapse" are specified
      for "hg rebase", "rebaes.normal" is used as "editform" unexpectedly.
      
      Unlike patches before and after in this series for improvement, this
      is bug fix patch.
      6122ad50
    • Katsunori FUJIWARA's avatar
      ui: invoke editor for committing with HGEDITFORM environment variable · 9fa42972
      Katsunori FUJIWARA authored
      At the external editor invocation for committing, the value specified
      as "editform" for "cmdutil.getcommiteditor" is in "HGEDITFORM".
      
      This enables external editor to do own customization according to
      commit types.
      9fa42972
    • Mads Kiilerich's avatar
      cleanup: name unused variables using convention of leading _ · f8dc6599
      Mads Kiilerich authored
      This helps checker tools ... and readability for those who knows and follows
      the convention.
      f8dc6599
    • Mads Kiilerich's avatar
    • Mads Kiilerich's avatar
      684bad8c
    • Mads Kiilerich's avatar
      cleanup: fix some list comprehension redefinitions of existing vars · 269688a3
      Mads Kiilerich authored
      In all the remaining cases the comprehension variable is used for the same
      thing as a previous loop variable.
      
      This will mute some pyflakes "list comprehension redefines" warnings.
      269688a3
    • Mads Kiilerich's avatar
      cleanup: avoid local vars shadowing imports · b27c3bea
      Mads Kiilerich authored
      This will mute some pyflakes "import ... shadowed by loop variable" warnings.
      b27c3bea
    • Mads Kiilerich's avatar
      cleanup: avoid _ for local unused tmp variables - that is reserved for i18n · b3e51675
      Mads Kiilerich authored
      _ is usually used for i18n markup but we also used it for I-don't-care
      variables.
      
      Instead, name don't-care variables in a slightly descriptive way but use the _
      prefix to designate unused variable.
      
      This will mute some pyflakes "import '_' ... shadowed by loop variable"
      warnings.
      b3e51675
    • Mads Kiilerich's avatar
      cleanup: make sure we always access members of imported modules · 77142de4
      Mads Kiilerich authored
      This will make sure we get import errors, even if demandimport is enabled.
      
      This will also mute some pyflakes 'imported but unused' warnings.
      77142de4
    • Katsunori FUJIWARA's avatar
      largefiles: update lfdirstate for unchanged largefiles during linear merging · f72d7393
      Katsunori FUJIWARA authored
      Before this patch, linear merging of modified largefiles causes
      an unexpected result, if (1) largefile collides with same-name normal one
      in the target revision and (2) "local" largefile is chosen, even
      though branch merging between such revisions works correctly.
      
      Expected result of such linear merging is marking the largefile as
      (re-)"added", but the actual result is marking it as "modified".
      
      The standin of modified "local largefile" is not changed by linear
      merging, and updating/merging update lfdirstate entries only for
      largefiles of which standins are changed.
      
      This patch adds the code path to update lfdirstate only for largefiles
      of which standins are not changed.
      
      In this case, "synclfdirstate" should be invoked with True as
      "normallookup" argument always to force using "normallookup" on
      dirstate for "n" files, because "normal" may mark target files as
      "clean" unexpectedly.
      
      To reduce cost of "lfile not in filelist", this patch converts
      "filelist" to a "set" object: "filelist" is used only in (1) the newly
      added code path and (2) the next line of "filelist = set(filelist)".
      
      This is a temporary way to fix with less changes. For fundamental
      resolution of this kind of problems in the future, "lfdirstate" should
      be updated with "dirstate" simultaneously during "merge.update"
      execution: maybe by hooking "recordupdates" (+ total refactoring
      around lfdirstate handling)
      f72d7393
    • Katsunori FUJIWARA's avatar
      largefiles: keep largefiles from colliding with normal one during linear merge · 23fe278b
      Katsunori FUJIWARA authored
      Before this patch, linear merging of modified or newly added largefile
      causes unexpected result, if (1) largefile collides with same name
      normal one in the target revision and (2) "local" largefile is chosen,
      even though branch merging between such revisions doesn't.
      
      Expected result of such linear merging is:
      
        (1) (not yet recorded) largefile is kept in the working directory
        (2) largefile is marked as (re-)"added"
        (3) colliding normal file is marked as "removed"
      
      But actual result is:
      
        (1) largefile in the working directory is unlinked
        (2) largefile is marked as "normal" (so treated as "missing")
        (3) the dirstate entry for colliding normal file is just dropped
      
      (1) is very serious, because there is no way to restore temporarily
      modified largefiles.
      
      (3) prevents the next commit from adding the manifest with correct
      "removal of (normal) file" information for newly created changeset.
      
      The root cause of this problem is putting "lfile" into "actions['r']"
      in linear-merging case. At liner merging, "actions['r']" causes:
      
        - unlinking "target file" in the working directory, but "lfile" as
          "target file" is also largefile itself in this case
      
        - dropping the dirstate entry for target file
      
      "actions['f']" (= "forget") does only the latter, and this is reason
      why this patch doesn't choose putting "lfile" into it instead of
      "actions['r']".
      
      This patch newly introduces action "lfmr" (LargeFiles: Mark as
      Removed) to mark colliding normal file as "removed" without unlinking
      it.
      
      This patch uses "hg debugdirstate" instead of "hg status" in test,
      because:
      
        - choosing "local largefile" hides "removed" status of "remote
          normal file" in "hg status" output, and
      
        - "hg status" for "large2" in this case has another problem fixed in
          the subsequent patch
      23fe278b
    • Katsunori FUJIWARA's avatar
      largefiles: add test for large/normal conflict at linear merging · 1dad76c0
      Katsunori FUJIWARA authored
      Before this patch, there is no explicit test for it: test-issue3084.t
      seems to test such conflict only at branch merging.
      
      This patch uses "[debug] dirstate.delaywrite" feature for the tests
      expecting "M" status of largefiles, to confirm certainly whether files
      are marked unexpectedly as "clean".
      1dad76c0
    • Katsunori FUJIWARA's avatar
      largefiles: put whole "hgmerge" process into the same "wlock" scope · 21694280
      Katsunori FUJIWARA authored
      Before this patch, there are two distinct "wlock" scopes below in
      "hgmerge":
      
        1. "merge.update" via original "hg.merge" function
        2. "updatelfiles" specific "wlock" scope (to synchronize largefile
           dirstate)
      
      But these should be executed in the same "wlock" scope for
      consistency, because users of "hg.merge" don't get "wlock" explicitly
      before invocation of it.
      
        - merge in commands
      
      This patch puts almost all of the original "hgmerge" implementation into
      "_hgmerge" to reduce changes.
      21694280
    • Katsunori FUJIWARA's avatar
      largefiles: put whole "hgupdaterepo" process into the same "wlock" scope · efc591e8
      Katsunori FUJIWARA authored
      Before this patch, there are two distinct "wlock" scopes below in
      "hgupdaterepo":
      
        1. "merge.update" via original "hg.updaterepo" function
        2. "updatelfiles" specific "wlock" scope (to synchronize largefile
           dirstate)
      
      In addition to them, "dirstate.walk" is executed between these "wlock"
      scopes.
      
      But these should be executed in the same "wlock" scope for
      consistency, because many (indirect) users of "hg.updaterepo" don't
      get "wlock" explicitly before invocation of it.
      
      "hg.clean" is invoked without "wlock" from:
      
        - mqrepo.restore in mq
        - bisect in commands
        - update in commands
      
      "hg.update" is invoked without "wlock" from:
      
        - clone in mq
        - pullrebase in rebase
        - postincoming in commands (used in "hg pull -u", "hg unbundle")
        - update in commands
      
      This patch puts almost all original "hgupdaterepo" implementation into
      "_hgupdaterepo" to reduce changes.
      efc591e8
    • Yuya Nishihara's avatar
      d1823cdf
    • Yuya Nishihara's avatar
  10. Jun 24, 2014
  11. Aug 02, 2014
  12. Jul 31, 2014
    • Pierre-Yves David's avatar
      revert: also track clean files · a89bc783
      Pierre-Yves David authored
      Tracking clean files is the simplest way to be able to reports files that need
      no changes. So we explicitly retrieve them.
      
      This fixes a couple of test outputs where the lack of changes was not reported.
      a89bc783
  13. Aug 02, 2014
    • Pierre-Yves David's avatar
      revert: triage "deleted" files into more appropriate categories · afead12e
      Pierre-Yves David authored
      Status can return file as "deleted". This is only a special case
      related to working directory state: file is recorded as tracked but no
      file exists on disk. This will never be a state obtainable from
      manifest comparisons.
      
      "Deleted" files have another working directory status shadowed by the lack of
      file. They will -alway- be touched by revert. The "lack of file" can be seen as
      a modification. The file will never match the same "content" as in the revert
      target. From there we have two options:
      
      1. The file exists in the target and can be seen as "modified".
      2. The file does not exist in the target and can be seen as "added".
      
      So now we just dispatch elements from delete into appropriate categories.
      afead12e
Loading