Mercurial > hg
view tests/test-eol-add.t @ 27947:571ba161f6be stable
largefiles: prevent committing a missing largefile
Previously, if the largefile was deleted at the time of a commit, the standin
was silently not updated and its current state (possibly garbage) was recorded.
The test makes it look like this is somewhat of an edge case, but the same thing
happens when an `hg revert` followed by `rm` changes the standin.
Aside from the second invocation of this in lfutil.updatestandinsbymatch()
(which is what triggers this test case), the three other uses are guarded by
dirstate checks for added or modified, or an existence check in the filesystem.
So aborting in lfutil.updatestandins() should be safe, and will avoid silent
skips in the future if this is used elsewhere.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sun, 24 Jan 2016 00:10:19 -0500 |
parents | 43b3b761d9d1 |
children |
line wrap: on
line source
Test adding .hgeol $ cat >> $HGRCPATH <<EOF > [diff] > git = 1 > EOF $ seteol () { > if [ $1 = "LF" ]; then > EOL='\n' > else > EOL='\r\n' > fi > } $ makerepo () { > echo > echo "# ==== setup repository ====" > echo '% hg init' > hg init repo > cd repo > printf "first\nsecond\nthird\n" > a.txt > hg commit -d '100 0' --addremove -m 'LF commit' > cd .. > } $ dotest () { > seteol $1 > echo > echo "% hg clone repo repo-$1" > hg clone repo repo-$1 > cd repo-$1 > cat > .hg/hgrc <<EOF > [extensions] > eol = > [eol] > native = LF > EOF > cat > .hgeol <<EOF > [patterns] > **.txt = native > [repository] > native = $1 > EOF > echo '% hg add .hgeol' > hg add .hgeol > echo '% hg status' > hg status > echo '% hg commit' > hg commit -d '200 0' -m 'Added .hgeol file' > echo '% hg status' > hg status > echo '% hg tip -p' > hg tip -p > cd .. > rm -r repo-$1 > } $ makerepo # ==== setup repository ==== % hg init adding a.txt $ dotest LF % hg clone repo repo-LF updating to branch default 1 files updated, 0 files merged, 0 files removed, 0 files unresolved % hg add .hgeol % hg status A .hgeol % hg commit % hg status % hg tip -p changeset: 1:33503edb53b0 tag: tip user: test date: Thu Jan 01 00:03:20 1970 +0000 summary: Added .hgeol file diff --git a/.hgeol b/.hgeol new file mode 100644 --- /dev/null +++ b/.hgeol @@ -0,0 +1,4 @@ +[patterns] +**.txt = native +[repository] +native = LF $ dotest CRLF % hg clone repo repo-CRLF updating to branch default 1 files updated, 0 files merged, 0 files removed, 0 files unresolved % hg add .hgeol % hg status M a.txt A .hgeol % hg commit % hg status % hg tip -p changeset: 1:6e64eaa9eb23 tag: tip user: test date: Thu Jan 01 00:03:20 1970 +0000 summary: Added .hgeol file diff --git a/.hgeol b/.hgeol new file mode 100644 --- /dev/null +++ b/.hgeol @@ -0,0 +1,4 @@ +[patterns] +**.txt = native +[repository] +native = CRLF diff --git a/a.txt b/a.txt --- a/a.txt +++ b/a.txt @@ -1,3 +1,3 @@ -first -second -third +first\r (esc) +second\r (esc) +third\r (esc) $ rm -r repo