Attaching this time ...
On Tue, Aug 16, 2011 at 3:26 PM, Mark Phippard <[email protected]> wrote:
> On Tue, Aug 16, 2011 at 3:09 PM, Hyrum K Wright <[email protected]
> > wrote:
>
>> On Tue, Aug 16, 2011 at 11:59 AM, Mark Phippard <[email protected]>
>> wrote:
>> > The JavaHL propertySetRemote API seems incomplete.
>> > 1) It does not take a CommitMessageCallback. So no way to provide
>> commit
>> > message.
>>
>> r1158421 added the CommitMessageCallback to the propertSetRemote API.
>>
>> > 2) When trying to change a versioned property via URL, it fails with:
>> > Bogus revision information given
>> > svn: Setting property on non-local targets needs a base revision
>> > We want to use this API in Subclipse to freeze svn:externals properties
>> in a
>> > tag after committing it. TortoiseSVN seems to offer to do this now.
>>
>> I'm not sure exactly what's going on here, or how to trigger it. If
>> possible, a test case would go a long way toward illuminating this.
>>
>
> I have attached a patch that adds a new test that shows the problem. When
> this is working I would probably enhance the test to update the WC and
> verify the prop change.
>
> When I run the test with current trunk it fails with this:
>
> There was 1 error:
> 1)
> testPropEdit(org.apache.subversion.javahl.BasicTests)org.apache.subversion.javahl.ClientException:
> Bogus revision information given
> svn: Setting property on non-local targets needs a base revision
>
> at native.subversion.libsvn_client(prop_commands.c:418)
> at org.apache.subversion.javahl.SVNClient.propertySetRemote(Native
> Method)
> at
> org.apache.subversion.javahl.BasicTests.testPropEdit(BasicTests.java:3146)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at org.apache.subversion.javahl.RunTests.main(RunTests.java:116)
>
> FAILURES!!!
> Tests run: 1, Failures: 0, Errors: 1
>
>
> --
> Thanks
>
> Mark Phippard
> http://markphip.blogspot.com/
>
--
Thanks
Mark Phippard
http://markphip.blogspot.com/
Index:
subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
===================================================================
---
subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
(revision 1158424)
+++
subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
(working copy)
@@ -3110,6 +3110,46 @@
}
/**
+ * Test the basic SVNClient.propertySetRemote functionality.
+ * @throws Throwable
+ */
+ public void testPropEdit() throws Throwable
+ {
+ final String PROP = "abc";
+ final byte[] VALUE = new String("def").getBytes();
+ final byte[] NEWVALUE = new String("newvalue").getBytes();
+ // create the test working copy
+ OneTest thisTest = new OneTest();
+
+ Set<String> pathSet = new HashSet<String>();
+ // set a property on A/D/G/rho file
+ pathSet.clear();
+ pathSet.add(thisTest.getWCPath()+"/A/D/G/rho");
+ client.propertySetLocal(pathSet, PROP, VALUE,
+ Depth.infinity, null, false);
+ thisTest.getWc().setItemPropStatus("A/D/G/rho", Status.Kind.modified);
+
+ // test the status of the working copy
+ thisTest.checkStatus();
+
+ // commit the changes
+ checkCommitRevision(thisTest, "wrong revision number from commit", 2,
+ thisTest.getWCPathSet(), "log msg", Depth.infinity,
+ false, false, null, null);
+
+ thisTest.getWc().setItemPropStatus("A/D/G/rho", Status.Kind.normal);
+
+ // check the status of the working copy
+ thisTest.checkStatus();
+
+ // now edit the propval directly in the repository
+ client.propertySetRemote(thisTest.getUrl()+"/A/D/G/rho", PROP,
NEWVALUE, new ConstMsg("edit prop"),
+ false, null, null);
+
+
+ }
+
+ /**
* Test tolerance of unversioned obstructions when adding paths with
* {@link org.apache.subversion.javahl.SVNClient#checkout()},
* {@link org.apache.subversion.javahl.SVNClient#update()}, and