Return-Path: X-Original-To: apmail-subversion-users-archive@minotaur.apache.org Delivered-To: apmail-subversion-users-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 54156E4F5 for ; Fri, 1 Feb 2013 06:05:28 +0000 (UTC) Received: (qmail 88767 invoked by uid 500); 1 Feb 2013 06:05:27 -0000 Delivered-To: apmail-subversion-users-archive@subversion.apache.org Received: (qmail 88749 invoked by uid 500); 1 Feb 2013 06:05:27 -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 88737 invoked by uid 99); 1 Feb 2013 06:05:27 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 01 Feb 2013 06:05:27 +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 (athena.apache.org: domain of lesmikesell@gmail.com designates 209.85.212.48 as permitted sender) Received: from [209.85.212.48] (HELO mail-vb0-f48.google.com) (209.85.212.48) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 01 Feb 2013 06:05:21 +0000 Received: by mail-vb0-f48.google.com with SMTP id fc21so2235815vbb.35 for ; Thu, 31 Jan 2013 22:05:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=qpFho1NpuiBnahA3ZI0+gc4uIJ+cDr3fkQ6MKJsJFPk=; b=jd/xxF4BAH6mrzMpo4I5RzP6kOz93wuZLPx9wFlVBqzh9L96d4gtStsL//gC47O2Nq XwpmcdCyCVjGBhoU8TUfFkC6XWVay5Ne78g72Ne901v0GWg8fFpyxmISUx5I+Fv1fffv bxLqLqVJQa/vBqU55NrJlTC7GKEy4VTg0qlOShT2mtJ0/kQGoPSvEY8pCY5dQnAhJG+Y u/ETnMP6/3Ln40kulXEA+2kHD2mD+KmMtwbMerAK7iI6NAwW6eUsI9cC8UCEzzYyLVoa f0xQxZ4pL/WK9tjJu6XLVlZJQTsLVZWVlwsv1+h8HG0v5qaR/Q30mIvU8tpgKr1K4vLV B4Rg== MIME-Version: 1.0 X-Received: by 10.52.29.231 with SMTP id n7mr9126386vdh.103.1359698701035; Thu, 31 Jan 2013 22:05:01 -0800 (PST) Received: by 10.58.152.38 with HTTP; Thu, 31 Jan 2013 22:05:00 -0800 (PST) In-Reply-To: <510B24EC.8010006@cse.yorku.ca> References: <510AEBD6.5060508@cse.yorku.ca> <510B24EC.8010006@cse.yorku.ca> Date: Fri, 1 Feb 2013 00:05:00 -0600 Message-ID: Subject: Re: software distribution with subversion From: Les Mikesell To: Jason Keltz Cc: users@subversion.apache.org Content-Type: text/plain; charset=ISO-8859-1 X-Virus-Checked: Checked by ClamAV on apache.org On Thu, Jan 31, 2013 at 8:14 PM, Jason Keltz wrote: >> >> I'd think it is exactly the problem that rsync is intended to handle. > > rsync is great when you want to sync the contents from one machine to > another machine in one direction.. (unison if you need dual direction > sync...) .... I thought about using rsync to solve this problem... two ways > I can think of.. > > 1) All the machines run rsync against the server.. kills the server, but > let's say they do it all at different times.. the server is hefty.. hey, it > would work, but for every single rsync, the server needs to look at its > entire file tree to see which files have changed.... 100 syncs = 100 times > processing the same thing over and over again... If only rsync would let me > save that state to a file so that it doesn't need to reload it every time it > runs, then I know which solution I'd be using... other problem is, it would > take a long time.. Is this on linux? If the host has a reasonable amount of RAM the directory info will mostly be cached between accesses. Have you timed it before deciding it is a problem? I suspect it won't be unless there are millions of small files in that tree or a very fast rate of change. > 2) log/tree approach --- server updates one client, then the server and the > one client each update another client, then each of those 3 update > another... much faster, but again, you have to read the server state each > and every time... and then I have to deal with the fact that various random > machines are off ... If you can't complete from one distribution server - or if the geographic location makes sense, fan it out to a few redistribution instances. Not sure what you mean about reading server state - directory reads aren't all that expensive. >> Subversion would give you the option of intentionally maintaining your >> targets at different revision levels, but at a cost of needing a >> 'working copy' format where you have an unneeded 'pristine' duplicate >> copy of everything. > > The truth is, I wouldn't intentionally have the machines at different > software levels... (well, that could be useful for testing, but that's > another story).... but a machine could be off during the update and would > be able to "catch up" no longer how long it was off... Rsync would always catch up. If the exact refresh timing isn't critical you could just run from cron on the clients with some skew to avoid overloading the distribution server. >>> I believe you need to use "svn delete" >>> for this? >> >> That is for when you are making the changes you intend to commit. >> > > I'll have to try that again .. didn't seem to be working the way I expected > it to... You have to 'svn delete' in the working copy, then commit the change, then an update will replicate the action in another working copy. -- Les Mikesell lesmikesell@gmail.com