Return-Path: X-Original-To: apmail-subversion-commits-archive@minotaur.apache.org Delivered-To: apmail-subversion-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 49C6B91F1 for ; Tue, 17 Apr 2012 11:59:46 +0000 (UTC) Received: (qmail 60180 invoked by uid 500); 17 Apr 2012 11:59:46 -0000 Delivered-To: apmail-subversion-commits-archive@subversion.apache.org Received: (qmail 60156 invoked by uid 500); 17 Apr 2012 11:59:46 -0000 Mailing-List: contact commits-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@subversion.apache.org Delivered-To: mailing list commits@subversion.apache.org Received: (qmail 60147 invoked by uid 99); 17 Apr 2012 11:59:46 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 17 Apr 2012 11:59:46 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.131] (HELO eos.apache.org) (140.211.11.131) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 17 Apr 2012 11:59:43 +0000 Received: from eos.apache.org (localhost [127.0.0.1]) by eos.apache.org (Postfix) with ESMTP id D76C86B1 for ; Tue, 17 Apr 2012 11:59:22 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Apache subversion Wiki To: Apache subversion Wiki Date: Tue, 17 Apr 2012 11:59:22 -0000 Message-ID: <20120417115922.12033.64383@eos.apache.org> Subject: =?utf-8?q?=5BSubversion_Wiki=5D_Update_of_=22MergeCodeImprovements=22_by_?= =?utf-8?q?JulianFoad?= Auto-Submitted: auto-generated Dear Wiki user, You have subscribed to a wiki page or wiki category on "Subversion Wiki" fo= r change notification. The "MergeCodeImprovements" page has been changed by JulianFoad: http://wiki.apache.org/subversion/MergeCodeImprovements?action=3Ddiff&rev1= =3D5&rev2=3D6 Comment: Fill in: Prototype new merge code in Python; Single-file merge should be le= ss of a special case + =3D=3D=3D Prototype new merge code in Python =3D=3D=3D + It would be extremely handy to be able to write new client-layer merge co= de in Python. The easiest way to start doing this would probably be to wri= te a Python command-line program that implements the equivalent of "svn mer= ge" and uses either the swig-Python bindings or the ctypes-Python bindings = to access Subversion library APIs. (In particular, don't try to embed a Py= thon merge module inside the 'svn' C program, unless somebody can show us h= ow to do that quickly and easily.) + = =3D=3D=3D Single-file merge should be less of a special case =3D=3D=3D + I'm concerned that the present "single-file merge" code doesn't seem to h= ave all the same stuff in it that the directory merge code has. It would b= e obviously correct if a single "merge a node" function were called regardl= ess whether the node is a file or a dir. + = + Some things can be simpler for a single file, of course. It might seem o= bvious that it doesn't need to think about subtrees, as a file can't have s= ubtrees. Even an assumption like that, however, only holds if we don't all= ow a merge that replaces a file with a directory or replaces a directory wi= th a file. I think we don't allow such a merge, on the basis that two diff= erent kinds by definition are not ancestrally related, but that decision is= not self-evident. We might want to structure the code such that the "merg= e" function at this level can merge any arbitrary change that is encountere= d at a child level inside a (directory) merge, including replacement of one= node with another. But I'm not suggesting we should re-structure the code= that way now, I'm just exploring a line of thought. + = =3D=3D=3D Use svn_client__pathrev_t more widely =3D=3D=3D (Difficulty: several quite simple sub-tasks, and some harder bits) =20