You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Joe Swatosh <jo...@gmail.com> on 2010/07/29 23:46:22 UTC

Re: svn commit: r959954 - /subversion/trunk/subversion/libsvn_wc/wc.h

On Fri, Jul 2, 2010 at 4:28 AM,  <ju...@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
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

Re: svn commit: r959954 - /subversion/trunk/subversion/libsvn_wc/wc.h

Posted by Joe Swatosh <jo...@gmail.com>.
On Sun, Aug 1, 2010 at 3:17 PM, Bert Huijben <be...@qqmail.nl> wrote:
>
>


>> >
>> > The Ruby tests trigger this error when they try to delete some
>> mergeinfo,
>> > but this error is a few levels deep in some lambda processing so I
>> find it
>> > hard to find out what the expected status should be here.
>> >
>>

>
> I think r981319 is the proper fix for this issue.
>
>        Bert
>

Thanks Bert, now passing for me locally.

I was going to propose either

<>
Index: subversion/bindings/swig/ruby/test/test_client.rb
===================================================================
--- subversion/bindings/swig/ruby/test/test_client.rb   (revision 980794)
+++ subversion/bindings/swig/ruby/test/test_client.rb   (working copy)
@@ -1026,7 +1026,7 @@
                                 ]
                                ], merged_entries)

-      ctx.propdel("svn:mergeinfo", trunk)
+      ctx.propdel("svn:mergeinfo", trunk, :empty)
       merged_entries = []
       ctx.log_merged(trunk, rev4, branch_uri, rev4) do |entry|
         merged_entries << entry
@@ -1056,7 +1056,7 @@
       yield(ctx, branch, rev3, rev4, trunk, nil, false, true)
       assert_changed(ctx, trunk)

-      ctx.propdel("svn:mergeinfo", trunk)
+      ctx.propdel("svn:mergeinfo", trunk, :empty)
       rev6 = ctx.commit(@wc_path).revision

       yield(ctx, branch, rev3, rev4, trunk, nil, false, true, true)
</>

Which just causes the propdel to not recurse in the merge tests or

<>
Index: subversion/bindings/swig/ruby/test/test_client.rb
===================================================================
--- subversion/bindings/swig/ruby/test/test_client.rb   (revision 980794)
+++ subversion/bindings/swig/ruby/test/test_client.rb   (working copy)
@@ -1372,7 +1372,7 @@
       assert_equal({}, ctx.pg(prop_name, path))

       ctx.up(@wc_path)
