> -----Original Message-----
> From: Joe Swatosh [mailto:joe.swatosh_at_gmail.com]
> Sent: vrijdag 30 juli 2010 1:46
> To: dev_at_subversion.apache.org; julian.foad_at_wandisco.com
> Subject: Re: svn commit: r959954 -
> /subversion/trunk/subversion/libsvn_wc/wc.h
>
> On Fri, Jul 2, 2010 at 4:28 AM, <julianfoad_at_apache.org> wrote:
> > Author: julianfoad
> > Date: Fri Jul 2 11:28:39 2010
> > New Revision: 959954
> >
> > URL: http://svn.apache.org/viewvc?rev=959954&view=rev
> > Log:
> > Enable the pristine text store: bump the WC format to 17 and define
> > SVN_EXPERIMENTAL_PRISTINE.
> >
>
> Hi Julian,
>
> Sorry for the delay, real life and all that. This commit caused a
> couple of the Ruby bindings tests to start failing.
>
> I was able to reproduce the problem using the command line with a
> trunk build from last night:
>
> <recipe>
>
> REM ignore all the windows command line scripting nonsense
>
> setlocal
>
> set svnroot=C:\Users\joe-swatosh\Documents\SVN\local\svn\src-trunk-
> 980466M\
> set svn=%svnroot%svn.exe
> set svnadmin=%svnroot%svnadmin.exe
>
> set repo=%~pd0repo
> set repo_url=file:///%repo:\=/%
> set wc=%~pd0wc
>
> if Exist %repo% rd /q/s %repo%
> if Exist %wc% rd /q/s %wc%
>
> %svnadmin% create %repo%
>
> md %wc%
> %svn% co %repo_url% %wc%
>
> REM END OF BOILERPLATE
>
>
> set dir=changed_dir
> set dir_path=%wc%/%dir%
> set dir_svn_path=%dir%
>
> set file4=changed4.txt
> set file5=changed5.txt
> set file4_path=%dir_path%/%file4%
> set file5_path=%wc%/%file5%
> set file4_svn_path=%dir_svn_path%/%file4%
> set file5_svn_path=%file5%
>
> set file7=changed7.txt
> set file7_path=%wc%/%file7%
> set file7_svn_path=%file7%
>
>
> %svn% mkdir %dir_path%
> echo "" > %file4_path%
> echo "" > %file5_path%
> %svn% add %file4_path%
> %svn% add %file5_path%
>
> %svn% commit %wc% -m"Revision One"
>
> %svn% rm %file4_path% %file5_path%
> echo "" > %file7_path%
> REM removing this line (or one of the removed paths above) allows the
> commit to work
> %svn% add %file7_path%
>
> %svn% commit %wc% -m"Commit Two"
>
> </recipe>
>
>
> For me this produces:
>
> <result>
>
> S:\>setlocal
>
> S:\>set svnroot=C:\Users\joe-swatosh\Documents\SVN\local\svn\src-trunk-
> 980466M\
>
> S:\>set svn=C:\Users\joe-swatosh\Documents\SVN\local\svn\src-trunk-
> 980466M\svn.exe
>
> S:\>set svnadmin=C:\Users\joe-swatosh\Documents\SVN\local\svn\src-
> trunk-980466M\svnadmin.exe
>
> S:\>set repo=S:\repo
>
> S:\>set repo_url=file:///S:/repo
>
> S:\>set wc=S:\wc
>
> S:\>if Exist S:\repo rd /q/s S:\repo
>
> S:\>if Exist S:\wc rd /q/s S:\wc
>
> S:\>C:\Users\joe-swatosh\Documents\SVN\local\svn\src-trunk-
> 980466M\svnadmin.exe
> create S:\repo
>
> S:\>md S:\wc
>
> S:\>C:\Users\joe-swatosh\Documents\SVN\local\svn\src-trunk-
> 980466M\svn.exe
> co file:///S:/repo S:\wc
> Checked out revision 0.
>
> S:\>REM END OF BOILERPLATE
>
> S:\>set dir=changed_dir
>
> S:\>set dir_path=S:\wc/changed_dir
>
> S:\>set dir_svn_path=changed_dir
>
> S:\>set file4=changed4.txt
>
> S:\>set file5=changed5.txt
>
> S:\>set file4_path=S:\wc/changed_dir/changed4.txt
>
> S:\>set file5_path=S:\wc/changed5.txt
>
> S:\>set file4_svn_path=changed_dir/changed4.txt
>
> S:\>set file5_svn_path=changed5.txt
>
> S:\>set file7=changed7.txt
>
> S:\>set file7_path=S:\wc/changed7.txt
>
> S:\>set file7_svn_path=changed7.txt
>
> S:\>C:\Users\joe-swatosh\Documents\SVN\local\svn\src-trunk-
> 980466M\svn.exe
> mkdir S:\wc/changed_dir
> A wc\changed_dir
>
> S:\>echo "" 1>S:\wc/changed_dir/changed4.txt
>
> S:\>echo "" 1>S:\wc/changed5.txt
>
> S:\>C:\Users\joe-swatosh\Documents\SVN\local\svn\src-trunk-
> 980466M\svn.exe
> add S:\wc/changed_dir/changed4.txt
> A wc\changed_dir\changed4.txt
>
> S:\>C:\Users\joe-swatosh\Documents\SVN\local\svn\src-trunk-
> 980466M\svn.exe
> add S:\wc/changed5.txt
> A wc\changed5.txt
>
> S:\>C:\Users\joe-swatosh\Documents\SVN\local\svn\src-trunk-
> 980466M\svn.exe
> commit S:\wc -m"Revision One"
> Adding wc\changed5.txt
> Adding wc\changed_dir
> Adding wc\changed_dir\changed4.txt
> Transmitting file data ..
> Committed revision 1.
>
> S:\>C:\Users\joe-swatosh\Documents\SVN\local\svn\src-trunk-
> 980466M\svn.exe
> rm S:\wc/changed_dir/changed4.txt S:\wc/changed5.txt
> D wc\changed_dir\changed4.txt
> D wc\changed5.txt
>
> S:\>echo "" 1>S:\wc/changed7.txt
>
> S:\>C:\Users\joe-swatosh\Documents\SVN\local\svn\src-trunk-
> 980466M\svn.exe
> add S:\wc/changed7.txt
> A wc\changed7.txt
>
> S:\>C:\Users\joe-swatosh\Documents\SVN\local\svn\src-trunk-
> 980466M\svn.exe
> commit S:\wc -m"Commit Two"
> Deleting wc\changed5.txt
> Adding wc\changed7.txt
(Just reading this mail. Will look into this tomorrow if nobody fixed it
before)
Looks like changed5.txt and changed7.txt have the same checksum here. (The
result of 'echo "" ' put into the file)
That add-s checksum isn't recorded in the database yet during post commit,
when the delete operation is performed so the delete determines that the
pristine can safely be removed because nobody is looking at it?
Joe, thanks for diagnosing!
Bert
> Deleting wc\changed_dir\changed4.txt
> Transmitting file data .
> Committed revision 2.
> svn: Commit succeeded, but other errors follow:
> svn: Error bumping revisions post-commit (details follow):
> svn: Error processing post-commit work for 'S:\wc\changed7.txt'
> svn: Pristine text not found
>
> </result>
>
> It seems to me like the script should work, and obviously the tests
> had been passing. Please let me know if there is other info I can
> provide or help me understand why the script is broken.
>
> Thanks!
> --
> Joe
Received on 2010-07-30 01:59:29 CEST