[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mercurial-devel
Subject:    D587: copytrace: add `hg help copytrace`
From:       "pulkit (Pulkit Goyal)" <phabricator () mercurial-scm ! org>
Date:       2017-08-31 22:29:14
Message-ID: differential-rev-PHID-DREV-2emlg6rqsgfew3dein2p-req () phab ! mercurial-scm ! org
[Download RAW message or body]

pulkit created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  Currently we have one slow implementation of copytrace. While moving
  fbext/copytrace to core, a lot of things will be introduced and some new
  configs for user to switch between different implementations. But if that goes
  undocumented the configs will be magic for the user. So lets document copytrace
  first before we add any new logic or config options.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D587

AFFECTED FILES
  mercurial/help.py
  mercurial/help/copytrace.txt
  tests/test-globalopts.t
  tests/test-help.t
  tests/test-hgweb-json.t
  tests/test-install.t

CHANGE DETAILS

diff --git a/tests/test-install.t b/tests/test-install.t
--- a/tests/test-install.t
+++ b/tests/test-install.t
@@ -162,6 +162,7 @@
   $ ( testrepohgenv; $PYTHON wixxml.py help )
   Not installed:
     help/common.txt
+    help/copytrace.txt
     help/hg-ssh.8.txt
     help/hg.1.txt
     help/hgignore.5.txt
diff --git a/tests/test-hgweb-json.t b/tests/test-hgweb-json.t
--- a/tests/test-hgweb-json.t
+++ b/tests/test-hgweb-json.t
@@ -1561,6 +1561,10 @@
         "topic": "config"
       },
       {
+        "summary": "Copytracing in Mercurial",
+        "topic": "copytrace"
+      },
+      {
         "summary": "Date Formats",
         "topic": "dates"
       },
diff --git a/tests/test-help.t b/tests/test-help.t
--- a/tests/test-help.t
+++ b/tests/test-help.t
@@ -105,6 +105,7 @@
    bundlespec    Bundle File Formats
    color         Colorizing Outputs
    config        Configuration Files
+   copytrace     Copytracing in Mercurial
    dates         Date Formats
    diffs         Diff Formats
    environment   Environment Variables
@@ -183,6 +184,7 @@
    bundlespec    Bundle File Formats
    color         Colorizing Outputs
    config        Configuration Files
+   copytrace     Copytracing in Mercurial
    dates         Date Formats
    diffs         Diff Formats
    environment   Environment Variables
@@ -860,6 +862,7 @@
    bundlespec    Bundle File Formats
    color         Colorizing Outputs
    config        Configuration Files
+   copytrace     Copytracing in Mercurial
    dates         Date Formats
    diffs         Diff Formats
    environment   Environment Variables
@@ -1975,6 +1978,13 @@
   Configuration Files
   </td></tr>
   <tr><td>
+  <a href="/help/copytrace">
+  copytrace
+  </a>
+  </td><td>
+  Copytracing in Mercurial
+  </td></tr>
+  <tr><td>
   <a href="/help/dates">
   dates
   </a>
diff --git a/tests/test-globalopts.t b/tests/test-globalopts.t
--- a/tests/test-globalopts.t
+++ b/tests/test-globalopts.t
@@ -343,6 +343,7 @@
    bundlespec    Bundle File Formats
    color         Colorizing Outputs
    config        Configuration Files
+   copytrace     Copytracing in Mercurial
    dates         Date Formats
    diffs         Diff Formats
    environment   Environment Variables
@@ -427,6 +428,7 @@
    bundlespec    Bundle File Formats
    color         Colorizing Outputs
    config        Configuration Files
+   copytrace     Copytracing in Mercurial
    dates         Date Formats
    diffs         Diff Formats
    environment   Environment Variables
diff --git a/mercurial/help/copytrace.txt b/mercurial/help/copytrace.txt
new file mode 100644
--- /dev/null
+++ b/mercurial/help/copytrace.txt
@@ -0,0 +1,33 @@
+Mercurial does not stores information about copies or moves if you don't use
+`hg move` or `hg copy`.
+
+Copytracing is tracing copies or moves which user did when performing commands
+like rebase, merge, unshelve etc. to merge files that were move/copied in one
+merge parent and modified in another. Let's take a quick example::
+
+  o       3   Current head
+  |
+  .
+  .   o   4   More modifications to a.txt
+  |  /
+  o /     2   Renamed a.txt to b.txt
+  |/
+  o       1   Modified a.txt
+  |
+  o       0   Added a.txt
+
+Let's say that now we want to rebase revision '4' with description "more
+modifictaions to a.txt" on revision '3' with description "current head".
+Mercurial tries that but wait, there is no 'a.txt' in the "current head" and it
+will show you the following annoying message:
+
+```
+other [source] changed a which local [dest] deleted
+use (c)hanged version, leave (d)eleted, or leave (u)nresolved?
+```
+
+Copytracing is disabled by default as the default copytracing method is slow.
+You can turn that on by setting the following::
+
+  [experimental]
+  disablecopytrace = False
diff --git a/mercurial/help.py b/mercurial/help.py
--- a/mercurial/help.py
+++ b/mercurial/help.py
@@ -216,6 +216,7 @@
     return ''.join(lines)
 
 helptable = sorted([
+    (['copytrace'], _("Copytracing in Mercurial"), loaddoc('copytrace')),
     (['bundlespec'], _("Bundle File Formats"), loaddoc('bundlespec')),
     (['color'], _("Colorizing Outputs"), loaddoc('color')),
     (["config", "hgrc"], _("Configuration Files"), loaddoc('config')),



To: pulkit, #hg-reviewers
Cc: mercurial-devel
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic