Return-Path: Delivered-To: apmail-harmony-dev-archive@www.apache.org Received: (qmail 93947 invoked from network); 24 Nov 2006 11:43:07 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 24 Nov 2006 11:43:07 -0000 Received: (qmail 10118 invoked by uid 500); 24 Nov 2006 11:43:13 -0000 Delivered-To: apmail-harmony-dev-archive@harmony.apache.org Received: (qmail 10084 invoked by uid 500); 24 Nov 2006 11:43:13 -0000 Mailing-List: contact dev-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list dev@harmony.apache.org Received: (qmail 10075 invoked by uid 99); 24 Nov 2006 11:43:13 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 24 Nov 2006 03:43:13 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: domain of gcjhd-harmony-dev@m.gmane.org designates 80.91.229.2 as permitted sender) Received: from [80.91.229.2] (HELO ciao.gmane.org) (80.91.229.2) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 24 Nov 2006 03:43:00 -0800 Received: from list by ciao.gmane.org with local (Exim 4.43) id 1GnZRy-0002j5-5h for dev@harmony.apache.org; Fri, 24 Nov 2006 12:42:37 +0100 Received: from msfwpr01.ims.intel.com ([62.118.80.132]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 24 Nov 2006 12:42:34 +0100 Received: from Salikh.Zakirov by msfwpr01.ims.intel.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 24 Nov 2006 12:42:34 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: dev@harmony.apache.org From: Salikh Zakirov Subject: [general] Patch preparation workflow Was: [classlib][pack200] Status update (again) Date: Fri, 24 Nov 2006 14:42:03 +0300 Lines: 37 Message-ID: References: <636fd28e0611211509g510a28e5y6cb6f66159d3b473@mail.gmail.com> <45642C22.6020100@gmail.com> <636fd28e0611221602r3eb2e163j7d17c22e6146bf68@mail.gmail.com> <3b3f27c60611221625q516775c4qa1c02722df61110d@mail.gmail.com> <636fd28e0611221736k3abb1ae4j7654c4fb3b329887@mail.gmail.com> <3b3f27c60611230746q7e23b46ahc7e3400aeb8b7bc7@mail.gmail.com> <636fd28e0611231252n2a21926ew37d2c42a5d11a0b4@mail.gmail.com> <3b3f27c60611231528o75cdba7u34f7dc40bcbb8ac@mail.gmail.com> <636fd28e0611240120p6ea4f693xbad3707f0427ea77@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: msfwpr01.ims.intel.com User-Agent: Thunderbird 1.5.0.8 (Windows/20061025) In-Reply-To: <636fd28e0611240120p6ea4f693xbad3707f0427ea77@mail.gmail.com> Sender: news X-Virus-Checked: Checked by ClamAV on apache.org Alex Blewitt wrote: > I think patching is a great way of making the occasional change to > existing code. I don't think it works well for new development. Alex, have you tried any of the modern distributed version control systems? Here are some: Monotone: http://monotone.ca Mercurial(hg): http://www.selenic.com/mercurial Git: http://git.or.cz Any of the above is capable of storing and managing multiple patches and branches in the local repository, all of them support file renames (although in different ways) and advanced merging. The basic techniques of preparing patches for Harmony is: 1) create a separate "tracking" branch as an exact copy of Harmony SVN (you can do 'svn checkout' and commit to a local version control, or use some importer like Tailor http://www.darcs.net/DarcsWiki/Tailor) 2) create a local branch for your development 3) when you want to merge with SVN trunk, first update the tracking branch (without your local modifications), and then merge tracking branch into your working branch. 4) produce updated patch as the difference between updated tracking branch and updated working branch. It looks like this is a quite common workflow, and googling may get many descriptions and success stories. So I think, "patching" is good as a means of exchanging code modifications, but you may need some additional tools to manage patches while you develop them.