-      ctx.ps(prop_name, prop_value, dir_path)
+      ctx.ps(prop_name, prop_value, dir_path, true)
       ctx.ci(@wc_path)
       assert_equal({
                      dir_uri => prop_value,
@@ -1381,17 +1381,17 @@
                    ctx.pg(prop_name, dir_path))

       ctx.up(@wc_path)
-      ctx.pdel(prop_name, dir_path, false)
+      ctx.pdel(prop_name, dir_path)
       ctx.ci(@wc_path)
       assert_equal({uri => prop_value}, ctx.pg(prop_name, dir_path))

       ctx.up(@wc_path)
-      ctx.pd(prop_name, dir_path)
+      ctx.pd(prop_name, dir_path, :infinity)
       ctx.ci(@wc_path)
       assert_equal({}, ctx.pg(prop_name, dir_path))

       ctx.up(@wc_path)
-      ctx.ps(prop_name, prop_value, dir_path, false)
+      ctx.ps(prop_name, prop_value, dir_path)
       ctx.ci(@wc_path)
       assert_equal({dir_uri => prop_value}, ctx.pg(prop_name, dir_path))

@@ -1444,7 +1444,7 @@
       assert_equal([value1], ctx.pl(path).collect{|item| item[name1]})

       ctx.up(@wc_path)
-      ctx.ps(name2, value2, dir_path)
+      ctx.ps(name2, value2, dir_path, :infinity)
       ctx.ci(@wc_path)
       assert_equal([uri, dir_uri].sort,
                    ctx.prop_list(dir_path).collect{|item| item.name})
Index: subversion/bindings/swig/ruby/svn/client.rb
===================================================================
--- subversion/bindings/swig/ruby/svn/client.rb (revision 980794)
+++ subversion/bindings/swig/ruby/svn/client.rb (working copy)
@@ -264,7 +264,7 @@
         Client.resolve(arguments[:path], arguments[:depth],
arguments[:conflict_choice], self)
       end

-      def propset(name, value, target, depth_or_recurse=nil, force=false,
+      def propset(name, value, target, depth_or_recurse=:empty, force=false,
                   base_revision_for_url=nil, changelists_names=nil,
                   revprop_table=nil)
         base_revision_for_url ||= Svn::Core::INVALID_REVNUM
</>

Which changes the default depth for propset (used in the
implementation of propdel) from infinity to empty and adjusts the
property tests.

This seems like what the default should have been, but I don't like
changing the default.  Now that you've solved it, I'm not sure it
matters, but I'm curious what others opinions are.

--
Joe

RE: svn commit: r959954 - /subversion/trunk/subversion/libsvn_wc/wc.h

Posted by Bert Huijben <be...@qqmail.nl>.

> -----Original Message-----
> From: Joe Swatosh [mailto:joe.swatosh@gmail.com]
> Sent: vrijdag 30 juli 2010 16:33
> To: Bert Huijben
> Cc: dev@subversion.apache.org; julian.foad@wandisco.com; Hyrum K.
> Wright
> Subject: Re: svn commit: r959954 -
> /subversion/trunk/subversion/libsvn_wc/wc.h
> 
> On Fri, Jul 30, 2010 at 1:21 AM, Bert Huijben <be...@qqmail.nl> wrote:
> >
> >
> >> -----Original Message-----
> >> From: Joe Swatosh [mailto:joe.swatosh@gmail.com]
> >> Sent: vrijdag 30 juli 2010 3:50
> 
> >
> > Julian is looking at the issue now.
> >
> > There is one more issue in the Ruby tests and you might be able to
> give me a
> > hint on where I can fix this.
> >
> > Shortly before switching to in-db properties I made it an error to
> update
> > properties on nodes that shouldn't have editable properties. (E.g.
> deleted
> > nodes)
> >
> > The Ruby tests trigger this error when they try to delete some
> mergeinfo,
> > but this error is a few levels deep in some lambda processing so I
> find it
> > hard to find out what the expected status should be here.
> >
> 
> Thanks to you and Julian for fixing this!
> 
> Those merge test failures are the other thing I was looking at when I
> confused myself about which revision started causing which failures.
> The merge tests in the Ruby bindings drive me nuts.  They are
> complicated and fragile, and I don't like that they mess about with
> the mergeinfo property directly; mergeinfo _feels_ like it should be
> an implementation detail.  So, while I was reasonably sure that the
> bindings weren't the problem in what you tested and Julian fixed, I'm
> going to have to spend some time with these to figure out what is
> what.
> 
> What you describe above is true, but my initial tracing (just doing a
> svn st just before the delete) shows that the node already has
> property modifications (svn:mergeinfo is the only property), but isn't
> marked for deletion.

I think r981319 is the proper fix for this issue.

	Bert

Re: svn commit: r959954 - /subversion/trunk/subversion/libsvn_wc/wc.h

Posted by Joe Swatosh <jo...@gmail.com>.
On Fri, Jul 30, 2010 at 1:21 AM, Bert Huijben <be...@qqmail.nl> wrote:
>
>
>> -----Original Message-----
>> From: Joe Swatosh [mailto:joe.swatosh@gmail.com]
>> Sent: vrijdag 30 juli 2010 3:50

>
> Julian is looking at the issue now.
>
> There is one more issue in the Ruby tests and you might be able to give me a
> hint on where I can fix this.
>
> Shortly before switching to in-db properties I made it an error to update
> properties on nodes that shouldn't have editable properties. (E.g. deleted
> nodes)
>
> The Ruby tests trigger this error when they try to delete some mergeinfo,
> but this error is a few levels deep in some lambda processing so I find it
> hard to find out what the expected status should be here.
>

Thanks to you and Julian for fixing this!

Those merge test failures are the other thing I was looking at when I
confused myself about which revision started causing which failures.
The merge tests in the Ruby bindings drive me nuts.  They are
complicated and fragile, and I don't like that they mess about with
the mergeinfo property directly; mergeinfo _feels_ like it should be
an implementation detail.  So, while I was reasonably sure that the
bindings weren't the problem in what you tested and Julian fixed, I'm
going to have to spend some time with these to figure out what is
what.

What you describe above is true, but my initial tracing (just doing a
svn st just before the delete) shows that the node already has
property modifications (svn:mergeinfo is the only property), but isn't
marked for deletion.

--
Joe

RE: svn commit: r959954 - /subversion/trunk/subversion/libsvn_wc/wc.h

Posted by Bert Huijben <be...@qqmail.nl>.

> -----Original Message-----
> From: Joe Swatosh [mailto:joe.swatosh@gmail.com]
> Sent: vrijdag 30 juli 2010 3:50
> To: Bert Huijben
> Cc: dev@subversion.apache.org; julian.foad@wandisco.com; Hyrum K.
> Wright
> Subject: Re: svn commit: r959954 -
> /subversion/trunk/subversion/libsvn_wc/wc.h


