##// END OF EJS Templates
revset: lookup descendents for negative arguments to ancestor operator...
revset: lookup descendents for negative arguments to ancestor operator Negative offsets to the `~` operator now search for descendents. The search is aborted when a node has more than one child as we do not have a definition for 'nth child'. Optionally we can introduce such a notion and take the nth child ordered by rev number. The current revset language does provides a short operator for ancestor lookup but not for descendents. This gives user a simple revset to move to the previous changeset, e.g. `hg up '.~1'` but not to the 'next' changeset. With this change userse can now use `.~-1` as a shortcut to move to the next changeset. This fits better into allowing users to specify revisions via revsets and avoiding the need for special `hg next` and `hg prev` operations. The alternative to negative offsets is adding a new operator. We do not have many operators in ascii left that do not require bash escaping (',', '_', and '/' come to mind). If we decide that we should add a more convenient short operator such as ('/', e.g. './1') we can later add it and allow ascendents lookup via negative numbers.

File last commit:

r32684:af854b1b default
r32699:f75d0aa5 default
Show More
node.py
35 lines | 917 B | text/x-python | PythonLexer
Martin Geisler
put license and copyright info into comment blocks
r8226 # node.py - basic nodeid manipulation for mercurial
#
# Copyright 2005, 2006 Matt Mackall <mpm@selenic.com>
#
# This software may be used and distributed according to the terms of the
Matt Mackall
Update license to GPLv2+
r10263 # GNU General Public License version 2 or any later version.
mpm@selenic.com
Break apart hg.py...
r1089
Gregory Szorc
node: use absolute_import
r25962 from __future__ import absolute_import
Matt Mackall
Replace demandload with new demandimport
r3877 import binascii
mpm@selenic.com
Break apart hg.py...
r1089
Siddharth Agarwal
node: add 'nullhex', hex-encoded nullid...
r26980 # This ugly style has a noticeable effect in manifest parsing
hex = binascii.hexlify
bin = binascii.unhexlify
Thomas Arendsen Hein
Define and use nullrev (revision of nullid) instead of -1.
r3578 nullrev = -1
Gregory Szorc
node: use byte literals to construct nullid and wdirid...
r28585 nullid = b"\0" * 20
Siddharth Agarwal
node: add 'nullhex', hex-encoded nullid...
r26980 nullhex = hex(nullid)
mpm@selenic.com
Break apart hg.py...
r1089
Durham Goode
dirstate: change placeholder hash length to 20 bytes...
r30360 # Phony node value to stand-in for new files in some uses of
# manifests.
newnodeid = '!' * 20
Durham Goode
dirstate: change added/modified placeholder hash length to 20 bytes...
r30361 addednodeid = ('0' * 15) + 'added'
modifiednodeid = ('0' * 12) + 'modified'
Durham Goode
dirstate: change placeholder hash length to 20 bytes...
r30360
Martin von Zweigbergk
cleanup: use set literals...
r32291 wdirnodes = {newnodeid, addednodeid, modifiednodeid}
Durham Goode
dirstate: change placeholder hash length to 20 bytes...
r30360
Yuya Nishihara
node: define experimental identifiers for working directory...
r25737 # pseudo identifiers for working directory
# (they are experimental, so don't add too many dependencies on them)
wdirrev = 0x7fffffff
Gregory Szorc
node: use byte literals to construct nullid and wdirid...
r28585 wdirid = b"\xff" * 20
Yuya Nishihara
revlog: add support for partial matching of wdir node id...
r32684 wdirhex = hex(wdirid)
Yuya Nishihara
node: define experimental identifiers for working directory...
r25737
mpm@selenic.com
Break apart hg.py...
r1089 def short(node):
return hex(node[:6])