Return-Path: Delivered-To: apmail-subversion-users-archive@minotaur.apache.org Received: (qmail 46255 invoked from network); 22 Feb 2011 16:51:15 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 22 Feb 2011 16:51:15 -0000 Received: (qmail 97831 invoked by uid 500); 22 Feb 2011 16:51:11 -0000 Delivered-To: apmail-subversion-users-archive@subversion.apache.org Received: (qmail 97106 invoked by uid 500); 22 Feb 2011 16:51:09 -0000 Mailing-List: contact users-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list users@subversion.apache.org Received: (qmail 97098 invoked by uid 99); 22 Feb 2011 16:51:08 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 22 Feb 2011 16:51:08 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy) Received: from [66.111.4.25] (HELO out1.smtp.messagingengine.com) (66.111.4.25) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 22 Feb 2011 16:51:00 +0000 Received: from compute1.internal (compute1.nyi.mail.srv.osa [10.202.2.41]) by gateway1.messagingengine.com (Postfix) with ESMTP id 6748120996; Tue, 22 Feb 2011 11:50:39 -0500 (EST) Received: from frontend2.messagingengine.com ([10.202.2.161]) by compute1.internal (MEProxy); Tue, 22 Feb 2011 11:50:39 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=messagingengine.com; h=date:from:to:cc:subject:message-id:references:mime-version:content-type:in-reply-to; s=smtpout; bh=tsTe4AizqBw4P2t6QuO+vnAT1IA=; b=YNgb4ddLvm4BuHGewJ7kI6cNHWRNuo6mgeI6K6Bxn5m4xe3DHvFaXJ8FDlkopP1lbAUypNV9rhUoXJNfMe5MDllm8Luw2jbJF8Y25S1p5FCiOqWjnxgYzL8d1DNjXYEy1u+Y0E/scBfyJjl46UBgSvu1UZ75HFnSn5X16MMhklQ= X-Sasl-enc: Y6y/5er0G6vQqncoBJ9aurMrpkp2EnFUoMCqnmg9ncdjMVJ3Kkhz/69UT1Lkkg 1298393437 Received: from daniel3.local (bzq-79-183-46-214.red.bezeqint.net [79.183.46.214]) by mail.messagingengine.com (Postfix) with ESMTPSA id DB129440617; Tue, 22 Feb 2011 11:50:36 -0500 (EST) Date: Tue, 22 Feb 2011 18:45:52 +0200 From: Daniel Shahaf To: Jason Sachs Cc: users@subversion.apache.org Subject: Re: bug in mixed-version detection + single-file externals Message-ID: <20110222164552.GD9334@daniel3.local> References: <20110222151013.GN11578@ted.stsp.name> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Virus-Checked: Checked by ClamAV on apache.org Jason Sachs wrote on Tue, Feb 22, 2011 at 11:07:38 -0500: > >> If you could write a script that starts with an empty repository, gets a > >> working copy, and runs svn commands until the problem triggers, that would > >> help greatly (and avoids any ambiguity in the problem description!). > > > > See attached python script (tested only on WinXP + Python 2.6.5) > > > > Script output: > ========= > C:\tmp\svn\ext1>python trybug.py > Checked out revision 0. > A C:\tmp\svn\ext1\working\foo > A C:\tmp\svn\ext1\working\foo\trunk > A C:\tmp\svn\ext1\working\bar > A C:\tmp\svn\ext1\working\bar\trunk > A working\foo\trunk\blah.txt > Adding working\bar > Adding working\bar\trunk > Adding working\foo > Adding working\foo\trunk > Adding working\foo\trunk\blah.txt > Transmitting file data . > Committed revision 1. > Sending working\foo\trunk\blah.txt > Transmitting file data . > Committed revision 2. > Sending working\foo\trunk\blah.txt > Transmitting file data . > Committed revision 3. > property 'svn:externals' set on 'working\bar\trunk' > Sending working\bar\trunk > > Committed revision 4. > > Fetching external item into 'working\bar\trunk\blah.txt' > E working\bar\trunk\blah.txt > Updated external to revision 1. > > Updated to revision 4. > 1:4 > > ========= > This just creates a sample repos + working copy and illustrates the > problem with svnversion, which should print out "4" but instead prints > out "1:4". > > I didn't create a testcase for performing a merge, that's more complex > than I can deal with right now. With a trunk build, I get a warning and the right svnversion output: [[[ % python2.6 trybug.py Checked out revision 0. A /tmp/svn/working/foo A /tmp/svn/working/foo/trunk A /tmp/svn/working/bar A /tmp/svn/working/bar/trunk A working/foo/trunk/blah.txt Adding working/bar Adding working/bar/trunk Adding working/foo Adding working/foo/trunk Adding working/foo/trunk/blah.txt Transmitting file data . Committed revision 1. Sending working/foo/trunk/blah.txt Transmitting file data . Committed revision 2. Sending working/foo/trunk/blah.txt Transmitting file data . Committed revision 3. property 'svn:externals' set on 'working/bar/trunk' Sending working/bar/trunk Committed revision 4. svn: Unrecognized format for the relative external URL 'blah.txt'. 4 ]]] I'm not sure what causes this, but for reference here's the output of 'svn help propset' from trunk: [[[ ... svn:externals - A newline separated list of module specifiers, each of which consists of a URL and a relative directory path, similar to the syntax of the 'svn checkout' command: http://example.com/repos/zig foo/bar A revision to check out can optionally be specified to pin the external to a known revision: -r25 http://example.com/repos/zig foo/bar To unambiguously identify an element at a path which has been deleted (possibly even deleted multiple times in its history), an optional peg revision can be appended to the URL: -r25 http://example.com/repos/zig@42 foo/bar Relative URLs are indicated by starting the URL with one of the following strings: ../ to the parent directory of the extracted external ^/ to the repository root // to the scheme / to the server root The ambiguous format 'relative_path relative_path' is taken as 'relative_url relative_path' with peg revision support. Lines in externals definitions starting with the '#' character are considered comments and are ignored. Subversion 1.4 and earlier only support the following formats where peg revisions can only be specified using a -r modifier and where URLs cannot be relative: foo http://example.com/repos/zig foo/bar -r 1234 http://example.com/repos/zag Use of these formats is discouraged. They should only be used if interoperability with 1.4 clients is desired. ... ]]]