tests/test-diff-upgrade.t
changeset 12149 3213e56d63aa
parent 11551 4484a7b661f2
child 12316 4134686b83e1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-diff-upgrade.t	Thu Sep 02 15:39:55 2010 +0200
@@ -0,0 +1,259 @@
+
+  $ 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
+  $ 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 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
+  $ 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 b3f053cd7c7f binary
+  Binary file binary has changed
+  diff -r b3f053cd7c7f exec
+  --- a/exec
+  +++ b/exec
+  @@ -1,1 +1,2 @@
+   exec
+  +exec
+  diff -r b3f053cd7c7f newbinary
+  Binary file newbinary has changed
+  diff -r b3f053cd7c7f newexec
+  --- /dev/null
+  +++ b/newexec
+  @@ -0,0 +1,1 @@
+  +newexec
+  diff -r b3f053cd7c7f newregular
+  --- /dev/null
+  +++ b/newregular
+  @@ -0,0 +1,1 @@
+  +newregular
+  diff -r b3f053cd7c7f regular
+  --- a/regular
+  +++ b/regular
+  @@ -1,1 +1,2 @@
+   regular
+  +regular
+  diff -r b3f053cd7c7f rmbinary
+  Binary file rmbinary has changed
+  diff -r b3f053cd7c7f rmexec
+  --- a/rmexec
+  +++ /dev/null
+  @@ -1,1 +0,0 @@
+  -rmexec
+  diff -r b3f053cd7c7f 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 removals
+
+  $ hg autodiff --git=auto regular newregular rmregular rmbinary rmexec
+  diff -r b3f053cd7c7f newregular
+  --- /dev/null
+  +++ b/newregular
+  @@ -0,0 +1,1 @@
+  +newregular
+  diff -r b3f053cd7c7f regular
+  --- a/regular
+  +++ b/regular
+  @@ -1,1 +1,2 @@
+   regular
+  +regular
+  diff -r b3f053cd7c7f rmbinary
+  Binary file rmbinary has changed
+  diff -r b3f053cd7c7f rmexec
+  --- a/rmexec
+  +++ /dev/null
+  @@ -1,1 +0,0 @@
+  -rmexec
+  diff -r b3f053cd7c7f rmregular
+  --- a/rmregular
+  +++ /dev/null
+  @@ -1,1 +0,0 @@
+  -rmregular
+
+  $ for f in exec newexec setexec unsetexec binary newbinary newempty rmempty; do
+  >     echo
+  >     echo '% git=auto: git diff for' $f
+  >     hg autodiff --git=auto $f
+  > done
+  
+  % git=auto: git diff for exec
+  diff -r b3f053cd7c7f 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=warn: regular diff with data loss warnings
+
+  $ hg autodiff --git=warn
+  diff -r b3f053cd7c7f binary
+  Binary file binary has changed
+  diff -r b3f053cd7c7f exec
+  --- a/exec
+  +++ b/exec
+  @@ -1,1 +1,2 @@
+   exec
+  +exec
+  diff -r b3f053cd7c7f newbinary
+  Binary file newbinary has changed
+  diff -r b3f053cd7c7f newexec
+  --- /dev/null
+  +++ b/newexec
+  @@ -0,0 +1,1 @@
+  +newexec
+  diff -r b3f053cd7c7f newregular
+  --- /dev/null
+  +++ b/newregular
+  @@ -0,0 +1,1 @@
+  +newregular
+  diff -r b3f053cd7c7f regular
+  --- a/regular
+  +++ b/regular
+  @@ -1,1 +1,2 @@
+   regular
+  +regular
+  diff -r b3f053cd7c7f rmbinary
+  Binary file rmbinary has changed
+  diff -r b3f053cd7c7f rmexec
+  --- a/rmexec
+  +++ /dev/null
+  @@ -1,1 +0,0 @@
+  -rmexec
+  diff -r b3f053cd7c7f rmregular
+  --- a/rmregular
+  +++ /dev/null
+  @@ -1,1 +0,0 @@
+  -rmregular
+  data lost for: binary
+  data lost for: newbinary
+  data lost for: newempty
+  data lost for: newexec
+  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
+
+git=abort: succeed on regular file
+
+  $ hg autodiff --git=abort regular
+  diff -r b3f053cd7c7f regular
+  --- a/regular
+  +++ b/regular
+  @@ -1,1 +1,2 @@
+   regular
+  +regular
+
+  $ cd ..
+