[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [PATCH] Re: Regarding issue 3690 - Work in progress

From: Noorul Islam K M <noorul_at_collab.net>
Date: Wed, 02 Feb 2011 15:29:50 +0530

Noorul Islam K M <noorul_at_collab.net> writes:

> Hyrum K Wright <hyrum_at_hyrumwright.org> writes:
>
>> On Mon, Jan 31, 2011 at 10:52 PM, Noorul Islam K M <noorul_at_collab.net> wrote:
>>
>>> Hyrum K Wright <hyrum_at_hyrumwright.org> writes:
>>>
>>>> On Mon, Jan 31, 2011 at 10:53 AM, Noorul Islam K M <noorul_at_collab.net> wrote:
>>>>
>>>>> Daniel Becroft <djcbecroft_at_gmail.com> writes:
>>>>>
>>>>>> On 27/01/2011, at 17:04, Noorul Islam K M <noorul_at_collab.net> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> I am planning to work on issue 3690. Before starting with this I have
>>>>>>> few questions.
>>>>>>>
>>>>>>> 1. Hyrum updated the issue with his comment stating that already there
>>>>>>>   is work going on in the branch ignore-mergeinfo which addresses
>>>>>>>   subset of issue 3690, i.e ignoring changes to svn:mergeinfo. Is
>>>>>>>   svn:mergeinfo an svn property set using svn pset command? I think Zvi
>>>>>>>   Rackover is talking about a new option passing which a user can
>>>>>>>   ignore revisions with just the following property changes alone.
>>>>>>>
>>>>>>>   author      eol-style   externals   keywords    mime-type
>>>>>>>   date        executable  ignore      log         needs-lock
>>>>>>
>>>>>> Fyi, svn:author, svn:date and svn:log are revision properties - changes to these don't appear in the log.
>>>>>>
>>>>>> Cheers,
>>>>>> Daniel
>>>>>> Sent from my phone.
>>>>>>
>>>>>
>>>>> I started working on this and I think I completed the changes for
>>>>> svn_ra_local. Attached is the patch. This is a work in progress. I would
>>>>> like to get some initial comments/suggestions on the patch and would
>>>>> like to know whether I am proceeding on right direction.
>>>>>
>>>>> This patch adds new option '--ignore-properties' to 'log' sub
>>>>> command. If this option is provided then command ignore revisions that
>>>>> has only property changes from output.
>>>>
>>>> I haven't reviewed the patch, but would like to discuss the approach.
>>>>
>>>> Ignoring all or none of a set of prop mods may not be granular enough.
>>>>  Since consumers rarely change mergeinfo without changing content, I
>>>> don't see that the new behavior would be exercised very often.  What
>>>> we really want to do is filter out mergeinfo changes on a per-node
>>>> basis, not a per-revision basis as the new docs claim.  (Perhaps the
>>>> docs are inaccurate?)
>>>>
>>>> I don't see anywhere in the patch where you address RA layers other
>>>> than ra_local.  Also, what is the expected behavior when operating
>>>
>>> I mentioned this in the mail. I will be handling this in the future. I
>>> just wanted get feedback from list so that I might not end up direction
>>> less.
>>>
>>>> against older servers?  If you send the ignore_properties flag to
>>>> older servers, they will just ignore the flag and return all the
>>>> revisions, and the client will dutifully report them.  Do you have a
>>>> plan for this scenario?
>>>
>>> Thank you for pointing this out. So far I have not thought about
>>> this. What about throwing an error, if there the server version is less
>>> than what we expect?
>>
>> Or more specifically, if the server doesn't support the required
>> capability (as on the ignore-mergeinfo-log branch).
>>
>
> I will copy this :)
>
>>>> Finally, is there a reason why you chose to do this against trunk,
>>>> rather than the ignore-mergeinfo-log branch, which already addresses
>>>> many of the above concerns?  I've been hacking on that branch a bit
>>>> lately, and it isn't complete but patches and review are definitely
>>>> welcome.
>>>>
>>>
>>> I did this against trunk because I could see lots of changes in
>>> ignore-mergeinfo-log branch. For me to avoid confusion, I thought I will
>>> start preparing patch against trunk. Also if I include this option also
>>> to the ignore-mergeinfo-log branch, will that be possible to factor out
>>> my changes alone? Or is it a good idea to have a separate branch for
>>> this. I am not sure at this point.
>>>
>>> Do you mean to say that ignore-mergeinfo-log has an option to filter out
>>> revisions being send to the receiver if that revision contains only
>>> property changes? Isn't that issue 3690 all about?
>>
>> Well, reading back through issue 3690, it looks like it could use some
>> design work. :)
>>
>> The reporter states the request, and then this motivation: "many users
>> are not interested in reviewing changes to property changes and only
>> care about content changes." To that I would ask "why?" What
>> scenarios does this pop up in.
>>
>> I know my specific usecase is managing the release branches, and
>> having to filter through all the svn:mergeinfo mods when attempting to
>> find the last time CHANGES was textually modified. Maybe that would
>> be accomplished by a 'ignore all prop mods' flag; maybe not. Maybe
>> the approach on the ignore-mergeinfo-log branch is *too* discrete, and
>> would end up being a performance killer; maybe not. The more I write,
>> the the more I think this deserves some design consideration. (And
>> hence my desire to do it on a branch rather than trunk: I don't want
>> to hold up 1.7, and don't want to release a half-cooked idea.)
>>
>> One other option may be to have some way of using the ignored prop mod
>> list, as on the branch, to specify ignoring *all* prop mods,
>> irrespective of property name. From an API perspective, this could
>> accomplish both goals. But I still think we need to think more about
>> what problem we're trying to solve.
>
> I will create this patch against ignore-mergeinfo-log branch. I will
> make the changes as you did for ignore-mergeinfo one by one. Attached is
> the first patch which adds the option to log sub command. It will be
> great if you could review them and let me know the comments.
>

Log

[[[

On the ignore-mergeinfo-log branch:
Add a simple test of ignoring revisions with only property changes.

* subversion/tests/cmdline/log_tests.py
  (log_ignore_properties): New.
  (test_list): Run the new test as XFail.

]]]

Thanks and Regards
Noorul

Index: subversion/tests/cmdline/log_tests.py
===================================================================
--- subversion/tests/cmdline/log_tests.py (revision 1066373)
+++ subversion/tests/cmdline/log_tests.py (working copy)
@@ -1795,7 +1795,27 @@
                                                   iota_path)
   check_log_chain(parse_log_output(output), [5, 3])
 
