D12136: revlog: extract entry byte offsets into named constants

2022-02-07 Thread pacien (Pacien)
pacien created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  Labelling the fields pointed by the given offsets shared by revlog v1 and v2.

REPOSITORY
  rHG Mercurial

BRANCH
  default

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

AFFECTED FILES
  mercurial/cext/revlog.c

CHANGE DETAILS

diff --git a/mercurial/cext/revlog.c b/mercurial/cext/revlog.c
--- a/mercurial/cext/revlog.c
+++ b/mercurial/cext/revlog.c
@@ -136,6 +136,20 @@
 static const long format_v1 = 1; /* Internal only, could be any number */
 static const long format_v2 = 2; /* Internal only, could be any number */
 
+static const long entry_offset_high = 0;
+static const long entry_offset_offset_flags = 4;
+static const long entry_offset_comp_len = 8;
+static const long entry_offset_uncomp_len = 12;
+static const long entry_offset_base_rev = 16;
+static const long entry_offset_link_rev = 20;
+static const long entry_offset_parent_1 = 24;
+static const long entry_offset_parent_2 = 28;
+static const long entry_offset_node_id = 32;
+static const long entry_offset_sidedata_offset = 64;
+static const long entry_offset_sidedata_comp_len = 72;
+static const long entry_offset_all_comp_mode = 76;
+static const long entry_offset_padding_start = 77;
+
 static const char comp_mode_inline = 2;
 static const char rank_unknown = -1;
 
