summaryrefslogtreecommitdiff
path: root/tests/test-diff-upgrade.t
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-diff-upgrade.t')
-rw-r--r--tests/test-diff-upgrade.t283
1 files changed, 283 insertions, 0 deletions
diff --git a/tests/test-diff-upgrade.t b/tests/test-diff-upgrade.t
new file mode 100644
index 0000000..94c299a
--- /dev/null
+++ b/tests/test-diff-upgrade.t
@@ -0,0 +1,283 @@
+ $ "$TESTDIR/hghave" execbit || exit 80
+
+ $ echo "[extensions]" >> $HGRCPATH
+ $ echo "autodiff=$TESTDIR/autodiff.py" >> $HGRCPATH
+ $ echo "[diff]" >> $HGRCPATH
+ $ echo "nodates=1" >> $HGRCPATH
+
+ $ hg init repo
+ $ cd repo
+
+
+
+make a combination of new, changed and deleted file
+
+ $ echo regular > regular
+ $ echo rmregular > rmregular
+ $ python -c "file('bintoregular', 'wb').write('\0')"
+ $ touch rmempty
+ $ echo exec > exec
+ $ chmod +x exec
+ $ echo rmexec > rmexec
+ $ chmod +x rmexec
+ $ echo setexec > setexec
+ $ echo unsetexec > unsetexec
+ $ chmod +x unsetexec
+ $ echo binary > binary
+ $ python -c "file('rmbinary', 'wb').write('\0')"
+ $ hg ci -Am addfiles
+ adding binary
+ adding bintoregular
+ adding exec
+ adding regular
+ adding rmbinary
+ adding rmempty
+ adding rmexec
+ adding rmregular
+ adding setexec
+ adding unsetexec
+ $ echo regular >> regular
+ $ echo newregular >> newregular
+ $ rm rmempty
+ $ touch newempty
+ $ rm rmregular
+ $ echo exec >> exec
+ $ echo newexec > newexec
+ $ echo bintoregular > bintoregular
+ $ chmod +x newexec
+ $ rm rmexec
+ $ chmod +x setexec
+ $ chmod -x unsetexec
+ $ python -c "file('binary', 'wb').write('\0\0')"
+ $ python -c "file('newbinary', 'wb').write('\0')"
+ $ rm rmbinary
+ $ hg addremove -s 0
+ adding newbinary
+ adding newempty
+ adding newexec
+ adding newregular
+ removing rmbinary
+ removing rmempty
+ removing rmexec
+ removing rmregular
+
+git=no: regular diff for all files
+
+ $ hg autodiff --git=no
+ diff -r a66d19b9302d binary
+ Binary file binary has changed
+ diff -r a66d19b9302d bintoregular
+ Binary file bintoregular has changed
+ diff -r a66d19b9302d exec
+ --- a/exec
+ +++ b/exec
+ @@ -1,1 +1,2 @@
+ exec
+ +exec
+ diff -r a66d19b9302d newbinary
+ Binary file newbinary has changed
+ diff -r a66d19b9302d newexec
+ --- /dev/null
+ +++ b/newexec
+ @@ -0,0 +1,1 @@
+ +newexec
+ diff -r a66d19b9302d newregular
+ --- /dev/null
+ +++ b/newregular
+ @@ -0,0 +1,1 @@
+ +newregular
+ diff -r a66d19b9302d regular
+ --- a/regular
+ +++ b/regular
+ @@ -1,1 +1,2 @@
+ regular
+ +regular
+ diff -r a66d19b9302d rmbinary
+ Binary file rmbinary has changed
+ diff -r a66d19b9302d rmexec
+ --- a/rmexec
+ +++ /dev/null
+ @@ -1,1 +0,0 @@
+ -rmexec
+ diff -r a66d19b9302d rmregular
+ --- a/rmregular
+ +++ /dev/null
+ @@ -1,1 +0,0 @@
+ -rmregular
+
+git=yes: git diff for single regular file
+
+ $ hg autodiff --git=yes regular
+ diff --git a/regular b/regular
+ --- a/regular
+ +++ b/regular
+ @@ -1,1 +1,2 @@
+ regular
+ +regular
+
+git=auto: regular diff for regular files and non-binary removals
+
+ $ hg autodiff --git=auto regular newregular rmregular rmexec
+ diff -r a66d19b9302d newregular
+ --- /dev/null
+ +++ b/newregular
+ @@ -0,0 +1,1 @@
+ +newregular
+ diff -r a66d19b9302d regular
+ --- a/regular
+ +++ b/regular
+ @@ -1,1 +1,2 @@
+ regular
+ +regular
+ diff -r a66d19b9302d rmexec
+ --- a/rmexec
+ +++ /dev/null
+ @@ -1,1 +0,0 @@
+ -rmexec
+ diff -r a66d19b9302d rmregular
+ --- a/rmregular
+ +++ /dev/null
+ @@ -1,1 +0,0 @@
+ -rmregular
+
+ $ for f in exec newexec setexec unsetexec binary newbinary newempty rmempty rmbinary bintoregular; do
+ > echo
+ > echo '% git=auto: git diff for' $f
+ > hg autodiff --git=auto $f
+ > done
+
+ % git=auto: git diff for exec
+ diff -r a66d19b9302d exec
+ --- a/exec
+ +++ b/exec
+ @@ -1,1 +1,2 @@
+ exec
+ +exec
+
+ % git=auto: git diff for newexec
+ diff --git a/newexec b/newexec
+ new file mode 100755
+ --- /dev/null
+ +++ b/newexec
+ @@ -0,0 +1,1 @@
+ +newexec
+
+ % git=auto: git diff for setexec
+ diff --git a/setexec b/setexec
+ old mode 100644
+ new mode 100755
+
+ % git=auto: git diff for unsetexec
+ diff --git a/unsetexec b/unsetexec
+ old mode 100755
+ new mode 100644
+
+ % git=auto: git diff for binary
+ diff --git a/binary b/binary
+ index a9128c283485202893f5af379dd9beccb6e79486..09f370e38f498a462e1ca0faa724559b6630c04f
+ GIT binary patch
+ literal 2
+ Jc${Nk0000200961
+
+
+ % git=auto: git diff for newbinary
+ diff --git a/newbinary b/newbinary
+ new file mode 100644
+ index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d
+ GIT binary patch
+ literal 1
+ Ic${MZ000310RR91
+
+
+ % git=auto: git diff for newempty
+ diff --git a/newempty b/newempty
+ new file mode 100644
+
+ % git=auto: git diff for rmempty
+ diff --git a/rmempty b/rmempty
+ deleted file mode 100644
+
+ % git=auto: git diff for rmbinary
+ diff --git a/rmbinary b/rmbinary
+ deleted file mode 100644
+ Binary file rmbinary has changed
+
+ % git=auto: git diff for bintoregular
+ diff --git a/bintoregular b/bintoregular
+ index f76dd238ade08917e6712764a16a22005a50573d..9c42f2b6427d8bf034b7bc23986152dc01bfd3ab
+ GIT binary patch
+ literal 13
+ Uc$`bh%qz(+N=+}#Ni5<5043uE82|tP
+
+
+git=warn: regular diff with data loss warnings
+
+ $ hg autodiff --git=warn
+ diff -r a66d19b9302d binary
+ Binary file binary has changed
+ diff -r a66d19b9302d bintoregular
+ Binary file bintoregular has changed
+ diff -r a66d19b9302d exec
+ --- a/exec
+ +++ b/exec
+ @@ -1,1 +1,2 @@
+ exec
+ +exec
+ diff -r a66d19b9302d newbinary
+ Binary file newbinary has changed
+ diff -r a66d19b9302d newexec
+ --- /dev/null
+ +++ b/newexec
+ @@ -0,0 +1,1 @@
+ +newexec
+ diff -r a66d19b9302d newregular
+ --- /dev/null
+ +++ b/newregular
+ @@ -0,0 +1,1 @@
+ +newregular
+ diff -r a66d19b9302d regular
+ --- a/regular
+ +++ b/regular
+ @@ -1,1 +1,2 @@
+ regular
+ +regular
+ diff -r a66d19b9302d rmbinary
+ Binary file rmbinary has changed
+ diff -r a66d19b9302d rmexec
+ --- a/rmexec
+ +++ /dev/null
+ @@ -1,1 +0,0 @@
+ -rmexec
+ diff -r a66d19b9302d rmregular
+ --- a/rmregular
+ +++ /dev/null
+ @@ -1,1 +0,0 @@
+ -rmregular
+ data lost for: binary
+ data lost for: bintoregular
+ data lost for: newbinary
+ data lost for: newempty
+ data lost for: newexec
+ data lost for: rmbinary
+ data lost for: rmempty
+ data lost for: setexec
+ data lost for: unsetexec
+
+git=abort: fail on execute bit change
+
+ $ hg autodiff --git=abort regular setexec
+ abort: losing data for setexec
+ [255]
+
+git=abort: succeed on regular file
+
+ $ hg autodiff --git=abort regular
+ diff -r a66d19b9302d regular
+ --- a/regular
+ +++ b/regular
+ @@ -1,1 +1,2 @@
+ regular
+ +regular
+
+ $ cd ..
+