Mercurial > hg
view tests/test-custom-filters.t @ 45587:768412472663
merge: store cases when a file is absent post merge in commitinfo
Some merges can result in file being absent form working directory. This can be
one of file was kept deleted or file was removed by merge code.
User might revert the file back before committing. In such cases we will like to
have better handling and create new filenodes.
We store this info in mergestate as commitinfo so that we can use it while
committing to create new filenode if required.
Differential Revision: https://phab.mercurial-scm.org/D9003
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Mon, 24 Aug 2020 15:35:34 +0530 |
parents | ee9981bc8b44 |
children | 55c6ebd11cb9 |
line wrap: on
line source
$ hg init $ cat > .hg/hgrc <<EOF > [extensions] > prefixfilter = prefix.py > [encode] > *.txt = stripprefix: Copyright 2046, The Masters > [decode] > *.txt = insertprefix: Copyright 2046, The Masters > EOF $ cat > prefix.py <<EOF > from mercurial import error > def stripprefix(s, cmd, filename, **kwargs): > header = b'%s\n' % cmd > if s[:len(header)] != header: > raise error.Abort(b'missing header "%s" in %s' % (cmd, filename)) > return s[len(header):] > def insertprefix(s, cmd): > return b'%s\n%s' % (cmd, s) > def reposetup(ui, repo): > repo.adddatafilter(b'stripprefix:', stripprefix) > repo.adddatafilter(b'insertprefix:', insertprefix) > EOF $ cat > .hgignore <<EOF > .hgignore > prefix.py > prefix.pyc > __pycache__/ > EOF $ cat > stuff.txt <<EOF > Copyright 2046, The Masters > Some stuff to ponder very carefully. > EOF $ hg add stuff.txt $ hg ci -m stuff Repository data: $ hg cat stuff.txt Some stuff to ponder very carefully. Fresh checkout: $ rm stuff.txt $ hg up -C 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cat stuff.txt Copyright 2046, The Masters Some stuff to ponder very carefully. $ echo "Very very carefully." >> stuff.txt $ hg stat M stuff.txt $ echo "Unauthorized material subject to destruction." > morestuff.txt Problem encoding: $ hg add morestuff.txt $ hg ci -m morestuff abort: missing header "Copyright 2046, The Masters" in morestuff.txt [255] $ hg stat M stuff.txt A morestuff.txt