Mercurial > hg
view hgext/infinitepush/schema.sql @ 38851:781b2720d2ac
index: don't include nullid in len()
I suspect the reason the nullid is in the index in the last position
is that it lets index[i] for regular revision number, even when index
was just a regular Python list. An alternative solution would have
been to reserve revision number 0 for the null revision. I don't know
why that wasn't done. Now that we have classes backing the index, we
can easily make index[-1] get the nullid without having to put it last
in the list and including it in the len().
This patch just hides the nullid -- it will still be accessible at
index[len(index)].
I realize that this will be annoying when checking out across this
commit for debugging (including bisection).
Differential Revision: https://phab.mercurial-scm.org/D4022
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 20 Jul 2018 08:10:32 -0700 |
parents | 03ff17a4bf53 |
children |
line wrap: on
line source
CREATE TABLE `bookmarkstonode` ( `node` varbinary(64) NOT NULL, `bookmark` varbinary(512) NOT NULL, `reponame` varbinary(255) NOT NULL, PRIMARY KEY (`reponame`,`bookmark`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `bundles` ( `bundle` varbinary(512) NOT NULL, `reponame` varbinary(255) NOT NULL, PRIMARY KEY (`bundle`,`reponame`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `nodestobundle` ( `node` varbinary(64) NOT NULL, `bundle` varbinary(512) NOT NULL, `reponame` varbinary(255) NOT NULL, PRIMARY KEY (`node`,`reponame`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `nodesmetadata` ( `node` varbinary(64) NOT NULL, `message` mediumblob NOT NULL, `p1` varbinary(64) NOT NULL, `p2` varbinary(64) DEFAULT NULL, `author` varbinary(255) NOT NULL, `committer` varbinary(255) DEFAULT NULL, `author_date` bigint(20) NOT NULL, `committer_date` bigint(20) DEFAULT NULL, `reponame` varbinary(255) NOT NULL, `optional_json_metadata` mediumblob, PRIMARY KEY (`reponame`,`node`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;