Oh, and for the curious:
In my new commit logic, I set the 'repos_id' and 'repos_relpath'
columns to null when appropriate. The old code pretty much always
fills those values in. So... with the different values stored, some
code tried to find the inherited values, but *that* logic was
incorrect.
IOW, I simply set up a scenario that revealed an otherwise hidden bug.
And since this stuff is (empirically/obviously) a bit tricky to get
right, we'll encapsulate it into a utility function.
Cheers,
-g
On Fri, Oct 9, 2009 at 21:13, Greg Stein <gstein_at_gmail.com> wrote:
> Heh. ENOTMYFAULT
>
> There is a buggy use of svn_wc__db_scan_addition() in the translation
> code. Basically, it tries to call that on not-added nodes. That's
> wrong.
>
> I'm going to write a little helper function to get repos information
> [properly], and just call that from the several places we need the
> info.
>
> Cheers,
> -g
>
> On Fri, Oct 9, 2009 at 18:00, Greg Stein <gstein_at_gmail.com> wrote:
>> Oops. Looks like a couple failures in the merge tests. I'll get to
>> this later tonite.
>>
>> On Fri, Oct 9, 2009 at 17:51, Greg Stein <gstein_at_gmail.com> wrote:
>>> Author: gstein
>>> Date: Fri Oct 9 14:51:23 2009
>>> New Revision: 39911
>>>
>>> Log:
>>> Turn on the adds/replaces. It all works now...
>>>
>>> * subversion/libsvn_wc/adm_ops.c:
>>> (process_committed_leaf): enable NG commits on files for anything but
>>> delete.
>>>
>>> * subversion/libsvn_wc/log.c:
>>> (log_do_committed): enable NG commits for all files.
>>>
>>> Modified:
>>> trunk/subversion/libsvn_wc/adm_ops.c
>>> trunk/subversion/libsvn_wc/log.c
>>>
>>> Modified: trunk/subversion/libsvn_wc/adm_ops.c
>>> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_wc/adm_ops.c?pathrev=39911&r1=39910&r2=39911
>>> ==============================================================================
>>> --- trunk/subversion/libsvn_wc/adm_ops.c Fri Oct 9 14:23:31 2009 (r39910)
>>> +++ trunk/subversion/libsvn_wc/adm_ops.c Fri Oct 9 14:51:23 2009 (r39911)
>>> @@ -375,8 +375,8 @@ process_committed_leaf(int log_number,
>>>
>>> if (entry->kind == svn_node_file)
>>> {
>>> - /* ### only for files, and only for replaces. */
>>> - using_ng = (entry->schedule == svn_wc_schedule_replace);
>>> + /* ### only for files, and anything but deletes. */
>>> + using_ng = (entry->schedule != svn_wc_schedule_delete);
>>>
>>> /* If the props or text revert file exists it needs to be deleted when
>>> * the file is committed. */
>>>
>>> Modified: trunk/subversion/libsvn_wc/log.c
>>> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_wc/log.c?pathrev=39911&r1=39910&r2=39911
>>> ==============================================================================
>>> --- trunk/subversion/libsvn_wc/log.c Fri Oct 9 14:23:31 2009 (r39910)
>>> +++ trunk/subversion/libsvn_wc/log.c Fri Oct 9 14:51:23 2009 (r39911)
>>> @@ -1096,8 +1096,8 @@ log_do_committed(struct log_runner *logg
>>> svn_boolean_t keep_changelist = FALSE;
>>> svn_wc_entry_t tmp_entry;
>>>
>>> - /* ### only for files, and only for replaces. */
>>> - using_ng = (entry->schedule == svn_wc_schedule_replace);
>>> + /* ### only for files, and anything but delete (handled above). */
>>> + using_ng = TRUE;
>>>
>>> if (using_ng)
>>> SVN_ERR(svn_wc__db_global_commit(loggy->db, local_abspath,
>>>
>>> ------------------------------------------------------
>>> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=495&dsMessageId=2405693
>>>
>>
>
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2405739
Received on 2009-10-10 03:16:12 CEST