Return-Path: X-Original-To: apmail-subversion-dev-archive@minotaur.apache.org Delivered-To: apmail-subversion-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B1C7A99C6 for ; Thu, 12 Apr 2012 15:20:13 +0000 (UTC) Received: (qmail 81703 invoked by uid 500); 12 Apr 2012 15:20:13 -0000 Delivered-To: apmail-subversion-dev-archive@subversion.apache.org Received: (qmail 81650 invoked by uid 500); 12 Apr 2012 15:20:13 -0000 Mailing-List: contact dev-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@subversion.apache.org Received: (qmail 81641 invoked by uid 99); 12 Apr 2012 15:20:13 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 12 Apr 2012 15:20:13 +0000 X-ASF-Spam-Status: No, hits=0.4 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_NEUTRAL,SUBJ_OBFU_PUNCT_FEW,SUBJ_OBFU_PUNCT_MANY X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: 74.125.83.43 is neither permitted nor denied by domain of codematters@ntlworld.com) Received: from [74.125.83.43] (HELO mail-ee0-f43.google.com) (74.125.83.43) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 12 Apr 2012 15:20:05 +0000 Received: by eekc13 with SMTP id c13so714009eek.16 for ; Thu, 12 Apr 2012 08:19:44 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=sender:x-proxyuser-ip:from:to:subject:date:message-id:user-agent :mime-version:content-type:x-gm-message-state; bh=BtVuXYXGI6KVA/ag8776SSbmZQLHYEm4mcWxYyy4zao=; b=KWKiW2YLaA0zFMpEUCSiKBrd7fawlwL8eiDmdCIZWaFX73Te2ZUphWeeZJUhpPzW7O soFeUDtp+nsq6QPsN72Ic37fw0n6HVfF8E9R7bAqXO7SHxotNW2KreDgo4awkzdEK4a5 yUeejR0ZcTTtC+hveTNTIUlkNJxKjJSkAIAC1cLhD2r+z/RIIPeeBXIwlZrIfXT+G7MM k048ZrpIIZPxcicsMDKsm5fzPHyrEWswp+On3lEbLm1BP17+e6lVteIJLIxh0125h1A4 jaqx8+OV8n8JVbwvVurg9ss3zmPpKOz3WHF1TGQUE0/2EfBTqTE5ZExYbmNN8jamXYoH UJaQ== Received: by 10.213.10.6 with SMTP id n6mr234165ebn.264.1334243984245; Thu, 12 Apr 2012 08:19:44 -0700 (PDT) Received: from (know-mailgateway-3.server.virginmedia.net. [62.254.26.105]) by mx.google.com with ESMTPS id p57sm29102800eei.8.2012.04.12.08.19.41 (version=SSLv3 cipher=OTHER); Thu, 12 Apr 2012 08:19:42 -0700 (PDT) Sender: MARTIN PHILIP Received: from source ([86.16.124.205]) by smtp.virginmedia.com with SMTP; Thu, 12 Apr 2012 15:19:42 +0000 (GMT) X-ProxyUser-IP: 86.16.124.205 Received: by cpc2-farn6-0-0-cust204.6-2.cable.virginmedia.com (Postfix, from userid 1000) id 6EFAC36223; Thu, 12 Apr 2012 16:19:40 +0100 (BST) From: Philip Martin To: dev@subversion.apache.org Subject: Editorr v2 svn_editor_alter_directory needs list of children Date: Thu, 12 Apr 2012 16:19:40 +0100 Message-ID: <878vi12d0z.fsf@stat.home.lan> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Gm-Message-State: ALoCoQlqIjjMBZ6OJcBohJoDxDqZW+hZ4qXK6mFrv1JIEGODZ5A1SbKTFuI+m4XxY+0E5D9gCBlx X-Virus-Checked: Checked by ClamAV on apache.org I think alter_directory needs a list of children as well as the new properties. Consider an update from relpath revision props 3 A 3 p=v A/X 3 to relpath revision props 4 A 4 p=vvv A/X 4 A/Y 4 The v2 editor drive will call alter_directory to change the properties on A and add_directory to add the child A/Y. The alter_directory call cannot change the properties of A without changing the revision, but it cannot simply change the revision of A if A/Y has not yet been added. The best solution seems to be that alter_directory should have a list of the children, just like add_directory, then it can add any missing children as incomplete, change the properties and update the revision. An alternative might be marking A incomplete, like a v1 drive. I don't like that, I would prefer it if v2 could reserve incomplete for nodes that are just names and have no content. Another alternative might be imposing a drive order restriction, only allow alter_directory after all children have been added. I don't think that is right either, v2 tries to avoid depth order restrictions. If we consider a node's "content" to consist of text+props for files and children+props for directories then we see that the current alter_file already supplies all the content for file nodes while the current alter_directory only supplies part of the content for directory nodes. Adding children to alter_directory removes that difference. -- uberSVN: Apache Subversion Made Easy http://www.uberSVN.com