> Hi Bert (or whoever may look into this before tomorrow),
> 
> I was working on two sets of test failures and screwed up on when
> things started.  This failure actually started in r964036.
> (Probably the same as reported by Hyrum
> http://svn.haxx.se/dev/archive-2010-07/0293.shtml).
> 
> Sorry for the initial mislead :-(
	Hi,

Julian is looking at the issue now.

There is one more issue in the Ruby tests and you might be able to give me a
hint on where I can fix this.

Shortly before switching to in-db properties I made it an error to update
properties on nodes that shouldn't have editable properties. (E.g. deleted
nodes)
 
The Ruby tests trigger this error when they try to delete some mergeinfo,
but this error is a few levels deep in some lambda processing so I find it
hard to find out what the expected status should be here.

	Bert

Re: svn commit: r959954 - /subversion/trunk/subversion/libsvn_wc/wc.h

Posted by Joe Swatosh <jo...@gmail.com>.
On Thu, Jul 29, 2010 at 6:50 PM, Joe Swatosh <jo...@gmail.com> wrote:
> On Thu, Jul 29, 2010 at 4:58 PM, Bert Huijben <be...@qqmail.nl> wrote:


> Hi Bert (or whoever may look into this before tomorrow),
>
> I was working on two sets of test failures and screwed up on when
> things started.  This failure actually started in r964036.
> (Probably the same as reported by Hyrum
> http://svn.haxx.se/dev/archive-2010-07/0293.shtml).
>
> Sorry for the initial mislead :-(
>

I should just stay on vacation.  I was right the first time.

--
Joe

Re: svn commit: r959954 - /subversion/trunk/subversion/libsvn_wc/wc.h

Posted by Joe Swatosh <jo...@gmail.com>.
On Thu, Jul 29, 2010 at 4:58 PM, Bert Huijben <be...@qqmail.nl> wrote:
>
>
>> -----Original Message-----
>> From: Joe Swatosh [mailto:joe.swatosh@gmail.com]
>> Sent: vrijdag 30 juli 2010 1:46
>> To: dev@subversion.apache.org; julian.foad@wandisco.com
>> Subject: Re: svn commit: r959954 -
>> /subversion/trunk/subversion/libsvn_wc/wc.h
>>
>> On Fri, Jul 2, 2010 at 4:28 AM,  <ju...@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,
>>


>>
>
> (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
>

Hi Bert (or whoever may look into this before tomorrow),

I was working on two sets of test failures and screwed up on when
things started.  This failure actually started in r964036.
(Probably the same as reported by Hyrum
http://svn.haxx.se/dev/archive-2010-07/0293.shtml).

Sorry for the initial mislead :-(

--
Joe

RE: svn commit: r959954 - /subversion/trunk/subversion/libsvn_wc/wc.h

Posted by Julian Foad <ju...@wandisco.com>.
Bert Huijben wrote:
> > 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?
> 
> Ok, just confirmed this.
> 
> See the regression test I added in r980672, based on your script.

Fixed in r980716.  svn_wc__db_pristine_remove() now doesn't remove it if
the work queue is non-empty.

However there's more to do.  The code already doesn't remove unused
pristines in all the places where it should, and this change fixes that
bug but also means even fewer unreferenced ones will be removed.

- Julian



RE: svn commit: r959954 - /subversion/trunk/subversion/libsvn_wc/wc.h

Posted by Julian Foad <ju...@wandisco.com>.
Bert Huijben wrote:
> > 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?
> 
> Ok, just confirmed this.
> 
> See the regression test I added in r980672, based on your script.

Fixed in r980716.  svn_wc__db_pristine_remove() now doesn't remove it if
the work queue is non-empty.

However there's more to do.  The code already doesn't remove unused
pristines in all the places where it should, and this change fixes that
bug but also means even fewer unreferenced ones will be removed.

- Julian


RE: svn commit: r959954 - /subversion/trunk/subversion/libsvn_wc/wc.h

Posted by Bert Huijben <be...@qqmail.nl>.

> -----Original Message-----
> From: Bert Huijben [mailto:bert@qqmail.nl]
> Sent: vrijdag 30 juli 2010 1:59
> To: 'Joe Swatosh'; dev@subversion.apache.org; julian.foad@wandisco.com
> Subject: RE: svn commit: r959954 -
> /subversion/trunk/subversion/libsvn_wc/wc.h
> 
> 
<snip>

> (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!

Ok, just confirmed this.

See the regression test I added in r980672, based on your script.

Thanks,

	Bert

RE: svn commit: r959954 - /subversion/trunk/subversion/libsvn_wc/wc.h

Posted by Bert Huijben <be...@qqmail.nl>.

> -----Original Message-----
> From: Joe Swatosh [mailto:joe.swatosh@gmail.com]
> Sent: vrijdag 30 juli 2010 1:46
> To: dev@subversion.apache.org; julian.foad@wandisco.com
> Subject: Re: svn commit: r959954 -
> /subversion/trunk/subversion/libsvn_wc/wc.h
> 
> On Fri, Jul 2, 2010 at 4:28 AM,  <ju...@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