+def log_ignore_properties(sbox):
+ "svn log --ignore-properties"
+ sbox.build()
+ wc_dir = sbox.wc_dir
+ iota_file = os.path.join(wc_dir, 'iota')
+ svntest.main.run_svn(None, 'propset', 'foo', 'bar', iota_file)
+ svntest.main.run_svn(None, 'ci', '-m',
+ 'Set property "foo" to "bar" on A/iota', wc_dir)
+
+ svntest.main.run_svn(None, 'propset', 'bar', 'foo', iota_file)
+ svntest.main.run_svn(None, 'ci', '-m',
+ 'Set property "bar" to "foo" on A/iota', wc_dir)
 
+ exit_code, output, error = svntest.main.run_svn(0, 'log',
+ '--ignore-properties',
+ wc_dir)
+
+ expected_output_re = re.compile(".*Set property.*")
+ if expected_output_re.match("".join(output)):
+ raise svntest.Failure('Log failed with --ignore-properties')
+
 ########################################################################
 # Run the tests
 
@@ -1839,6 +1859,7 @@
                          server_has_mergeinfo),
               log_of_local_copy,
               SkipUnless(XFail(ignore_mergeinfo_log), server_has_mergeinfo),
+ XFail(log_ignore_properties),
              ]
 
 if __name__ == '__main__':
Received on 2011-02-02 11:01:24 CET

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.