mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 00:45:18 +03:00
e7ff3ff5bc
New behavior is generally superior and more correct, except possibly with regards to missing files. hg up . is now effectively a no-op, which is probably the desired behavior for people expecting to move to tip, but may surprise people who were expecting deleted files to reappear. case 1: update to . a-w -> a-w classic: ancestor a missing recreated right? rmed recreated WRONG added forgotten WRONG changed preserved RIGHT conflicted can't happen backward merge: ancestor a (NO EFFECT) missing missing wrong? rm'ed rm'ed RIGHT added preserved RIGHT changed preserved RIGHT conflicted can't happen case 2: update to ancestor of . a-b-w -> b-w \ a classic: ancestor a missing recreated right? rmed recreated wrong? added forgotten wrong? changed preserved RIGHT conflicted preserved wrong? backwards merge: ancestor b missing missing or conflict right? rm'ed missing or conflict right? changed preserved RIGHT conflicted merge RIGHT added preserved right?
61 lines
1.1 KiB
Bash
Executable File
61 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
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 util
|
|
def stripprefix(s, cmd, filename, **kwargs):
|
|
header = '%s\n' % cmd
|
|
if s[:len(header)] != header:
|
|
raise util.Abort('missing header "%s" in %s' % (cmd, filename))
|
|
return s[len(header):]
|
|
def insertprefix(s, cmd):
|
|
return '%s\n%s' % (cmd, s)
|
|
def reposetup(ui, repo):
|
|
repo.adddatafilter('stripprefix:', stripprefix)
|
|
repo.adddatafilter('insertprefix:', insertprefix)
|
|
EOF
|
|
|
|
cat > .hgignore <<EOF
|
|
.hgignore
|
|
prefix.py
|
|
prefix.pyc
|
|
EOF
|
|
|
|
cat > stuff.txt <<EOF
|
|
Copyright 2046, The Masters
|
|
Some stuff to ponder very carefully.
|
|
EOF
|
|
hg add stuff.txt
|
|
hg ci -m stuff
|
|
|
|
echo '% Repository data:'
|
|
hg cat stuff.txt
|
|
|
|
echo '% Fresh checkout:'
|
|
rm stuff.txt
|
|
hg up -C
|
|
cat stuff.txt
|
|
echo >> stuff.txt <<EOF
|
|
Very very carefully.
|
|
EOF
|
|
hg stat
|
|
|
|
cat > morestuff.txt <<EOF
|
|
Unauthorized material subject to destruction.
|
|
EOF
|
|
|
|
echo '% Problem encoding:'
|
|
hg add morestuff.txt
|
|
hg ci -m morestuff
|
|
hg stat
|