From owner-freebsd-stable@FreeBSD.ORG Sun Jan 27 12:38:27 2013 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id B189A5BC for ; Sun, 27 Jan 2013 12:38:27 +0000 (UTC) (envelope-from ardovm@yahoo.it) Received: from nm2.bullet.mail.ird.yahoo.com (nm2.bullet.mail.ird.yahoo.com [77.238.189.59]) by mx1.freebsd.org (Postfix) with SMTP id 0F9FAE5E for ; Sun, 27 Jan 2013 12:38:26 +0000 (UTC) Received: from [212.82.105.245] by nm2.bullet.mail.ird.yahoo.com with NNFMP; 27 Jan 2013 12:38:25 -0000 Received: from [217.146.189.99] by tm17.bullet.mail.ird.yahoo.com with NNFMP; 27 Jan 2013 12:38:25 -0000 Received: from [127.0.0.1] by smtp115.mail.ird.yahoo.com with NNFMP; 27 Jan 2013 12:38:25 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.it; s=s1024; t=1359290305; bh=s3xv1Uqs15gxkjlJ8GuVr0GWgzViYq1jzdnS8ayswFw=; h=X-Yahoo-Newman-Id:X-Yahoo-Newman-Property:X-YMail-OSG:X-Yahoo-SMTP:Received:Received:Date:From:To:Subject:Message-ID:References:MIME-Version:Content-Type:Content-Disposition:In-Reply-To:User-Agent; b=5DoYsnH4mD0E4YButy3rjusbNOB9nkFJ0q6ltCxVHNv8ndLGTimDxHwfqspNW1M7JJwNR5j48zMvcNL2mCcZc0F7WuQjloJSrojZ/kmwYzvEF1cPatx94gR+TNE9U4jbdeIDI+PRRyH4G7SBZFpO9TbuiQSV2xFRjvey0O8iDpc= X-Yahoo-Newman-Id: 617557.64066.bm@smtp115.mail.ird.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: aYZWiRIVM1kXpfBLAbmf03VLQTn6W9qNr.HiubyxdqVbOvc 5fkWdU65X2nRVM2VyOnvraEyW0alkO319mP5xRkcnoNrr1B7ISZxZx.zYpEM JC3MHH.tBaCmd3G3PItk4CPaGNP_Nz.OWqQwkRUzWWwXPC18Rbs5GljJCdQV gp7gQg8TubsNI7wV14zG1DGA_5VmMeDcpS.t.ioxrlsd7pfxX9L2c43M2ljO TaOza3eD8OG5Ytmo65Lp_qnL9U8LxkSNEOAnkKYyY_Ruqki_L8S_3Ch94FSd u3v2dobV4Pzaz5th9AkGY2jxMHrvzHFD2LussdIQwEmF3jV83wTm7PsWERc6 64BRtrsg3cqEZnM4QM7hSno5gnWA8YIdG0hq3iIjkdLUJnHiEEpyw0eyWLG1 9_Cbe59kXaXui.P_efkOdKBUZB6C6EhqB8Qaa1S5P4dN8e1F0jagETsIY8y2 W9UW48HJlNlQDO3.ONRD82oQEfA4NWT0ORZhWVphdK8pfArW72wjmc4mTug- - X-Yahoo-SMTP: WU.IBxeswBAAnLcBZV3tEZIK0A-- Received: from snail (ardovm@93.145.95.7 with login) by smtp115.mail.ird.yahoo.com with SMTP; 27 Jan 2013 04:38:25 -0800 PST Received: by snail (Postfix, from userid 1000) id 4CF563C9DB4; Sun, 27 Jan 2013 13:49:09 +0100 (CET) Date: Sun, 27 Jan 2013 13:49:08 +0100 From: Arrigo Marchiori To: freebsd-stable@freebsd.org Subject: Re: Svnsup architecture Message-ID: <20130127124908.GB18833@snail.casa> References: <20130123144050.GG51786@e-Gitt.NET> <20130124093846.5e683474@laptop> <20130124085717.GA26673@icarus.home.lan> <20130125124219.GA5299@snail.casa> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 12:38:27 -0000 Disclaimer: I am trying to go inside the technicalities of the SVN protocol. I am not sure whether this sub-thread should belong to this list or to another; I am open to suggestions on this topic. On Fri, Jan 25, 2013 at 07:40:45PM -0600, John Mehr wrote: > On Fri, 25 Jan 2013 13:42:19 +0100 Arrigo Marchiori wrote: > > On Thu, Jan 24, 2013 at 12:57:17AM -0800, 'Jeremy > > > > 1- svnsup-distill: takes a revision from svn and creates > > a text file (called a delta) that represents it. It seems to be > > almost complete. > > > To answer one of John Mehr's problems: MD5 sums are calculated by > > svnsup-distill and included in the deltas. The client only needs > > to check them against the local files. > > Hello, > > I've been looking for a way to get the details of a > complete revision in one step, but I haven't had any luck > yet. This would solve the one aspect I'm most worried > about: with 50000+ files and 5500+ directories in my local > copy of /usr/src, I'd hate to have my code end up > inadvertently causing a denial of service on the > repositories with a flood of tiny requests... After investigating more in depth the SVN protocol, if I understood correctly, your problem cannot be solved. Or, at least, the server is not supposed to help us. The SVN client, in fact, seems to save a copy of the whole working copy inside the .svn directory. Whether a file was changed or not, it is an information that the _client_ knows, before it contacts the server. A "svn update" command sends to the server the start and end revisions (the latter in the svn-update message, the first in the set-path message). Merging the information from the server (delta's) with the working copy is the client's job. To summarize, any svn-like downloader should at least know: 1- the current revision of the working copy; 2- the checksums of all the files in the repository, at the current revision. The "official" SVN client does more than point 2: it stores the whole content of each file; this allows the "svn diff" and "svn revert" commands to work off-line. Best regards, -- rigo http://rigo.altervista.org