You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Tatyana Irzun <t_...@wargaming.net> on 2020/02/18 13:39:05 UTC

differ file in SVN checkout and export

We got difference in the same revision and same file but taken by export and checkout in SVN client version more or equal than 1.10:

$ svn co https://svn-test.net/svn/test/ -r9 checkout
Checked out revision 9.
$ svn export https://svn-test.net/svn/test/ -r9 export
A export
A export/EmptyStandbyList.exe
Exported revision 9.
$ diff checkout/EmptyStandbyList.exe export/EmptyStandbyList.exe

$ md5sum export/EmptyStandbyList.exe
10ab6937e720856efd4a315f0f06fcfb  export/EmptyStandbyList.exe
$ md5sum checkout/EmptyStandbyList.exe
10ab6937e720856efd4a315f0f06fcfb  checkout/EmptyStandbyList.exe


no difference as we see

$ svn --version
svn, version 1.9.7 (r1800392)
compiled Mar 28 2018, 08:49:13 on x86_64-pc-linux-gnu
$ cd checkout/
$ svn proplist EmptyStandbyList.exe -v
Properties on 'EmptyStandbyList.exe':
svn:special
*

Now we repeat on other version of client:

$ svn --version
svn, version 1.11.1 (r1850623)
compiled Jun 17 2019, 17:51:58 on x86_64-pc-linux-gnu
$ svn co https://svn-test.net/svn/test/ -r9 checkout
$ svn export https://svn-test.net/svn/test/ -r9 export
$ diff checkout/EmptyStandbyList.exe export/EmptyStandbyList.exe
Binary files checkout/EmptyStandbyList.exe and export/EmptyStandbyList.exe differ

$ md5sum export/EmptyStandbyList.exe
5ddd018068333a4fa03e08b5451b1d52  export/EmptyStandbyList.exe

$ md5sum checkout/EmptyStandbyList.exe
10ab6937e720856efd4a315f0f06fcfb  checkout/EmptyStandbyList.exe


$ cd checkout/
$ svn proplist EmptyStandbyList.exe -v
Properties on 'EmptyStandbyList.exe':
svn:special
*

( also we repeated tests on different client versions and systems with the same result)

How we simulate situation:
1) we made a link to file in linux system
$ ln -s ../EmptyStandbyList.exe EmptyStandbyList.exe
$ ll
EmptyStandbyList.exe -> ../EmptyStandbyList.exe
2) commit this
$ svn add EmptyStandbyList.exe
$ svn commit -m "add link"
3) in windows client Tortoise  we just replaced link by actual binary file and committed again
And after that we got two different files in checkout and export way.

I undestand that linux and windows filesystems works different, but i don't understand what changed in algorithm of export command in >=1.10 version that gives us two different files and how to prevent this. And
Properties field strange also for binary file.


Thank you.




[wargaming.net]
EgzO3mXGcK

This e-mail may contain CONFIDENTIAL AND PROPRIETARY INFORMATION and/or PRIVILEGED AND CONFIDENTIAL COMMUNICATION intended solely for the recipient and, therefore, may not be retransmitted to any party outside of the recipient's organization without the prior written consent of the sender. If you have received this e-mail in error please notify the sender immediately by telephone or reply e-mail and destroy the original message without making a copy. Wargaming.net accepts no liability for any losses or damages resulting from infected e-mail transmissions and viruses in e-mail attachment. kgzO3mXGcg

Re: differ file in SVN checkout and export

Posted by Branko Čibej <br...@apache.org>.
On 18.02.2020 14:39, Tatyana Irzun wrote:
>
> /We got difference in the same revision and same file but taken by
> export and checkout in SVN client version more or equal than 1.10:/
>
> /$ svn co https://svn-test.net/svn/test/ -r9 checkout
> Checked out revision 9.
> $ svn export https://svn-test.net/svn/test/ -r9 export
> A export
> A export/EmptyStandbyList.exe
> Exported revision 9.
> $ diff checkout/EmptyStandbyList.exe export/EmptyStandbyList.exe/
>
> /$ md5sum export/EmptyStandbyList.exe
> 10ab6937e720856efd4a315f0f06fcfb  export/EmptyStandbyList.exe
> $ md5sum checkout/EmptyStandbyList.exe
> 10ab6937e720856efd4a315f0f06fcfb  checkout/EmptyStandbyList.exe
>
> /
>
> /no difference as we see/
>
> /$ svn --version
> svn, version 1.9.7 (r1800392)
> compiled Mar 28 2018, 08:49:13 on x86_64-pc-linux-gnu
> $ cd checkout/
> $ svn proplist EmptyStandbyList.exe -v
> Properties on 'EmptyStandbyList.exe':
> svn:special
> *
>
> /
>

Try removing the 'svn:special' property; it shouldn't be set on normal
files.


> /Now we repeat on other version of client:/
>
> /$ svn --version
> svn, version 1.11.1 (r1850623)
> compiled Jun 17 2019, 17:51:58 on x86_64-pc-linux-gnu
> $ svn co https://///svn-test.net//svn/test/ -r9 checkout
> $ svn export https://///svn-test.net//svn/test/ -r9 export
> $ diff checkout/EmptyStandbyList.exe export/EmptyStandbyList.exe
> Binary files checkout/EmptyStandbyList.exe and
> export/EmptyStandbyList.exe differ/
>
> /$ md5sum export/EmptyStandbyList.exe
> 5ddd018068333a4fa03e08b5451b1d52  export/EmptyStandbyList.exe/
>

Please also look at the size of the file and the contents.


> /$ md5sum checkout/EmptyStandbyList.exe
> 10ab6937e720856efd4a315f0f06fcfb  checkout/EmptyStandbyList.exe
>
> /
>
> /$ cd checkout/
> $ svn proplist EmptyStandbyList.exe -v
> Properties on 'EmptyStandbyList.exe':
> svn:special
> *
> /
>
>
> //( also we repeated tests on different client versions and systems
> with the same result)//
>
> /
> How we simulate situation:
> 1) we made a link to file in linux system
> $ ln -s ../EmptyStandbyList.exe EmptyStandbyList.exe
> $ ll
> EmptyStandbyList.exe -> ../EmptyStandbyList.exe
> 2) commit this
> $ svn add EmptyStandbyList.exe
> $ svn commit -m "add link"
> 3) in windows client Tortoise  we just replaced link by actual binary
> file and committed again
> /
>

... and did not remove the svn:special property at the same time.

Maybe Subversion should just error out when it sees that the contents of
a "symlink" changed in a way that it clearly is no longer a valid link
description?

-- Brane