Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:44993 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 25732 invoked from network); 16 Jul 2009 22:07:35 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 16 Jul 2009 22:07:35 -0000 Authentication-Results: pb1.pair.com header.from=rasmus@lerdorf.com; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=rasmus@lerdorf.com; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain lerdorf.com from 209.85.198.224 cause and error) X-PHP-List-Original-Sender: rasmus@lerdorf.com X-Host-Fingerprint: 209.85.198.224 rv-out-0506.google.com Received: from [209.85.198.224] ([209.85.198.224:57273] helo=rv-out-0506.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id BA/03-09639-5A4AF5A4 for ; Thu, 16 Jul 2009 18:07:34 -0400 Received: by rv-out-0506.google.com with SMTP id l9so93182rvb.23 for ; Thu, 16 Jul 2009 15:07:30 -0700 (PDT) Received: by 10.140.143.13 with SMTP id q13mr160137rvd.242.1247782037691; Thu, 16 Jul 2009 15:07:17 -0700 (PDT) Received: from trainburn-lm.corp.yahoo.com (trainburn-lm.corp.yahoo.com [207.126.233.11]) by mx.google.com with ESMTPS id c20sm2376482rvf.31.2009.07.16.15.07.16 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 16 Jul 2009 15:07:16 -0700 (PDT) Message-ID: <4A5FA493.9040204@lerdorf.com> Date: Thu, 16 Jul 2009 15:07:15 -0700 User-Agent: Thunderbird 2.0.0.18 (Macintosh/20081105) MIME-Version: 1.0 To: PHP Developers Mailing List X-Enigmail-Version: 0.95.7 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: svn checkout suggestion From: rasmus@lerdorf.com (Rasmus Lerdorf) One of the benefits of svn is that we can do cross-branch commit pretty easily now and thus avoid multiple similar commits with annoying MFH/MFB commit log messages that are hard to track. Please don't attempt to check out all of php/php-src or pecl. I made the mistake of checking out all of pecl and it was 3.4G because you get copies of the code for every tag and branch and we have a bunch. In order to do this better, I think the best way is to use the sparse directory feature documented here: http://svnbook.red-bean.com/en/1.5/svn.advanced.sparsedirs.html It takes a bit of work to set up your checkout, but once you have done it, it becomes easy to work with. Here are my steps to creating a ~/src/ directory with the parts of the repository I commit to: # Create initial top-level src dir svn co http://svn.php.net/repository --depth empty src # Fetch the parts of the repository I care about svn co http://svn.php.net/repository/php http://svn.php.net/repository/pecl http://svn.php.net/repository/pear http://svn.php.net/repository/phpdoc http://svn.php.net/repository/systems http://svn.php.net/repository/web --depth immediates src # Now, in php-src get all tags and branch names, but only # populate trunk and the PHP_5_2 and PHP_5_3 branches cd ~/src/php/php-src svn up branches tags --set-depth immediates svn up trunk branches/PHP_5_2 branches/PHP_5_3 --set-depth infinity # In pecl get all tags and branch names, # but only checkout out trunk for each cd ~/src/pecl svn update * --set-depth immediates svn update */tags */branches --set-depth immediates svn update */trunk --set-depth infinity # Same idea for pear cd ~/src/pear svn update * --set-depth immediates svn update */tags */branches --set-depth immediates svn update */trunk --set-depth infinity cd ~/src/pear/packages svn update * --set-depth immediates svn update */tags */branches --set-depth immediates svn update */trunk --set-depth infinity # and pick up the remaining flat modules (systems, web) cd ~/src svn update */tags */branches --set-depth immediates svn update */trunk --set-depth infinity Once you have all this set up, you can then cd into any empty branch or tag directory and run: svn update --set-depth infinity to fully populate that directory on demand. and you can make changes across trunk and multiple branches and perhaps even make the corresponding fixes in the phpdoc tree! -Rasmus