@@ -206,8 +220,8 @@
 {
const char *data = index_deref(self, rev);
 
-   ps[0] = getbe32(data + 24);
-   ps[1] = getbe32(data + 28);
+   ps[0] = getbe32(data + entry_offset_parent_1);
+   ps[1] = getbe32(data + entry_offset_parent_2);
 
/* If index file is corrupted, ps[] may point to invalid revisions. So
 * there is a risk of buffer overflow to trust them unconditionally. */
@@ -254,12 +268,12 @@
return 0;
 
data = index_deref(self, rev);
-   offset = getbe32(data + 4);
+   offset = getbe32(data + entry_offset_offset_flags);
if (rev == 0) {
/* mask out version number for the first entry */
offset &= 0x;
} else {
-   uint32_t offset_high = getbe32(data);
+   uint32_t offset_high = getbe32(data + entry_offset_high);
offset |= ((uint64_t)offset_high) << 32;
}
return (int64_t)(offset >> 16);
@@ -275,7 +289,7 @@
 
data = index_deref(self, rev);
 
-   tmp = (int)getbe32(data + 8);
+   tmp = (int)getbe32(data + entry_offset_comp_len);
if (tmp < 0) {
PyErr_Format(PyExc_OverflowError,
 "revlog entry size out of bound (%d)", tmp);
@@ -320,7 +334,7 @@
if (data == NULL)
return NULL;
 
-   offset_flags = getbe32(data + 4);
+   offset_flags = getbe32(data + entry_offset_offset_flags);
/*
 * The first entry on-disk needs the version number masked out,
 * but this doesn't apply if entries are added to an empty index.
@@ -328,17 +342,17 @@
if (self->length && pos == 0)
offset_flags &= 0x;
else {
-   uint32_t offset_high = getbe32(data);
+   uint32_t offset_high = getbe32(data + entry_offset_high);
offset_flags |= ((uint64_t)offset_high) << 32;
}
 
-   comp_len = getbe32(data + 8);
-   uncomp_len = getbe32(data + 12);
-   base_rev = getbe32(data + 16);
-   link_rev = getbe32(data + 20);
-   parent_1 = getbe32(data + 24);
-   parent_2 = getbe32(data + 28);
-   c_node_id = data + 32;
+   comp_len = getbe32(data + entry_offset_comp_len);
+   uncomp_len = getbe32(data + entry_offset_uncomp_len);
+   base_rev = getbe32(data + entry_offset_base_rev);
+   link_rev = getbe32(data + entry_offset_link_rev);
+   parent_1 = getbe32(data + entry_offset_parent_1);
+   parent_2 = getbe32(data + entry_offset_parent_2);
+   c_node_id = data + entry_offset_node_id;
 
if (self->format_version == format_v1) {
sidedata_offset = 0;
@@ -346,10 +360,12 @@
data_comp_mode = comp_mode_inline;
sidedata_comp_mode = comp_mode_inline;
} else {
-   sidedata_offset = getbe64(data + 64);
-   sidedata_comp_len = getbe32(data + 72);
-   data_comp_mode = data[76] & 3;
-   sidedata_comp_mode = ((data[76] >> 2) & 3);
+   sidedata_offset = getbe64(data + entry_offset_sidedata_offset);
+   sidedata_comp_len =
+   getbe32(data + entry_offset_sidedata_comp_len);
+   data_comp_mode = data[entry_offset_all_comp_mode] & 3;
+   sidedata_comp_mode =
+   ((data[entry_offset_all_comp_mode] >> 2) & 3);
}
 
return Py_BuildValue(tuple_format, offset_flags, comp_len, uncomp_len,
@@ -421,7 +437,7 @@
return NULL;
 
data = index_deref(self, pos);
-  

D12137: revlog: split revlog v1 and revlog v2 handling

2022-02-07 Thread pacien (Pacien)
pacien created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  Explicitly splitting their fields packing and unpacking makes it easier to
  extend the existing C implemenation to handle the new changelog format, whose
  fields and offsets are not simply a superset of the revlog.

REPOSITORY
  rHG Mercurial

BRANCH
  default

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

AFFECTED FILES
  mercurial/cext/revlog.c

CHANGE DETAILS

diff --git a/mercurial/cext/revlog.c b/mercurial/cext/revlog.c
--- a/mercurial/cext/revlog.c
+++ b/mercurial/cext/revlog.c
@@ -136,19 +136,29 @@
 static const long format_v1 = 1; /* Internal only, could be any number */
 static const long format_v2 = 2; /* Internal only, could be any number */
 
-static const long entry_offset_high = 0;
-static const long entry_offset_offset_flags = 4;
-static const long entry_offset_comp_len = 8;
-static const long entry_offset_uncomp_len = 12;
-static const long entry_offset_base_rev = 16;
-static const long entry_offset_link_rev = 20;
-static const long entry_offset_parent_1 = 24;
-static const long entry_offset_parent_2 = 28;
-static const long entry_offset_node_id = 32;
-static const long entry_offset_sidedata_offset = 64;
-static const long entry_offset_sidedata_comp_len = 72;
-static const long entry_offset_all_comp_mode = 76;
-static const long entry_offset_padding_start = 77;
+static const long entry_v1_offset_high = 0;
+static const long entry_v1_offset_offset_flags = 4;
+static const long entry_v1_offset_comp_len = 8;
+static const long entry_v1_offset_uncomp_len = 12;
+static const long entry_v1_offset_base_rev = 16;
+static const long entry_v1_offset_link_rev = 20;
+static const long entry_v1_offset_parent_1 = 24;
+static const long entry_v1_offset_parent_2 = 28;
+static const long entry_v1_offset_node_id = 32;
+
+static const long entry_v2_offset_high = 0;
+static const long entry_v2_offset_offset_flags = 4;
+static const long entry_v2_offset_comp_len = 8;
+static const long entry_v2_offset_uncomp_len = 12;
+static const long entry_v2_offset_base_rev = 16;
+static const long entry_v2_offset_link_rev = 20;
+static const long entry_v2_offset_parent_1 = 24;
+static const long entry_v2_offset_parent_2 = 28;
+static const long entry_v2_offset_node_id = 32;
+static const long entry_v2_offset_sidedata_offset = 64;
+static const long entry_v2_offset_sidedata_comp_len = 72;
+static const long entry_v2_offset_all_comp_mode = 76;
+static const long entry_v2_offset_padding_start = 77;
 
 static const char comp_mode_inline = 2;
 static const char rank_unknown = -1;
@@ -220,8 +230,16 @@
 {
const char *data = index_deref(self, rev);
 
-   ps[0] = getbe32(data + entry_offset_parent_1);
-   ps[1] = getbe32(data + entry_offset_parent_2);
+   if (self->format_version == format_v1) {
+   ps[0] = getbe32(data + entry_v1_offset_parent_1);
+   ps[1] = getbe32(data + entry_v1_offset_parent_2);
+   } else if (self->format_version == format_v2) {
+   ps[0] = getbe32(data + entry_v2_offset_parent_1);
+   ps[1] = getbe32(data + entry_v2_offset_parent_2);
+   } else {
+   raise_revlog_error();
+   return -1;
+   }
 
/* If index file is corrupted, ps[] may point to invalid revisions. So
 * there is a risk of buffer overflow to trust them unconditionally. */
@@ -268,14 +286,32 @@
return 0;
 
data = index_deref(self, rev);
-   offset = getbe32(data + entry_offset_offset_flags);
-   if (rev == 0) {
-   /* mask out version number for the first entry */
-   offset &= 0x;
+
+   if (self->format_version == format_v1) {
+   offset = getbe32(data + entry_v1_offset_offset_flags);
+   if (rev == 0) {
+   /* mask out version number for the first entry */
+   offset &= 0x;
+   } else {
+   uint32_t offset_high =
+   getbe32(data + entry_v1_offset_high);
+   offset |= ((uint64_t)offset_high) << 32;
+   }
+   } else if (self->format_version == format_v2) {
+   offset = getbe32(data + entry_v2_offset_offset_flags);
+   if (rev == 0) {
+   /* mask out version number for the first entry */
+   offset &= 0x;
+   } else {
+   uint32_t offset_high =
+   getbe32(data + entry_v2_offset_high);
+   offset |= ((uint64_t)offset_high) << 32;
+   }
} else {
-   uint32_t offset_high = getbe32(data + entry_offset_high);
-   offset |= ((uint64_t)offset_high) << 32;
+   raise_revlog_error();
+   return -1;
}
+
return (int64_t)(offset >> 16);
 }
 
@@ -289,7

Re: [PATCH 1 of 2] revlog: extract entry byte offsets into named constants

2022-02-07 Thread Pacien TRAN-GIRARD via Mercurial-devel
Patch series resent through Phabricator:
https://phab.mercurial-scm.org/D12136
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D12138: branchmap: split a long condition in branchcache.validfor(), add comments

2022-02-07 Thread av6 (Anton Shestakov)
av6 created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REPOSITORY
  rHG Mercurial

BRANCH
  default

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

AFFECTED FILES
  mercurial/branchmap.py

CHANGE DETAILS

diff --git a/mercurial/branchmap.py b/mercurial/branchmap.py
--- a/mercurial/branchmap.py
+++ b/mercurial/branchmap.py
@@ -352,17 +352,25 @@
 return filename
 
 def validfor(self, repo):
-"""Is the cache content valid regarding a repo
+"""check that cache contents are valid for (a subset of) this repo
 
-- False when cached tipnode is unknown or if we detect a strip.
-- True when cache is up to date or a subset of current repo."""
+- False when the order of changesets changed or if we detect a strip.
+- True when cache is up-to-date for the current repo or its subset."""
 try:
-return (self.tipnode == repo.changelog.node(self.tiprev)) and (
-self.filteredhash
-== scmutil.filteredhash(repo, self.tiprev, needobsolete=True)
-)
+node = repo.changelog.node(self.tiprev)
 except IndexError:
+# changesets were stripped and now we don't even have enough to
+# find tiprev
 return False
+if self.tipnode != node:
+# tiprev doesn't correspond to tipnode: repo was stripped, or this
+# repo has a different order of changesets
+return False
+tiphash = scmutil.filteredhash(repo, self.tiprev, needobsolete=True)
+# hashes don't match if this repo view has a different set of filtered
+# revisions (e.g. due to phase changes) or obsolete revisions (e.g.
+# history was rewritten)
+return self.filteredhash == tiphash
 
 def _branchtip(self, heads):
 """Return tuple with last open head in heads and false,



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


[PATCH stable, v2] doc: inspect.getargspec has been removed in Python 3.11

2022-02-07 Thread Mads Kiilerich
# HG changeset patch
# User Mads Kiilerich 
# Date 1644245153 -3600
#  Mon Feb 07 15:45:53 2022 +0100
# Branch stable
# Node ID 937db8e65dd5614cc4595cced61f2e21026d3be3
# Parent  01fde63b4eded708802bfd0d0d4cb4ecc5ff6e1c
doc: inspect.getargspec has been removed in Python 3.11

Fixed by dropping the inspection introduced in cdda48c93676. The 2nd "reporter"
parameter to docutils.languages.get_language has been available since 0.8 more
than 10 years ago.

Reported for Fedora on https://bugzilla.redhat.com/show_bug.cgi?id=2022252#c2 .

diff --git a/doc/hgmanpage.py b/doc/hgmanpage.py
--- a/doc/hgmanpage.py
+++ b/doc/hgmanpage.py
@@ -45,7 +45,6 @@ from __future__ import absolute_import
 
 __docformat__ = 'reStructuredText'
 
-import inspect
 import re
 
 from docutils import (
@@ -177,13 +176,7 @@ class Translator(nodes.NodeVisitor):
 nodes.NodeVisitor.__init__(self, document)
 self.settings = settings = document.settings
 lcode = settings.language_code
-arglen = len(inspect.getargspec(languages.get_language)[0])
-if arglen == 2:
-self.language = languages.get_language(
-lcode, self.document.reporter
-)
-else:
-self.language = languages.get_language(lcode)
+self.language = languages.get_language(lcode, self.document.reporter)
 self.head = []
 self.body = []
 self.foot = []

___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


phab.mercurial-scm.org is completely overrun with SEO spam

2022-02-07 Thread vlofgren
Hello

I apologize in advance if this isn't the right place to send this, I've turned 
the mercurial-scm.org-website upside down looking for a webmaster URL or some 
sort of contact information but come up with nothing. My hope is that someone 
on this list knows who this should be sent to, and will help me get it to that 
person.

To make a long story short, I run a homebrew search engine, and in cleaning 
out some spam links from my own index, I've discovered that your phabricator 
instance is being used for search engine spam. By linking from your a high 
value domain like mercurial-scm.org, they're able to boost their own search 
engine ranking.

I stumbled upon this project:
https://phab.mercurial-scm.org/project/profile/684/

But there appears to be hundreds upon hundreds of them:

https://phab.mercurial-scm.org/project/

Thanks,
/ V


___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D12141: rank: add minimal test

2022-02-07 Thread pacien (Pacien)
pacien created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  This adds a small test checking the rank computation in the case of a merge.

REPOSITORY
  rHG Mercurial

BRANCH
  default

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

AFFECTED FILES
  tests/test-rank.t

CHANGE DETAILS

diff --git a/tests/test-rank.t b/tests/test-rank.t
new file mode 100644
--- /dev/null
+++ b/tests/test-rank.t
@@ -0,0 +1,42 @@
+=
+Check that we can compute and exchange revision rank properly
+=
+
+  $ cat << EOF >> $HGRCPATH
+  > [format]
+  > exp-use-changelog-v2=enable-unstable-format-and-corrupt-my-data
+  > EOF
+
+
+Test minimal rank computation with merge
+
+  $ hg init rank-repo-minimal
+  $ cd rank-repo-minimal
+  $ touch 0
+  $ hg add 0
+  $ hg commit -m 0
+  $ touch 1
+  $ hg add 1
+  $ hg commit -m 1
+  $ hg update -r 0 >> /dev/null
+  $ touch 2
+  $ hg add 2
+  $ hg commit -m 2 >> /dev/null
+  $ hg merge -r 1 >> /dev/null
+  $ hg commit -m 3
+  $ touch 4
+  $ hg add 4
+  $ hg commit -m 4
+  $ hg log --graph --template '{rev} {_fast_rank}\n'
+  @  4 5
+  |
+  o3 4
+  |\
+  | o  2 2
+  | |
+  o |  1 2
+  |/
+  o  0 1
+  
+  $ cd ..
+



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


D12142: rank: add test with golden values

2022-02-07 Thread pacien (Pacien)
pacien created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  This adds a regression test for the computation of the rank, using the current
  values computed with the naive algorithm as the "golden" reference.

REPOSITORY
  rHG Mercurial

BRANCH
  default

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

AFFECTED FILES
  tests/test-rank.t

CHANGE DETAILS

diff --git a/tests/test-rank.t b/tests/test-rank.t
--- a/tests/test-rank.t
+++ b/tests/test-rank.t
@@ -40,3 +40,188 @@
   
   $ cd ..
 
+
+Build a bigger example repo
+
+  $ hg init rank-repo-generated
+  $ cd rank-repo-generated
+  $ hg debugbuilddag '.:root1+5:mp1https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D12139: rank: naive rank property computation and retrieval

2022-02-07 Thread pacien (Pacien)
pacien created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  This stores the rank (size of the ancestor set of a revision, including 
itself)
  in a changelog field and allows this property to be retrieved.
  
  The value is computed in a naive way from the definition of the rank. This 
will
  be replaced by a more efficient version later on.

REPOSITORY
  rHG Mercurial

BRANCH
  default

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

AFFECTED FILES
  mercurial/revlog.py

CHANGE DETAILS

diff --git a/mercurial/revlog.py b/mercurial/revlog.py
--- a/mercurial/revlog.py
+++ b/mercurial/revlog.py
@@ -40,11 +40,13 @@
 COMP_MODE_DEFAULT,
 COMP_MODE_INLINE,
 COMP_MODE_PLAIN,
+ENTRY_RANK,
 FEATURES_BY_VERSION,
 FLAG_GENERALDELTA,
 FLAG_INLINE_DATA,
 INDEX_HEADER,
 KIND_CHANGELOG,
+RANK_UNKNOWN,
 REVLOGV0,
 REVLOGV1,
 REVLOGV1_FLAGS,
@@ -872,6 +874,20 @@
 
 return len(self.revision(rev, raw=False))
 
+def fast_rank(self, rev):
+"""The "rank" of the revision if available, None otherwise
+
+The rank of a revision is the size of sub-graph it defines as a head.
+In other words, the rank og X i sthe size of `ancestors(X)` (X
+included).
+
+Some variant of revlog persist this value and make it available.
+"""
+rank = self.index[rev][ENTRY_RANK]
+if rank == RANK_UNKNOWN:
+return None
+return rank
+
 def chainbase(self, rev):
 base = self._chainbasecache.get(rev)
 if base is not None:
@@ -2472,6 +2488,11 @@
 # than ones we manually add.
 sidedata_offset = 0
 
+# maybe the index.append should compute it when applicable instead
+rank = RANK_UNKNOWN
+if self._format_version == CHANGELOGV2:
+rank = len(list(self.ancestors([p1r, p2r], inclusive=True))) + 1
+
 e = revlogutils.entry(
 flags=flags,
 data_offset=offset,
@@ -2486,6 +2507,7 @@
 sidedata_offset=sidedata_offset,
 sidedata_compressed_length=len(serialized_sidedata),
 sidedata_compression_mode=sidedata_compression_mode,
+rank=rank,
 )
 
 self.index.append(e)



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


D12140: rank: add context and template keyword

2022-02-07 Thread pacien (Pacien)
pacien created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  This makes the stored rank property accessible, to be expanded and printed.

REPOSITORY
  rHG Mercurial

BRANCH
  default

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

AFFECTED FILES
  mercurial/context.py
  mercurial/templatekw.py

CHANGE DETAILS

diff --git a/mercurial/templatekw.py b/mercurial/templatekw.py
--- a/mercurial/templatekw.py
+++ b/mercurial/templatekw.py
@@ -304,6 +304,20 @@
 )
 
 
+@templatekeyword(b'_fast_rank', requires={b'ctx'})
+def fast_rank(context, mapping):
+"""the rank of a changeset if cached
+
+The rank of a revision is the size of sub-graph it defines as a head. In
+other words, the rank of X is the size of `ancestors(X)` (X included).
+"""
+ctx = context.resource(mapping, b'ctx')
+rank = ctx.fast_rank()
+if rank is None:
+return None
+return b"%d" % rank
+
+
 def _getfilestatus(context, mapping, listall=False):
 ctx = context.resource(mapping, b'ctx')
 revcache = context.resource(mapping, b'revcache')
diff --git a/mercurial/context.py b/mercurial/context.py
--- a/mercurial/context.py
+++ b/mercurial/context.py
@@ -685,6 +685,14 @@
 """Return a list of byte bookmark names."""
 return self._repo.nodebookmarks(self._node)
 
+def fast_rank(self):
+repo = self._repo
+if self._maybe_filtered:
+cl = repo.changelog
+else:
+cl = repo.unfiltered().changelog
+return cl.fast_rank(self._rev)
+
 def phase(self):
 return self._repo._phasecache.phase(self._repo, self._rev)
 



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


D12143: rank: compute property incrementally

2022-02-07 Thread pacien (Pacien)
pacien created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  This replace the naive rank computation with a more efficient incremental
  method, avoiding computing the whole ancestor set when possible.

REPOSITORY
  rHG Mercurial

BRANCH
  default

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

AFFECTED FILES
  mercurial/revlog.py

CHANGE DETAILS

diff --git a/mercurial/revlog.py b/mercurial/revlog.py
--- a/mercurial/revlog.py
+++ b/mercurial/revlog.py
@@ -2491,7 +2491,16 @@
 # maybe the index.append should compute it when applicable instead
 rank = RANK_UNKNOWN
 if self._format_version == CHANGELOGV2:
-rank = len(list(self.ancestors([p1r, p2r], inclusive=True))) + 1
+if (p1r, p2r) == (nullrev, nullrev):
+rank = 1
+elif p1r != nullrev and p2r == nullrev:
+rank = 1 + self.fast_rank(p1r)
+elif p1r == nullrev and p2r != nullrev:
+rank = 1 + self.fast_rank(p2r)
+else:  # merge node
+pmin, pmax = sorted((p1r, p2r))
+rank = 1 + self.fast_rank(pmax)
+rank += sum(1 for _ in self.findmissingrevs([pmax], [pmin]))
 
 e = revlogutils.entry(
 flags=flags,



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


Re: [PATCH 1 of 5] rank: naive rank property computation and retrieval

2022-02-07 Thread Pacien TRAN-GIRARD via Mercurial-devel
New version of this patch series resent through Phabricator:
https://phab.mercurial-scm.org/D12139
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


mercurial@48719: 38 new changesets

2022-02-07 Thread Mercurial Commits
38 new changesets in mercurial:

https://www.mercurial-scm.org/repo/hg/rev/cdb0d857afe2
changeset:   48682:cdb0d857afe2
user:Pierre-Yves David 
date:Mon Jan 31 08:23:54 2022 +0100
summary: dirstate: use a context manager when writing the dirstate

https://www.mercurial-scm.org/repo/hg/rev/111f5a0cbcaa
changeset:   48683:111f5a0cbcaa
user:Pierre-Yves David 
date:Mon Jan 31 14:26:35 2022 +0100
summary: dirstate: rename the filegenerator used for writing

https://www.mercurial-scm.org/repo/hg/rev/568f63b5a30f
changeset:   48684:568f63b5a30f
user:Pierre-Yves David 
date:Mon Jan 31 08:44:48 2022 +0100
summary: dirstate: introduce a "tracked-key" feature

https://www.mercurial-scm.org/repo/hg/rev/21ac6aedd5e5
changeset:   48685:21ac6aedd5e5
user:Pierre-Yves David 
date:Mon Jan 31 18:38:15 2022 +0100
summary: transaction: do not rely on a global variable to post_finalize file

https://www.mercurial-scm.org/repo/hg/rev/4507bc001365
changeset:   48686:4507bc001365
user:Anton Shestakov 
date:Fri Jan 28 19:07:52 2022 +0300
summary: obsolete: make sure windows tests pass when stat() is given a URL

https://www.mercurial-scm.org/repo/hg/rev/f8f2ecdde4b5
changeset:   48687:f8f2ecdde4b5
user:Anton Shestakov 
date:Fri Jan 07 11:53:23 2022 +0300
summary: branchmap: skip obsolete revisions while computing heads

https://www.mercurial-scm.org/repo/hg/rev/053a5bf508da
changeset:   48688:053a5bf508da
user:Anton Shestakov 
date:Tue Jan 04 23:38:39 2022 +0300
summary: discovery: port _postprocessobsolete() changes from evolve, add 
tests

https://www.mercurial-scm.org/repo/hg/rev/fbf7e383e961
changeset:   48689:fbf7e383e961
user:Anton Shestakov 
date:Sat Jan 15 09:08:41 2022 +0300
summary: destutil: if wdp is obsolete, update to the closest non-obsolete 
ancestor

https://www.mercurial-scm.org/repo/hg/rev/d55c4472bbb6
changeset:   48690:d55c4472bbb6
user:Pierre-Yves David 
date:Thu Jan 27 17:04:40 2022 +0100
summary: persistent-nodemap: properly delete all nodemap files on downgrade

https://www.mercurial-scm.org/repo/hg/rev/b4bc9c4f925d
changeset:   48691:b4bc9c4f925d
user:Pierre-Yves David 
date:Thu Jan 27 15:22:04 2022 +0100
summary: debugbuilddag: add a flag to allow running it from a non-empty 
repository

https://www.mercurial-scm.org/repo/hg/rev/4933086bebf5
changeset:   48692:4933086bebf5
user:Pierre-Yves David 
date:Thu Jan 27 15:22:09 2022 +0100
summary: stream-clone: add 5000 changesets to test-clone-stream-format

https://www.mercurial-scm.org/repo/hg/rev/de3ac3d2c60b
changeset:   48693:de3ac3d2c60b
user:Pierre-Yves David 
date:Thu Jan 27 22:24:11 2022 +0100
summary: stream-clone: allow to change persistent-nodemap format during 
stream clone

https://www.mercurial-scm.org/repo/hg/rev/5c940f9ba3e4
changeset:   48694:5c940f9ba3e4
user:Anton Shestakov 
date:Mon Jan 31 18:04:11 2022 +0300
summary: dagop: don't import nullrev from .node twice

https://www.mercurial-scm.org/repo/hg/rev/48cb4109b6f6
changeset:   48695:48cb4109b6f6
user:Anton Shestakov 
date:Mon Jan 31 18:05:36 2022 +0300
summary: obsolete: don't import from .node twice

https://www.mercurial-scm.org/repo/hg/rev/bf3da4e02087
changeset:   48696:bf3da4e02087
user:Anton Shestakov 
date:Thu Jan 27 20:04:56 2022 +0300
summary: interfaces: add missing caches kwarg of localrepo.updatecaches()

https://www.mercurial-scm.org/repo/hg/rev/fba2d7fab11e
changeset:   48697:fba2d7fab11e
user:Pierre-Yves David 
date:Thu Feb 03 06:49:48 2022 +0100
summary: phabricator-refresh: add a magic value to skip it in the CI

https://www.mercurial-scm.org/repo/hg/rev/937998e43e93
changeset:   48698:937998e43e93
user:Pierre-Yves David 
date:Fri Jan 28 14:23:37 2022 +0100
summary: merge: break up a not-so-one-liner for readability

https://www.mercurial-scm.org/repo/hg/rev/10407e8e3807
changeset:   48699:10407e8e3807
user:Pierre-Yves David 
date:Fri Jan 28 14:23:49 2022 +0100
summary: merge: break up a not-so-one-liner for readability

https://www.mercurial-scm.org/repo/hg/rev/d8577d00c023
changeset:   48700:d8577d00c023
user:Pierre-Yves David 
date:Fri Jan 28 14:23:56 2022 +0100
summary: merge: break up a not-so-one-liner for readability

https://www.mercurial-scm.org/repo/hg/rev/85c69b0dfa8f
changeset:   48701:85c69b0dfa8f
user:Pierre-Yves David 
date:Fri Jan 28 14:24:30 2022 +0100
summary: merge: break up a not-so-one-liner for readability

https://www.mercurial-scm.org/repo/hg/rev/ec23b0ba85c2
changeset:   48702:ec23b0ba85c2
user:Pierre-Yves David 
date:Fri Jan 28 14:24:41 2022 +0100
summary: merge: break up a not-so-one-liner for readability

https://www.mercurial-scm.